课后题中遇到的困难
x = 7i = 1
flag = 0
while i <= 100:
if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
flag = 1
else:
x = 7 * (i+1) # 根据题意,x一定是7的整数倍,所以每次乘以7
i += 1
if flag == 1:
print('阶梯数是:', x)
else:
print('在程序限定的范围内找不到答案!')
flag=0为什么要有这一步啊?
flag是什么意思?
本帖最后由 Hello. 于 2020-6-9 21:56 编辑
标志性变量
当 flag == 1 时打印
它本身是旗帜的意思,可增加程序可读性 flag=0为什么要有这一步啊?
用于初始化变量,为后续代码使用做准备,比如说如果你没有设置这个初始值,而且你判断不到爱因斯坦阶梯,也就导致if (x%2 == 1) and (x%3 == 2) and (x%5 == 4) and (x%6==5):
flag = 1
这串代码无法成立,当判断到:if flag == 1:
print('阶梯数是:', x)
else:
print('在程序限定的范围内找不到答案!')这一步时,就会因为你 flag 没有定义而报 NameError 的错误,flag 没有定义!
所以这里先初始化了flag,就是用于怕判断如果找不到爱因斯坦阶梯就使得判断条件不成立,执行else 的代码块
flag 英文含义就是个旗的意思,经常看剧都会说 立flag 就是说的这个,在程序中只是个普通的变量名,便于阅读代码,你也可以改成你喜欢的变量名,没实际含义 开局不是赋值一个flag=0么,其实flag在程序中就是个变量名,把他换成abcde都可以,规范一点方便可读 初始化变量,到后面用
页:
[1]