滑稽蛋 发表于 2020-6-24 17:42:55

python3课26课后作业

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 又是什么意思

Twilight6 发表于 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 循环的条件

liuzhengyuan 发表于 2020-6-24 19:15:21

chosen 是一个“标志”,它标志着用户输入是否正确

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

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

直到用户输入正确,chosen = true 跳出循环

heidern0612 发表于 2020-6-24 20:23:29

chosen = False 只是给chosen一个默认值。就像你家电器开关,默认都是关着的,不工作的。

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

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

当非if分支的时候,chosen开关才打开,然后while条件不满足,程序跳出循环,继续往下走。
页: [1]
查看完整版本: python3课26课后作业