python题目集

求两个数据的和差积商

num1 = int(input("请输入第1个数据:"))
num2 = int(input("请输入第2个数据:"))
he = num1+num2
cha = num1-num2
ji = num1*num2
shang = num1/num2
avg = he/2
print("和为:%d\n差为:%d\n积:%d\n商:%.2f\n平均数:%.2f"%(he,cha,ji,shang,avg))
id = int(input('输入员工工号:'))
print("工号:%06d"%id)

输入1个三位整数,反向输出

number = int(input('请输入三位整数:'))
# 137
ge = number%10
shi = number//10%10
bai = number//100
newnumber = ge*100 + shi*10 + bai*1
print('反向输出为:%d'%newnumber)

输入总秒数,计算时分秒

second = int(input('请输入总秒数:'))
hour = second//3600
mini = second//60%60
sec = second%60
print("%02d小时%02d分钟%02d秒"%(hour,mini,sec))

输入3个整数,求最大值

# 三目运算符
# 注释功能,解释说明,不会被执行的语句
num1 = int(input("请输入第1个数据:"))
num2 = int(input("请输入第2个数据:"))
num3 = int(input("请输入第3个数据:"))
mid = (num1>num2) and num1 or num2
mymax = (mid>num3) and mid or num3
print("最大值为:%d"%mymax)

# if语句
num1 = int(input('请输入第一个数据:'))
num2 = int(input('请输入第二个数据:'))
num3 = int(input('请输入第三个数据:'))
# 将num1和num2比
# 如果大,num1和num3比
# 如果小,num2和num3比
if num1>=num2:
	if num1>=num3:
		mymax = num1
	else:
		mymax = num2
else:
	if num2>=num3:
		mymax = num2
	else:
		mymax = num3
print("最大值为:%d"%mymax)

输入年份,得出闰年、平年

# 三目运算符
year = int(input('请输入年份:'))
# 条件1:能被4整除,不能被100整除
# 条件2:能被400整除
res = ((year%4==0 and year%100!=0) or year%400==0) and "闰年" or "平年"
print("%d年是%s"%(year,res))

# if语句
year = int(input("请输入年份:"))
if year%4==0 and year%100!=0 or year%400==0:
	print("闰年")
else:
	print("平年")

输入分数,判定等级

# 存在多次重复比较
score = int(input("请输入分数:"))
if score>=90 and score<=100:
	print("等级A")
elif score>=80 and score<90:
	print("等级B")
elif score>=70 and score<80:
	print("等级C")
elif score>=60 and score<70:
	print("等级D")
elif score>=0 and score<60:
	print("等级F")
else:
	print("你输入的分数有误,请重新输入")
    
# 避免多次重复比较
print('-------------优化---------------')
if score>=0 and score<=100:
	if score>=90:
		print('A')
	elif score>=80:
		print('B')
	elif score>=80:
		print('C')
	elif score>=80:
		print('D')
	else:
		print('F')
else:
	if score>100:
		print('分数超过范围')
	else:
		print("分数不能为负数")

输入年、月,输入对应的天数

year = int(input('请输入年份:'))
month = int(input("请输入月份:"))
if month>=1 and month<=12:
	# 小月
	if month==4 or month==6 or month==9 or month==11:
		day = 30
	# 2月
	elif month == 2:
		# if year%4==0 and year%100!=0 or year%400==0:
		# 	day = 29
		# else:
		# 	day = 28
		day = (year%4==0 and year%100!=0 or year%400==0) and 29 or 28
	# 大月
	else:
		day = 31
	print("%d年%d月有%d天"%(year,month,day))
else:
	print('月份有误,请检查后重新输入')

输入年、月、日,得出前一天日期(不考虑输错的问题)

year = int(input('请输入年:'))
month = int(input('请输入月:'))
day = int(input('请输入日:'))
# 计算前一天日期
day -= 1
# 如果day=0,需要返回上一个月份
if day==0:
	month -= 1 # 返回上一个月份的最后一天
	# 如果month=0,需要返回上一年
	if month==0:
		year -= 1
		month = 12
		day = 31
	# 判断上一个月份
	if month in (1,3,5,7,8,10):
		day = 31
	elif month==2:
		day = (year%4==0 and year%100!=0 or year%4==0) and 29 or 28
	else
		day = 30
print("前一天日期为%d-%d-%d"%(year,month,day))

输入行、列,打印空心矩形

################## 打印实心矩形
row = int(input('行数:'))
col = int(input('列数:'))
'''
	5 * 5
	*****
	*****
	*****
	*****
	*****
'''
# 打印的行数
for x in range(1,row+1):
	'''
		x=1 循环col个
		x=2 循环col个
		...
	'''
	# 每一行打印的列数
	for y in range(1,col+1):
		print("*",end='')
	# 一行打印结束后换行
	print()
    
################ 打印空心矩形
'''
5 5 
*****
*   *
*   *
*   *
*****
'''
row = int(input("请输入行:"))
col = int(input("请输入列:"))
for x in range(1,row+1):
	for y in range(1,col+1):
		if x==1 or x==row or y==1 or y==col:
			print("*",end="")
		else:
			print(' ',end="")
	print()

输入行,显示三角形

'''
5
*
**
***
****
*****
'''
row = int(input("请输入行:"))
for x in range(1,row+1):
	'''
		第一行循环1个 1,x+1 	1,2
		第二行循环2个 1,x+1  1,3
		...
	'''
	for y in range(1,x+1):
		print("*",end="")
	print()

打印99乘法表

'''
1*1=1
1*2=2 2*2=4
1*3=3 2*3=6 3*3=9
...
'''
for x in range(1,10):
	for y in range(1,x+1):
		'''
			x=1  y : 1    1*1=1
			x=2  y : 1 2  1*2=2
						  2*2=4
		'''
		print("%d*%d=%d"%(y,x,x*y),end='\t')
	print()

输入行,输出等腰三角形

row = int(input('请输入行:'))
for x in range(1,row+1):
	# 控制空格
	# x=1  5-x=4  1,4  循环3次
	for y in range(1,row-x+1):
		print(' ',end='')
	# 控制*
	for z in range(1,2*x):
		print("*",end='')
	# 换行
	print()

冒泡排序

# 相邻元素进行比较较大值往后
# 录入数据
nums = []
count = int(input("请输入数量:"))
for x in range(1,count+1):
	nums.append(int(input('请输入数据:')))
# 编写排序算法进行排序
'''
排序轮数比count少1,一次内循环的比较次数减1
01 12 23 34
01 12 23
01 12 
01
''' 
for x in range(0,count-1):
	for y in range(0,count-x-1):
		'''
			5个数据
			x=0  count-0-1  4 循环4次  
				y 0 1 2 3
				01 12 23 34 
			x=1  count-1-1  3 循环3次
			x=2  count-2-1  2 循环2次
			x=3  count-3-1  1 循环1次
		'''
		if nums[y]>nums[y+1]:
             # 进行数据交换
			k = nums[y]
			nums[y] = nums[y+1]
			nums[y+1] = k
print(nums)

选择排序

# 第一个元素依次和所有元素进行比较,将最小值放在最前面
# 录入数据
nums = []
count = int(input("请输入数量>>>:"))
for x in range(1, count + 1):
    nums.append(int(input("请输入第%d个数据>>>:" % x)))
# 选择排序的算法
for x in range(count - 1):
    for y in range(x + 1, count):
        if nums[x] > nums[y]:
            # 交叉赋值,python中直接可以进行交换,不需要借助辅助数据
            nums[x], nums[y] = nums[y], nums[x]
print(nums)

利用os模块批量处理文件名

import os
# 切换需要操作的目录路径
os.chdir(r"C:\Users\Administrator\Desktop\金庸名著")
# 获取所有目录(文件)列表
all_files = os.listdir()
print(all_files)
# 循环遍历重命名
for x in range(0,len(all_files)):
	oldname = all_files[x]
	if '[金庸出品]' not in oldname:
		newname = '[金庸出品]' + oldname
         # 用新名字替换老名字
		os.rename(oldname,newname)