鱼C论坛

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

[已解决]python3课26课后作业

[复制链接]
发表于 2020-6-24 17:42:55 | 显示全部楼层 |阅读模式

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

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

x
def showmenu():
    prompt = '''
|--- 新建用户:N/n ---|
|--- 登录账号:E/e ---|
|--- 推出程序:Q/q ---|
|--- 请输入指令代码:'''

    while True:
        chosen = False
        while not chosen:
            choice = input(prompt)
            if choice not in 'NnEeQq':
                print('您输入的指令代码错误,请重新输入:')
            else:
                chosen = True


求助,没有理解这里的chosen为什么要等于false,while not chosen 又是什么意思
最佳答案
2020-6-24 20:23:29
chosen = False 只是给chosen一个默认值。就像你家电器开关,默认都是关着的,不工作的。

当while not chosen 也就是while not False  == while True的时候,choice开始往下进行。

也就是说,当你指令错误的时候,while是一直循环的。

当非if分支的时候,chosen开关才打开,然后while条件不满足,程序跳出循环,继续往下走。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-6-24 18:42:36 | 显示全部楼层

没有理解这里的chosen为什么要等于false,while not chosen 又是什么意思

while True:
    chosen = False
    while not chosen:
        choice = input(prompt)
        if choice not in 'NnEeQq':
            print('您输入的指令代码错误,请重新输入:')
        else:
            chosen = True

chosen 是作为这里第二个 while 循环的条件,当你输入的指令代码不在 'NnEeQq' 里面 就会提示你错误,如果在这里面

就要退出 第二个 while 的循环 ,而 while 的循环条件是 not chosen ,而想退出循环 那么就要使得条件为 False

因为条件有 not 所以想退出循环时候 chosen 就要为 True 才能退出循环

not chosen   就是把 chosen 的布尔值反转嘛,如果 chosen 为 True 那加上not 就为 False 反之 如果 chosen 为 chose 加上 not 就为 True

然后用来判断 while 循环的条件

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-24 19:15:21 | 显示全部楼层
chosen 是一个“标志”,它标志着用户输入是否正确

看到 第二个 while 循环 的条件 not chosen 意思是在 chosen 不等于 true 的情况下运行

刚开始为了进入循环,所以把 chosen 赋值为 false

直到用户输入正确,chosen = true 跳出循环
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-6-24 20:23:29 | 显示全部楼层    本楼为最佳答案   
chosen = False 只是给chosen一个默认值。就像你家电器开关,默认都是关着的,不工作的。

当while not chosen 也就是while not False  == while True的时候,choice开始往下进行。

也就是说,当你指令错误的时候,while是一直循环的。

当非if分支的时候,chosen开关才打开,然后while条件不满足,程序跳出循环,继续往下走。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2025-1-20 12:15

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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