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)