鱼C论坛

 找回密码
 立即注册
查看: 1173|回复: 8

[已解决]登录问题,求解

[复制链接]
发表于 2019-10-11 06:45:05 | 显示全部楼层 |阅读模式

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

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

x
运行时,出现如下问题,请问怎么解决
Traceback (most recent call last):
  File "G:\python\user_denglu.py", line 62, in <module>
    showmenu()
  File "G:\python\user_denglu.py", line 44, in showmenu
    while true:
NameError: name 'true' is not defined


源代码如下:
user_data={}

def new_uesr():
    prompt='请输入用户名:'
    while true:
        name=input(prompt)
        if  name in user_data:
            prompt='此用户名已经被使用,请重新输入:'
            continue
        else:
            break


    passwd=input('请输入密码:')
    user_data[name]=passwd
    print('注册成功,赶紧试试登录吧')

def old_user():
    prompt='请输入用户名:'

    while true:
        name=input(prompt)
        if name not in user_data:
            prompt='您输入的用户名不存在,请重新输入'
            continue
        else:
            break

    passwd=input('请输入密码')
    pwd=user_data.get(name)
    if passwd==pwd:
        print('欢迎进入XXOO系统,请点击右上角X结束程序')

    else:
        print('密码错误')
def showmenu():
    prompt='''
---新建用户:N/n---
---登录账号:E/e---
---退出程序:Q/q---
---请输入指令代码:'''
    while true:
        chosen=false
        while not chosen:
           choice=input(prompt)
        if choice not in 'NnEeQq':
                print('您输入的指令代码有误,请重新输入:')
                continue
        else:
                chosen=true
                break

        if choice=='q'or choice=='Q':
            break
        if choice=='e'or choice=='E':
            old_user()
        if choice=='N'or choice=='n':
            new_user()

showmenu()
最佳答案
2019-10-11 11:21:40
仅从错误信息来看,编译器将 'true' 理解成了一个变量名,然而其实楼主并没有定义这个变量,如此判断楼主应当是在使用 布尔值 的 真值关键字
解决办法:
其一:将所有的,能被理解为变量名的 'true' 替换为 'True'。
其二:在代码的顶部加入全局变量,如:
  1. true = True
复制代码
或者
  1. true = 1
复制代码
之类的语句。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2019-10-11 06:55:56 From FishC Mobile | 显示全部楼层
True不是true
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-11 06:57:14 From FishC Mobile | 显示全部楼层
true 应该是 True, 首字母大写
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-11 09:04:35 | 显示全部楼层
NameError: name 'true' is not defined

错误提示已经告诉你了,true没有被定义。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-11 11:21:40 | 显示全部楼层    本楼为最佳答案   
仅从错误信息来看,编译器将 'true' 理解成了一个变量名,然而其实楼主并没有定义这个变量,如此判断楼主应当是在使用 布尔值 的 真值关键字
解决办法:
其一:将所有的,能被理解为变量名的 'true' 替换为 'True'。
其二:在代码的顶部加入全局变量,如:
  1. true = True
复制代码
或者
  1. true = 1
复制代码
之类的语句。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-11 15:09:01 | 显示全部楼层
true改成True
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-11 16:24:42 | 显示全部楼层
拼写错误,把 true 改成 True 即可。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2019-10-11 21:36:56 | 显示全部楼层
英语不好,啥都差~
defined是definition的过去式,Python告诉你了true没定义,你肯定会想到你拼写错误,应该写成True。

PS:如果您觉得我回答得好,别忘了设置最佳答案哟~
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2019-10-12 06:22:01 | 显示全部楼层
阴阳神万物主 发表于 2019-10-11 11:21
仅从错误信息来看,编译器将 'true' 理解成了一个变量名,然而其实楼主并没有定义这个变量,如此判断楼主应 ...

谢谢,我只是认为大小写没区别,现在清楚了,谢谢
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-5-18 15:36

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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