name(number) is not defined?
print('--------请输入你的密码------------')code = input('请输入密码:')
answer == '1234567'
i == 1
while True:
if '*' in code:
code = input("密码中不能含有“*”号")
print ("你还有三次机会")
else:
if code != answer and i < 3:
code = input("密码错误,你还有{}次机会".format("3 - i"))
i += 1
if code != answer and i > 3:
print("密码输入错误,你已经没有机会重新输入了。")
break
else:
print("密码输入正确,进入程序。")
break
这个里面一旦运行就会出现"name ( answer ) is not defined",但是我明明就设定了answer= ‘’1234567‘’的呀,想请教一下为什么会这样子,如果大家知道的话可以告诉我一般这样xx is not defined是什么原因导致的吗?
另:我里面的in和not in 的运用是不是有些问题? 第④行是神马东东 本帖最后由 wuqramy 于 2020-3-23 10:09 编辑
双等号(==)是用来判断等号两边是否相等的,赋值是用单等号(=)
代码还有隐藏的bug,正确代码如下:
print('--------请输入你的密码------------')
code = input('请输入密码:')
answer = '1234567'
i = 1
while True:
if '*' in code:
code = input("密码中不能含有“*”号")
print ("你还有三次机会")
else:
if code != answer and i < 3:
code = input("密码错误,你还有{}次机会".format(3 - i))
i += 1
if code != answer and i > 3:
print("密码输入错误,你已经没有机会重新输入了。")
break
if code == answer:
print("密码输入正确,进入程序。")
break 第 4 行是 = 不是 == 单等号是赋值,双等号是比较。
上面理解了就好。 =是赋值
==是等于
改成answer=‘1234’
i=1
把3行,4行的双等号改为一个等号,因为双等号是比较左右两边的数据是否相等,而一个等号是赋值运算,也就是把右边的数据赋值给左边 wuqramy 发表于 2020-3-23 10:05
双等号(==)是用来判断等号两边是否相等的,赋值是用单等号(=)
代码还有隐藏的bug,正确代码如下:
最后一个不能用else。是我有哪种情况漏掉没分析吗
页:
[1]