鱼C论坛

 找回密码
 立即注册
查看: 1411|回复: 7

[已解决]name(number) is not defined?

[复制链接]
发表于 2020-3-23 10:01:03 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
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 的运用是不是有些问题?
最佳答案
2020-3-23 10:05:29
本帖最后由 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2020-3-23 10:02:49 From FishC Mobile | 显示全部楼层
第④行是神马东东
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-23 10:05:29 | 显示全部楼层    本楼为最佳答案   
本帖最后由 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
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2020-3-23 10:06:23 | 显示全部楼层
第 4 行是 = 不是 ==
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-3-23 10:21:29 | 显示全部楼层
单等号是赋值,双等号是比较。

上面理解了就好。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-3-23 10:39:08 | 显示全部楼层
=是赋值
==是等于
改成answer=‘1234’
i=1
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

发表于 2020-3-23 10:39:57 | 显示全部楼层
把3行,4行的双等号改为一个等号,因为双等号是比较左右两边的数据是否相等,而一个等号是赋值运算,也就是把右边的数据赋值给左边
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 1 反对 0

使用道具 举报

 楼主| 发表于 2020-3-23 12:53:21 | 显示全部楼层
wuqramy 发表于 2020-3-23 10:05
双等号(==)是用来判断等号两边是否相等的,赋值是用单等号(=)
代码还有隐藏的bug,正确代码如下:

最后一个不能用else。是我有哪种情况漏掉没分析吗
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-25 07:51

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表