题目

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)

  

posted @ 2018-01-13 10:16  93415888  阅读(93)  评论(0)    收藏  举报