python学习小记

本文通过在实现一个python程序时遇到的一些问题来学习python程序。好,废话少说,先上代码:

   
   
#coding=gbk
db = {}
#注册新用户
def newuser ():
prompt = 'login desired:'
global db
while 1 :
#输入用户名
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 ( 'password:' )
global db
#从字典中获取以用户名为键字的键值,即密码
passwd = db . get ( name )
if passwd == pwd :
#登陆成功
print 'welcome back' , name
pass
else :
#登录信息错误,返回菜单
print 'login incorrect'
return
#主函数
def showmenu ():
#提示信息,用三重引号给出
prompt = """
(N)ew User Login
(E)xisiting User Login
(Q)uit
Enter ur choice:""" #显示菜单后,程序根据等待来自用户的合法输入并根据选中的菜单项进入相应操作
done = 0
while not done :
chosen = 0
while not chosen :
try :
choice = raw_input ( prompt )[ 0 ]
except ( EOFError , KeyboardInterrupt ):
choice = 'q'
print ' \n U picked: [ %s ]' % choice
if choice not in 'neq' :
print 'please try again'
else :
chosen = 1
if choice == 'q' : done = 1
if choice == 'n' : newuser ()
if choice == 'e' : olduser ()
if __name__ == '__main__' :
showmenu ()

本程序是模拟一个登录系统,本程序期望实现功能:1.新用户注册(注:注册名已存在的处理); 2.老用户登陆(注:密码错误处理);3.退出系统
  新用户注册信息和老用户信息都会用字典存储。本程序主程序是showmenu(),还有两个小函数:newuser()和olduser(),分别处理新用户注册和老用户登陆问题。程序本身的注释应该可以让读者了解到本程序,那么我就不多说了。我主要讲讲在实现本程序时的一些问题
  在实现该程序的时候会出现以下常见问题:
  1.注释问题
  在python中,单行注释以#开头。但是,如果用pydev或者别的什么IDE来编写程序是,如果开头不声明保存编码格式,就会默认使用ASCII码保存,那么代码中的中文就会有问题,即使中文在注释里面。
  错误提醒如下:


  那么要如何声明保存编码格式呢?很简单,只需在程序的开头加上#coding=gbk或者是#coding=utf-8即可
  2.if __name__ == '__main__':
  这个语句设计模块的知识,可以这么说,模块是对象,并且所有的模块都有一个内置属性_name_。一个模块的_name_值取决于你如何应用模块。在cmd中直接运行.py文件,则_name_的值就是'_main_',从而,这里if __name__ == '__main__':来判断是否在直接运行该.py文件。清楚该语句的含义后,我说说初学者易犯的一个错误,没有正确的格式。
打击看看这两条语句,看看哪条正确哪条错误:
(1)if __name__ == '__main__':
(2)if__name__=='__main__':
答案是(1)是对的,(2)是错的。如果用了(2),就会提醒你格式错误,如下:


所以,从以上(1)和(2)看出__name__ 和 '__main__'都要与它两旁的语句相隔一格。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值