我正在编写一个拒绝访问未授权用户的安全系统.
import sys
print("Hello. Please enter your name:")
name = sys.stdin.readline().strip()
if name == "Kevin" or "Jon" or "Inbar":
print("Access granted.")
else:
print("Access denied.")
Run Code Online (Sandbox Code Playgroud)
它按预期授予对授权用户的访问权限,但它也允许未经授权的用户访问!
Hello. Please enter your name:
Bob
Access granted.
Run Code Online (Sandbox Code Playgroud)
为什么会这样?我明确表示,只有在与nameKevin,Jon或Inbar相同时才授予访问权限.我也尝试过相反的逻辑if "Kevin" or "Jon" or "Inbar" == name,但结果是一样的.
因此,我正在使用Python构建一个简单的游戏,以便更熟悉该语言,并且无法找到一种搜索方式,如果之前有人问过这个问题.:P任何方式,当这个代码块执行时,我总是以我的"位置"为.y +10.我已经重新安排并检查了几件事,但觉得我错过了一个非常基本的部分,我通常用switch语句处理
mv = input('N,S,E,W?')
if mv == 'N' or 'n':
Me.Position.Y += 10
elif mv == 'E' or 'e':
Me.Position.X += 10
elif mv == 'W' or 'w':
Me.Position.X -= 10
elif mv == 'S' or 's':
Me.Position.Y -= 10
else:
print('Stand')
Run Code Online (Sandbox Code Playgroud)
然后:
print('Lage: X:', Me.Position.X, ' Y:', Me.Position.Y, ' Z:', Me.Position.Z)
Run Code Online (Sandbox Code Playgroud)
我没有办法使用其他选项.
谢谢!
Join = input('Would you like to join me?')
if Join == 'yes' or 'Yes':
print("Great," + myName + '!')
else:
print ("Sorry for asking...")
Run Code Online (Sandbox Code Playgroud)
所以这是我的代码.它更长; 只是包括问题.我问一个是或否的问题,在控制台中它运行顺利直到你到达它.无论你输入什么,你都会得到'是'的输出.有人可以帮忙吗?我也使用过elif语句,但没有运气.
我正在为计费程序项目编写条件语句。我知道这对于初学者来说有点高级,但我欢迎挑战。无论如何,我计划在启动程序时询问用户名和密码。这是我对该程序的第一次编码。
print ("Hello and welcome to Billing Pro, please enter your username and password to access the database.")
username = input ("Enter username:")
if username == "cking" or "doneal" or "mcook":
print ("Valid username.")
else:
print ("Invalid username. Please try again.")
password = input ("Enter password:")
if password == "rammstein1" or "theory1" or "tupac1":
print ("Valid password. User has been verified.")
else:
print ("Invalid password. Access denied.")
Run Code Online (Sandbox Code Playgroud)
现在,一开始当我运行这段代码时,如果我输入了用户名的三个选项以外的任何内容,Python 就会打印出“无效用户名”行。由于某种原因,它现在打印出“有效用户名”,然后继续显示密码提示。此外,如果我输入密码选择以外的任何内容,它总是会读出“有效密码”提示。
另外,当用户输入三个选项以外的内容时,如何循环用户名提示?我应该使用 while 语句而不是 if-else 还是可以在 if-else 语句末尾放置 while 语句以再次触发提示?
哦,我知道你看不出来,因为我在问题中的格式很糟糕,但我确实在脚本本身上使用了正确的缩进。
python ×4
boolean ×1
eclipse ×1
if-statement ×1
python-3.3 ×1
tkinter ×1
variables ×1
while-loop ×1
windows ×1