Python作业代码疑问:输入123454时为何返回True?
代码逻辑解析:输入123454返回True的原因
先把你的代码用代码块展示:
def numbers(num): remove = str(num)[:-1] remove += str(int(remove) %7) return int(remove) == num numb = int(input("Enter a 6 Digit Number: ")) print(numbers(numb))
这个函数的核心是验证输入的数字是否满足**"前5位数字模7的结果,恰好是原数字的最后一位"**这个规则,我们代入输入值123454一步步拆解执行过程:
第一步:
remove = str(num)[:-1]
把输入的整数123454转为字符串"123454",[:-1]是字符串切片语法,取到倒数第二个字符,得到前5位的字符串"12345"。第二步:
remove += str(int(remove) %7)
先把"12345"转为整数12345,计算它模7的结果:12345 ÷7 = 1763余4,所以12345 %7 =4。
把这个结果转为字符串"4",拼到之前的"12345"后面,得到新的字符串"123454"。第三步:
return int(remove) == num
把拼接后的字符串"123454"转回整数,和原输入的123454完全相等,所以返回True。
简单来说,123454的前5位12345除以7余4,刚好是原数的最后一位,所以函数返回True。
内容的提问来源于stack exchange,提问作者Shamble
相关产品推荐
相关产品推荐

