【笔记】Python实现ATM系统
1、编写一个简单的蜗牛ATM的注册和登陆功能,要求如下:a、列出两个列表,一个存放用户名,一个存放密码,下标位置一一对齐。注册时,判断用户没是否已存在,密码长度要大于等于6位。如果输入错误要有相应的提示,并退出系统。b、如果用户注册成功,则提示用户进行登陆,要求用户输入用户名和密码,只有当用户名和密码均正确才能提示用户登陆成功,否则提示用户名或密码错误,并退出系统。username = ['zha
1、编写一个简单的蜗牛ATM的注册和登陆功能,要求如下:
a、列出两个列表,一个存放用户名,一个存放密码,下标位置一一对齐。注册时,判断用户没是否已存在,密码长度要大于等于6位。如果输入错误要有相应的提示,并退出系统。
b、如果用户注册成功,则提示用户进行登陆,要求用户输入用户名和密码,只有当用户名和密码均正确才能提示用户登陆成功,否则提示用户名或密码错误,并退出系统。
username = ['zhangsan','lisi','wangwu']
password = ['111111','222222','333333']
def reg():
print('欢迎使用蜗牛ATM系统')
un = input('请设置您的用户名:')
if un.strip() in username: #去除空格
print('用户名已存在')
return False #当前函数结束
else:
pw = input('请设置您的密码:')
if len(pw)<6:
print('密码长度小于6位')
return False
else:
username.append(un)
password.append(pw)
print('注册成功!')
return True
def login():
un = input('请输入您的用户名:')
pw = input('请输入您的密码:')
if un.strip() in username: #说明用户模输入正确
i = username.index(un)
if password[i] == pw:
print('恭喜登录成功!')
else:
print('用户名或密码错误!')
else:
print('用户名或密码错误!')
return True
if reg(): #有返回值,可作判断
login()
2、在上题基础上加入错误重试功能,不管是注册阶段还是登陆阶段,一但用户输入错误,都将提示用户重新输入,直到正确为止。
username = ['zhangsan','lisi','wangwu']
password = ['111111','222222','333333']
def reg():
print('欢迎使用蜗牛ATM系统')
while True:
un = input('请设置您的用户名:')
if un.strip() in username: # 去除空格
print('用户名已存在')
else:
pw = input('请设置您的密码:')
if len(pw) < 6:
print('密码长度小于6位')
else:
username.append(un)
password.append(pw)
print('注册成功!')
return True
def login():
while True:
un = input('请输入您的用户名:')
pw = input('请输入您的密码:')
if un.strip() in username: # 说明用户模输入正确
i = username.index(un)
if password[i] == pw:
print('恭喜登录成功!')
break
else:
print('用户名或密码错误!')
else:
print('用户名或密码错误!')
if reg(): #有返回值,可作判断
login()
3、在前面的蜗牛ATM项目的基础上进一步改进,要求使用一个二维列表来保存用户名和密码。
例如:users=[['zhangsan','123456'],['lisi','admin123']]
并添加如下操作主菜单:
************欢迎来到WoniuATM*************
***************请选择操作菜单***************
************1.注册 2.登录 3.退卡************
用户选择对应的菜单选项进行操作,每次操作完后继续进入主菜单,用户输入3之后可以结束并退出应用程序。
users=[['zhangsan','123456'],['lisi','admin123']]
def reg():
print('欢迎使用蜗牛ATM系统')
while True:
un = input('请设置您的用户名:')
for item in users:
if un.strip() == item[0]: #item[0]即用户名
print('用户名已存在')
break #break出for循环
else:
pw = input('请设置您的密码:')
if len(pw) < 6:
print('密码长度小于6位')
else:
users.append([un,pw])
print('注册成功!')
return True #退出整个函数
def login():
while True:
un = input('请输入您的用户名:')
pw = input('请输入您的密码:')
for user in users:
if user[0] == un.strip() and user[1] == pw.strip():
print('登陆成功!')
return
else:
print('用户名或密码错误!')
def get_menu():
menu = '''
************欢迎来到WoniuATM*************
**************请选择操作菜单**************
**********1.注册 2.登录 3.退卡**********
'''
while True:
print(menu)
option = input('请输入您需要操作的菜单:')
if option.strip() == '1':
reg()
elif option.strip() == '2':
login()
elif option.strip() == '3':
print('感谢您的使用,欢迎下次在来!')
break
else:
print('选择菜单项错误,请重新选择!')
get_menu()
4、在3题项目的基础上进一步进行改进,要求使用一个列表加字典的形式来保存用户的信息,并增加一个账户余额信息。
用户信息的保存格式如下:
user_list = [{'user':'zhangsan','password':'123456','balance':1000},
{'user':'lisi','password':'111111','balance':2500},
{'user':'wangwu','password':'asd123','balance':100}
]
添加如下操作菜单,
******************欢迎来到WoniuATM*****************
********************请选择操作菜单*********************
************1.注册 2.登录 3.查询余额 4.退卡************
用户选择对应的菜单选项进行操作,每次操作后继续进入主菜单,用户输入4值会可以结束并退出应用。用户注册成功后奖励3000元账户余额。
user_list = [{'user':'zhangsan','password':'123456','balance':1000},
{'user':'lisi','password':'111111','balance':2500},
{'user':'wangwu','password':'asd123','balance':100}
]
current_uer = None #用于记录当前登陆用户信息的全局变量
def reg():
print('欢迎使用蜗牛ATM系统')
while True:
un = input('请设置您的用户名:')
for item in user_list:
if un.strip() == item['user']: #item[0]即用户名
print('用户名已存在')
break #break出for循环
else:
pw = input('请设置您的密码:')
if len(pw) < 6:
print('密码长度小于6位')
else:
user_list.append({'user':un, 'password':pw, 'balance':3000})
print('注册成功!')
# print(user_list)
return True #退出整个函数
def login():
while True:
un = input('请输入您的用户名:')
pw = input('请输入您的密码:')
for user in user_list:
if user['user'] == un.strip() and user['password'] == pw.strip():
print('登陆成功!')
global current_uer
current_uer = user
return
else:
print('用户名或密码错误!')
def check_balace():
if current_uer: #None是假,非空则True
print('当前用户的余额为:',current_uer['balance'])
else:
print('请先登陆后,再查询余额!')
def get_menu():
menu = '''
******************欢迎来到WoniuATM*****************
********************请选择操作菜单*********************
************1.注册 2.登录 3.查询余额 4.退卡************
'''
while True:
print(menu)
option = input('请输入您需要操作的菜单:')
if option.strip() == '1':
reg()
elif option.strip() == '2':
login()
elif option.strip() == '3':
check_balace()
elif option.strip() == '4':
print('感谢您的使用,欢迎下次在来!')
break
else:
print('选择菜单项错误,请重新选择!')
get_menu()
5、继续改进蜗牛ATM功能,功能要求如下:
添加如下操作:
***************************欢迎来到WoniuATM*****************************
******************************请选择操作菜单*********************************
************1.注册 2.登录 3.查询余额 4.存款 5.取款 6.转账 7.取卡************
实现增加的菜单功能。注意:存取要求只能是100的整数倍。
user_list = [{'user':'zhangsan','password':'123456','balance':1000},
{'user':'lisi','password':'111111','balance':2500},
{'user':'wangwu','password':'asd123','balance':100}
]
current_uer = None #用于记录当前登陆用户信息的全局变量
def reg():
print('欢迎使用蜗牛ATM系统')
while True:
un = input('请设置您的用户名:')
for item in user_list:
if un.strip() == item['user']: #item[0]即用户名
print('用户名已存在')
break #break出for循环
else:
pw = input('请设置您的密码:')
if len(pw) < 6:
print('密码长度小于6位')
else:
user_list.append({'user':un, 'password':pw, 'balance':3000})
print('注册成功!')
# print(user_list)
return True #退出整个函数
def login():
while True:
un = input('请输入您的用户名:')
pw = input('请输入您的密码:')
for user in user_list:
if user['user'] == un.strip() and user['password'] == pw.strip():
print('登陆成功!')
global current_uer
current_uer = user
return
else:
print('用户名或密码错误!')
def check_balace():
if current_uer: #None是假,非空则True
print('当前用户的余额为:',current_uer['balance'])
else:
print('请先登陆后,再查询余额!')
def depoisist(): #存款
if current_uer:
money = input('请输入存款金额:')
if money[-2:] == '00' and len(money)>2 and int(money) > 0: #说明输入的是100的整数倍
print('当前用户的余额为:', current_uer['balance'])
current_uer['balance'] += int(money)
print('存款成功,当前余额为:', current_uer['balance'])
else:
print('您的存款金额格式不正确,请检查后再操作!')
else:
print('请先登陆后再操作!')
def withdraw(): #取款
if current_uer:
money = input('请输入取款金额:')
if money[-2:] == '00' and len(money) > 2 and int(money) > 0: # 说明输入的是100的整数倍
print('当前用户的余额为:', current_uer['balance'])
if current_uer['balance'] >= int(money):
current_uer['balance'] -= int(money)
print('取款成功,当前余额为:', current_uer['balance'])
else:
print('您的余额不足!')
else:
print('您的取款金额格式不正确,请检查后再操作!')
else:
print('请先登陆后再操作!')
def transfer(): #转账
if current_uer:
to_user = input('请输入对方账号:')
if current_uer['user'] == to_user:
print('不支持给自己的账户转账!')
else:
for user in user_list:
if user['user'] == to_user:
money = input('请输入转账金额:')
if money[-2:] == '00' and len(money) > 2 and int(money) > 0: # 说明输入的是100的整数倍
print('当前用户的余额为:', current_uer['balance'])
if current_uer['balance'] >= int(money):
current_uer['balance'] -= int(money)
user['balance'] += int(money)
print('转账成功,当前余额为:', current_uer['balance'])
#print('转账成功,对方当前余额为:', user['balance'])
else:
print('您的余额不足!')
else:
print('您的取款金额格式不正确,请检查后再操作!')
break
else:
print('对方账户不存在,请检查后再操作!')
else:
print('请先登陆后再操作!')
def get_menu():
menu = '''
***************************欢迎来到WoniuATM*****************************
****************************请选择操作菜单*******************************
************1.注册 2.登录 3.查询余额 4.存款 5.取款 6.转账 7.取卡************
'''
while True:
print(menu)
option = input('请输入您需要操作的菜单:')
if option.strip() == '1':
reg()
elif option.strip() == '2':
login()
elif option.strip() == '3':
check_balace()
elif option.strip() == '4':
depoisist()
elif option.strip() == '5':
withdraw()
elif option.strip() == '6':
transfer()
elif option.strip() == '7':
print('感谢您的使用,欢迎下次在来!')
break
else:
print('选择菜单项错误,请重新选择!')
get_menu()
更多推荐
所有评论(0)