勤奋的火柴头 发表于 2020-8-20 17:05:16

python第9讲输入密码题不太懂

0. 设计一个验证用户密码程序,用户只有三次机会输入错误,不过如果用户输入的内容中包含"*"则不计算在内。
以下是我写的代码:
password = 'FishC.com'
secret = '*'
answer = input('请输入密码:')
i = 3

while i:
    if answer == password:
      print('密码正确,进入程序......')
      break

    else:
      i -= 1
      print('密码输入错误!您还有', i, '次机会!请输入密码:')
   
    for secret in password:   
      print('密码中不能含有"*"号!您还有3次机会!请输入密码:')
      break


当输入正确答案时,是没有问题的;
但是输入*时,结果会连print('密码输入错误!您还有', i, '次机会!请输入密码:') 这句一起打印了...直到机会用完。。。

然后看答案用了elif '*' in passwd:,这个语法是什么时候讲的呢?语法是和for一样,适用于if或者elif中吗?

zltzlt 发表于 2020-8-20 17:06:47

'*' in passwd 这是一个独立的表达式,用于判断 '*' 是否存在于 passwd 中

勤奋的火柴头 发表于 2020-8-20 17:13:21

zltzlt 发表于 2020-8-20 17:06
'*' in passwd 这是一个独立的表达式,用于判断 '*' 是否存在于 passwd 中

OK,明白了,谢谢

小白到大佬 发表于 2020-8-20 23:59:01

in是成员资格运算符,in用于检查一个值是否在序列中,如果在序列中返回true,否则返回false,这个语法小甲鱼在上一讲中出的作业题目中有,课堂上是没有提到的

勤奋的火柴头 发表于 2020-8-21 13:11:08

小白到大佬 发表于 2020-8-20 23:59
in是成员资格运算符,in用于检查一个值是否在序列中,如果在序列中返回true,否则返回false,这个语法小甲 ...

嗯嗯,,明白了,我也找到了,谢谢
页: [1]
查看完整版本: python第9讲输入密码题不太懂