题目
1:
水仙花数,个位的立方+十位的立方+百位的立方=该数
例:153=1**3+5**3+3**3
题:求100-999的所有水仙花数
for i in range(100,1000):
temp = i
num = 0
while temp: #循环:用个位的立方加num,然后再用地板除去掉个位,再用十位的立方加num,然后去掉十位.....
num = num + (temp%10)**3 #最后一位数的立方
temp //= 10 #用地板除去掉最后一位数
if num == i:
print(i)
2:
有红球3个,绿球3个,蓝球6个,一共12个球,随机拿8个球,每种颜色的球的个数有几种可能
for red in range(0,4):
for green in range(0,4):
for blue in range(2,7): #红球加绿球最多6个,所以蓝球最少2个
if red+green+blue==8:
print(red,"\t",green,"\t",blue)
3:
给出两个时间算出时间差(以秒计),如果结束时间小于开始时间则结束时间在下一天,开始和结束时间不超过1天。
例如:
start = 17:55:31
stop = 4:21:57
时间差为:37586s
start = '17:55:31'
stop = '17:21:57'
start = start.split(":") #先去掉:,变成str的列表
stop = stop.split(":")
start_ = [] #新建空列表
stop_ = []
for i in start: #将str转为int,添加到空列表
i = int(i)
start_.append(i)
for i in stop:
i = int(i)
stop_.append(i)
print(start_,stop_)
all_start = eval('(start_[0])*3600 + start_[1]*60 + start_[2]')
all_stop = eval('(stop_[0])*3600 + stop_[1]*60 + stop_[2]')
if all_stop < all_start: #如果结束时间小于开始时间,结束时间就在下一天,要加上一天的秒数
daytime = 24*3600
print((all_stop+daytime)-all_start)
else:
print(all_stop - all_start)
4:
汉诺塔
def hanoi(n,x,y,z):
if n == 1:
print(x,"-->",z)
else:
hanoi(n-1,x,z,y)
print(x,"-->",z)
hanoi(n-1,y,x,z)
hanoi(3,"x","y","z") #3层
5:
替换文本内容功能
def fun1(rep,new):
coten = [] #将文章暂存入列表
count = 1 #列数
count2 = 0 #不同的处数
line = [] #不同所在的行
with open("wen.txt") as f: #打开文件
for eachline in f: #遍历文件
if rep in eachline: #如果有要修改的字符串
count2 += eachline.count(rep) #添加到不同的处数
eachline = eachline.replace(rep,new) #将要修改的替换成new
line.append(str(count)) #不同字符串所在的行添加到列表
coten.append(eachline) #将修改的行与没修改的行都添加到暂存列表
count+=1
print("一共有%d处不同"%(count2)) #打印一共有几处不同
for i in line:
print("位于第%s行"%(i)) #打印分别位于第几行
really = input("确认请扣1:")
if really == '1':
with open("wen.txt","w") as f: #确认后覆盖原文件
f.writelines(coten) #将暂存列表的内容写入
rep = input("要修改的字符串:")
new = input("修改成:")
fun1(rep,new)

浙公网安备 33010602011771号