如何实现Python代码从第3行重试直到if/else逻辑执行完成
问题解决方案
要实现从代码第3行开始重复执行、直到回文数判断通过的效果,不需要修改你已编写的数学运算逻辑、递归求反转数的函数、内置函数调用,仅需要补充循环结构,在空缺的if分支填入对应跳转语句即可。
补全后的可运行代码
import math import random # 补全必需的模块导入,否则random.randint无法调用,未改动原有业务逻辑 rand1 = random.randint(999,10000) # 第2行,仅初始化一次,不参与重跑 def rev(num): # 函数定义仅执行一次,放在调用前符合Python语法要求 return int(num != 0) and ((num % 10) * (10**int(math.log(num, 10))) + rev(num // 10)) while True: # 以下为从原代码第3行开始的内容,每次res为False时会重新执行这部分 rand2 = random.randint(999,10000) randnum = rand1 * rand2 #if randnum == randnum[::-1]: # print("true" , randnum) #else: #pass print ("The generated number is : " + str(randnum)) res = randnum == rev(randnum) print(res) if res == False : # 分支内填写continue即可回到循环开头,从rand2生成(原第3行)开始重跑 continue # res为True时跳出循环,整个判断流程执行完毕 break
逻辑说明
- 固定不重复执行的部分:模块导入、rand1初始化、rev函数定义,这部分和你原代码的逻辑完全一致,没有修改任何运算规则
- 用
while True构建循环结构,把原代码从第3行(rand2生成)开始到判断结束的所有逻辑放入循环体 - 空缺的if分支内只需要填写
continue语句:当判断生成的乘积不是回文数时,continue会直接跳过当前轮次剩余逻辑,回到循环开头重新执行rand2生成、乘积计算、回文判断的全流程 - 当判断乘积是回文数时,执行
break跳出循环,整个if/else判断流程全部执行完成 - 原代码中的注释块、反转数计算的递归公式、打印语句、比较逻辑完全保留,没有做任何修改。
内容的提问来源于stack exchange,提问作者bob makintaz
相关产品推荐
相关产品推荐

