鱼C论坛

 找回密码
 立即注册
查看: 1508|回复: 11

关于课后习题讲的26 的动手做第0题的问题

[复制链接]
发表于 2017-10-10 16:55:56 | 显示全部楼层 |阅读模式

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

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

x
本帖最后由 949410591 于 2017-10-17 04:00 编辑

这个是题目 QQ截图20171010164927.png

这个是我写的代码

#这个是用户和密码的字典
dict1 ={}

#这个是创建新用户
def new(x):
    name = input('请输入用户名:')
    while True:
        if name in x:
            name = input('此用户名已经被使用,请重新输入:')
            continue
        else:
            break
    code = input('请输入用户密码:')
    dict2 = {name : code}
    x.update(dict2)
    print('注册成功,赶紧试试登录\n')

#这个是登录系统
def den(y):
    name = input('请输入用户名:')
    while True:
        if name in y:
            break
        else:
            name = input('该用户名不存在,请重新输入:')
            continue
    while True:
        code = input('请输入密码:')
        if code == y[name]:
            return 1
            break
        else:
            code = input('密码输入错误:请重新输入')
            continue




#这个是结束程序   
def over():
    print('欢迎进入xxoo系统,请点右上角的x结束程序!')



#这个是总系统
def system():

    while True:
        print('|--- 新建用户:N/n ---|')
        print('|--- 登录账号:E/e ---|')
        print('|--- 退出程序:Q/q ---|')
        alpha = input('|---请输入指令代码:')
        if alpha in 'Nn':
            new(dict1)
            continue
        elif alpha in 'Ee':
            up(dict1)
            over()
            break
        elif alpha in 'Qq':
            over()
            break
        else:
            print('输入错误指令代码请重新输入\n')
system()


如果运行程序,不输入任何东西,直接打回车会发生这个
QQ截图20171010165404.png


主要问题在总系统这


        print('|--- 新建用户:N/n ---|')
        print('|--- 登录账号:E/e ---|')
        print('|--- 退出程序:Q/q ---|')
        alpha = input('|---请输入指令代码:\n')

# 在这里不输入任何东西,按enter,程序是直接运行下一行代码
然后就直接进入创建新用户的函数里了 ,这里为什么if 直接就跳过了???直接按enter,输入不就是空字符串吗?那直接运行下一段代码,空字符串也不在‘Nn’里呀  0.0   

        if alpha in 'Nn':
            new(dict1)
            continue
我现在已经知道怎么解决这个bug,但是这个原因是什么我就不清楚了,望有大佬帮忙



想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-10-10 17:00:46 | 显示全部楼层
空。
已经存在。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-10 17:01:13 | 显示全部楼层
字典初始不是空吗?
至少我这么理解。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-10 17:04:55 | 显示全部楼层
没错。
你首先加一个账号,不要空的。
然后再新建账号,直接回车,就不会有这样的错误了。

总结:
dict1={}
这时字典为空,
用户名直接回车,
即为空,
所以提醒已经存在。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-10 17:09:41 | 显示全部楼层
本帖最后由 949410591 于 2017-10-10 17:19 编辑
新手·ing 发表于 2017-10-10 17:01
字典初始不是空吗?
至少我这么理解。


我现在知道原因是:运行程序不输入任何东西,直接按回车 输入的是空字符串,我把

def system()
里第一个if前加了个if
程序改成这个
        if alpha == '':
            continue
        elif alpha in 'Nn':
            new(dict1)
            continue
        elif alpha in 'Ee':
            up(dict1)
            over()
            break

就可以不会出现这个bug,但是我又有另一个问题,为什么直接按回车能按顺序运行程序???
      
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-10 17:11:30 | 显示全部楼层
949410591 发表于 2017-10-10 17:09
我现在知道原因是:运行程序输入任何东西,直接打字符串,输入的是空字符串,我把
#这个是总系统
def s ...

这有什么疑问,你输入什么都要按顺序。
按你写的程序顺序运行。
你回车了,
然后被跳过了。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-10 17:20:40 | 显示全部楼层
新手·ing 发表于 2017-10-10 17:11
这有什么疑问,你输入什么都要按顺序。
按你写的程序顺序运行。
你回车了,

那你的意思是,直接按空隔是可以直接运行下行代码??
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-10 17:22:19 | 显示全部楼层
949410591 发表于 2017-10-10 17:20
那你的意思是,直接按空隔是可以直接运行下行代码??

看你的程序怎么写。
你写了循环,自然就出不去。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-10 17:30:35 | 显示全部楼层
新手·ing 发表于 2017-10-10 17:22
看你的程序怎么写。
你写了循环,自然就出不去。


        print('|--- 新建用户:N/n ---|')
        print('|--- 登录账号:E/e ---|')
        print('|--- 退出程序:Q/q ---|')
        alpha = input('|---请输入指令代码:\n')

# 在这里不输入任何东西,按enter,程序是直接运行下一行代码
然后就直接进入创建新用户的函数里了 ,这里为什么if 直接就跳过了???直接按enter,输入不就是空字符串吗?那直接运行下一段代码,空字符串也不在‘Nn’里呀  0.0   

        if alpha in 'Nn':
            new(dict1)
            continue

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-10 17:34:13 | 显示全部楼层
啥都没输入跳到第一个if吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-10 17:34:28 | 显示全部楼层
你再听听其他人的意见吧。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-17 03:52:55 From FishC Mobile | 显示全部楼层
为什么呀
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

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

本版积分规则

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

GMT+8, 2024-4-24 05:14

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

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