python实验日记

实验8
证明6174猜想

import random
while  True:
    str1=str(random.randrange(1000,10000))#随机取四位数
    print(str1)
    lst=list(str1)
    set_lst=set(lst)
    if len(set_lst) == len(lst):
        break
times=0#计次
while True:
    max1=sorted(str1,reverse = True)#正序排列
    min1=sorted(str1,reverse = False)#倒序排列
    max1=int("".join(list(map(str,max1))))#格式转换为int
    min1=int("".join(list(map(str,min1))))
    A=max1-min1#做差
    str1=str(A)#格式转换
    times=times+1#自增
    print(times)
    if A==6174:
     break
if times<=7:#次数小于7次则规律正确
    print(True)
else:
    print(False)

random.randrange(起,止,步长) 前闭后开
str()强制格式转换为字符串
join()将列表链接成字符串
sorted(序列,reverse=布尔值)排序 True正序 False 逆序
map(函数,序列)按照函数来计算序列 并映射
实验9
在这里插入图片描述


def dt(n):#递推
    a=1
    b=2
    c=4
    for i in range(n-3):
        c,b,a=a+b+c,c,b
    return c
print(dt(15))

def ddui(n):#递归
    first3={1:1,2:2,3:4}
    if n in first3.keys():
        return first3[n]
    else:
        return ddui(n-1)+\
            ddui(n-2)+\
            ddui(n-3)
print(ddui(15))


keys()查询字典中键

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值