鱼C论坛

 找回密码
 立即注册
查看: 1776|回复: 4

课后题中遇到的困难

[复制链接]
发表于 2020-6-9 21:52:37 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
x = 7
i = 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是什么意思?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-9 21:54:32 | 显示全部楼层
本帖最后由 Hello. 于 2020-6-9 21:56 编辑

标志性变量
当 flag == 1 时打印

它本身是旗帜的意思,可增加程序可读性
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-9 22:25:50 | 显示全部楼层
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 就是说的这个,在程序中只是个普通的变量名,便于阅读代码,你也可以改成你喜欢的变量名,没实际含义
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-6-10 17:40:29 | 显示全部楼层
开局不是赋值一个flag=0么,其实flag在程序中就是个变量名,把他换成abcde都可以,规范一点方便可读
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-10 20:38:14 | 显示全部楼层
初始化变量,到后面用
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2025-1-11 15:53

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表