| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 970 人关注过本帖
标题:请问一下这个模拟登陆帐号密码的脚本为什么出错
只看楼主 加入收藏
a515200
Rank: 2
等 级:论坛游民
威 望:1
帖 子:18
专家分:94
注 册:2010-7-11
结帖率:0
收藏
已结贴  问题点数:0 回复次数:2 
请问一下这个模拟登陆帐号密码的脚本为什么出错
db={}

def newuser():
     prompt='login desired:'
     while True:
         name=raw_input(prompt)
         if db.has_key(name):
              prompt='name taken,try another:'
              continue
         else:
              break

pwd=raw_input('password:')
db[name]=pwd
           
def olduser():
    name=raw_input('login:')
    pwd=raw_input('passwd:')
    password=db.get(name)
    if passwo==pwd:
        print 'welcome back',name
    else:
        print 'login incorrect'

def showmenu():
    prompt="""
(N)ew User Login
(E)xisting User login
(Q)uit

 qinaideyonghu"""

done=False
while not chosen:
     try:
          choice=raw_input(prompt).strip()[0].lower()
     except (EOFError,KeyboardInterrupt):
          choice='q'
     print '\nbaoqian:[%s]'%choice
     if   choice not in 'neq':
          print 'invalid option,try again'
     else:
          chosen=True

if choice == 'q':done=True
if choice == 'n':newuser()
if choice == 'e':olduser()

if __name__=="__main__":
    showmenu()

打开时 可以。username:    然后输出任何数值后显示db[name]=pwd     name没有被定义  我看不出来
 
搜索更多相关主题的帖子: 帐号 脚本 密码 模拟 登陆 
2010-07-21 04:43
sidooh
Rank: 4
等 级:业余侠客
帖 子:121
专家分:265
注 册:2009-6-26
收藏
得分:10 
程序代码:
db={}
name = ""
chosen = False
prompt = "a"
passwo = ""
def newuser():
     prompt='login desired:'
     while True:
         name=raw_input(prompt)
         if db.has_key(name):
              prompt='name taken,try another:'
              continue
         else:
              break
         pwd=raw_input('password:')
         db[name]=pwd
         
def olduser():
    name=raw_input('login:')
    pwd=raw_input('passwd:')
    password=db.get(name)
    if passwo==pwd:
        print 'welcome back',name
    else:
        print 'login incorrect'

def showmenu():
    global prompt
    prompt="""
(N)ew User Login
(E)xisting User login
(Q)uit
"""




showmenu()
done=False
while not chosen:
     try:
          choice=raw_input(prompt).strip()[0].lower()
     except (EOFError,KeyboardInterrupt):
          choice='q'
     print '\nbaoqian:[%s]'%choice
     if   choice not in 'neq':
          print 'invalid option,try again'
     else:
          chosen=True
if choice == 'q':done=True
if choice == 'n':newuser()
if choice == 'e':olduser()
if __name__=="__main__":
    showmenu()

定义函数不是调用函数,所以name没有被定义
同样还有很多变量没有定义,在最顶端给你加上了

一边定义函数,一边写代码,看起来很别扭

只是给你把语法问题改了,具体实现什么功能说清楚
pwd=raw_input('password:')
db[name]=pwd
应该是放在newuser()里面,但是你的缩进用的tab,我编辑器里不兼容
2010-07-22 09:55
外部三电铃
Rank: 16Rank: 16Rank: 16Rank: 16
来 自:那一年
等 级:贵宾
威 望:57
帖 子:2012
专家分:7306
注 册:2007-12-17
收藏
得分:10 
好多处错误,具体错误在哪里我就不指出了,我这里只给出正确的,楼主对比一下自己的程序

程序代码:
db={}

def newuser():
     prompt='login desired:'
     while True:
         name=raw_input(prompt)
         if db.has_key(name):
              prompt='name taken,try another:'
              continue
         else:
              break

pwd=raw_input('password:')
db['name']=pwd
          
def olduser():
    name=raw_input('login:')
    pwd=raw_input('passwd:')
    password=db.get(name)
    if passwo==pwd:
        print 'welcome back',name
    else:
        print 'login incorrect'

def showmenu():
    prompt="""
(N)ew User Login
(E)xisting User login
(Q)uit

qinaideyonghu"""

done=False
chosen = False
while not chosen:
     try:
          choice=raw_input('prompt:').strip()[0].lower()
     except (EOFError,KeyboardInterrupt):
          choice='q'
     print '\nbaoqian:[%s]'%choice
     if   choice not in 'neq':
          print 'invalid option,try again'
     else:
          chosen=True

if choice == 'q':done=True
if choice == 'n':newuser()
if choice == 'e':olduser()

if __name__=="__main__":
    showmenu()


那一年,苍井空还是处女
2010-07-22 12:33
快速回复:请问一下这个模拟登陆帐号密码的脚本为什么出错
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.037371 second(s), 8 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved