weixin_50966102 2022-09-18 10:52 采纳率: 50%
浏览 126
已结题

python寻找走马灯数

没有学过python,想请教下有没有人知道这段代码的意思啊?最好每句都能讲讲

好像是一个寻找走马灯数的代码。


for i in range(123456, 987655):
    if len(set(str(i))) < 6:
        continue
    for j in range(1, 7):
        if set(str(i)) - set(str(i * j)):
            break
    else:
        print(i)
  • 写回答

2条回答 默认 最新

  • 请叫我问哥 新星创作者: python技术领域 2022-09-18 11:10
    关注
    for i in range(123456, 987655): # 从123456检查到987654,因为这是最小和最大的每位数字都不同的六位数
        if len(set(str(i))) < 6: # 如果中间某六位数中包含了重复数字,比如123466,则跳过(set用于去重)
            continue # 跳过当前数字
        for j in range(1, 7): # 用该数字分别乘以1到6
            if set(str(i)) - set(str(i * j)): # 如果乘的结果包含了与原六位数不同的数字,则跳出
                break # 跳出,继续检查下一个六位数
        else:
            print(i) # 如果乘以1到6的结果包含的数字都与原六位数相同,则打印在控制台
    

    只有一个数字符合条件:142857

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

问题事件

  • 系统已结题 9月26日
  • 已采纳回答 9月18日
  • 创建了问题 9月18日