# 通过 Python 编程完成一个银行 ATM 机模拟系统,具备如下功能:
#
# (1)登陆验证:用户输入用户名密码登陆,检测用户名是否存在以及用户名密码是否匹配;用户名密码共有三次输入机会,超过三次系统退出。
#
# (2)菜单界面:登陆成功后显示功能操作界面,输入序号选择对应功能。
#
# (3)用户注册:用户可以输入用户名和密码创建自己的账号,并输入电话号码等信息,如果用户名存在则让用户重新输入用户名。注册后免费赠送 5000 元余额。
#
# (4)账户管理:用户可以随时查看自己的账户余额。用户可以输入其他账户用户名,实现转账功能;转账时用户名必须存在,否则提示异常。用户也可以模拟实现存取款功能。
#
# (5)用户名和密码以及账户信息等必须永久保存。且基于命令行完成,不需要开发 GUI 界面。
import pymysql
conn = pymysql.connect(host='172.31.7.101',port=3306,user='zhgedu',passwd='zhgedu',db='test',charset="utf8") #连接mysql数据库
cursor = conn.cursor() #获取游标来进行查询
##########创建数据表用来存放用户信息###########
sql = '''CREATE TABLE IF NOT EXISTS userinfoes (
user VARCHAR(20),
password VARCHAR(6),
age VARCHAR(3),
sex VARCHAR(5),
mobile VARCHAR(11),
balance FLOAT(12,2))'''
cursor.execute(sql)
sql2 = '''INSERT INTO userinfoes(user,
password,age,sex,mobile,balance)
VALUES ('luu','123456','19','woman','12345678900',10000)'''
cursor.execute(sql2)
while True:
print("##########判断用户名########## ")
username2 = input("请按回车,在输入用户:")
k=3
while k:
global username
username = input()
userinfoes = "SELECT * FROM userinfoes WHERE user='%s'"%username #查询该用户是否存在
j = cursor.execute(userinfoes) #满足该条件的数据条数
if username == '':
print("用户名不能为空" )
elif j == 2:
print("##########判断密码##########")
while True:
password3 = input("请按回车,在输入密码:")
k = 3
while k:
password = input()
userinfoes = "SELECT * FROM userinfoes WHERE password='%s'" % password # 查询输入的密码是否与用户匹配
j = cursor.execute(userinfoes)
if password == '':
print("密码不能为空")
elif j == 2:
conn.close()
cursor.close()
exit()
elif j == 0:
k -= 1
if k != 0:
print("密码错误,请重新输入:")
else:
print("你已输错三次!")
conn.close()
cursor.close()
exit()
else:
print("恭喜你,登录成功!!")
break
elif j == 0: #elif实现多分枝,假设juu为0
k-=1 #依次递减
if k!=0: #k不等于0,则报错
print("用户名错误,请重新输入:")
else:
print("你已输错三次!")
conn.close()
cursor.close()
exit()
else:
break
标签:用户名,ATM,银行,userinfoes,cursor,密码,模拟系统,print,输入
From: https://www.cnblogs.com/zikang/p/17103926.html