0 python syntax loops conditional-statements
我是python和编程的新手,我遇到了这个问题,同时摆弄了一个简单的while循环.循环接受输入以评估两个可能的密码:
print('Enter password')
passEntry = input()
while passEntry !='juice' or 'juice2':
print('Access Denied')
passEntry = input()
print(passEntry)
print('Access Granted')
Run Code Online (Sandbox Code Playgroud)
它似乎不接受果汁或果汁2有效.
也只是接受一个密码,如:
while passEntry != 'juice' :
Run Code Online (Sandbox Code Playgroud)
不起作用,而:
while passEntry !='juice' :
Run Code Online (Sandbox Code Playgroud)
工作良好.我似乎无法找到这些问题的原因(后两者之间的区别是=之后的空格).任何帮助表示赞赏.
首先,您应该使用Python的getpass模块来获取可移植的密码.例如:
import getpass
passEntry = getpass.getpass("Enter password")
Run Code Online (Sandbox Code Playgroud)
然后,您编写的代码用于保护while循环:
while passEntry != 'juice' or 'juice2':
Run Code Online (Sandbox Code Playgroud)
由Python解释器解释为具有保护表达式的while循环
(passEntry != 'juice') or 'juice2'
Run Code Online (Sandbox Code Playgroud)
这总是正确的,因为无论是否passEntry等于"果汁","juice2"在被解释为布尔值时将被视为真.
在Python中,测试成员资格的最佳方法是使用in运算符,该运算符适用于各种数据类型,例如列表或集合或元组.例如,一个列表:
while passEntry not in ['juice', 'juice2']:
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
326 次 |
| 最近记录: |