import re, time
def users_login(x, y, z):
account = input('请您输入账号:')
password = input('请您输入密码:')
if account in x:
if x[account][0] == password:
time.sleep(0.5)
print('密码正确,登录成功!')
while True:
operation = input('请您选择操作(1.会员信息 2.购买影票 3.购票信息 4.影票退订 5.修改信息 6.退出系统):')
if operation == '1':
time.sleep(0.5)
print('*' * 7 + '会员信息' + '*' * 7)
print('会员卡号:{}'.format(account))
print('会员昵称:{}'.format(x[account][1]))
print('会员性别:{}'.format(x[account][2]))
print('手机号码:{}'.format(x[account][3]))
print('*' * 21)
elif operation == '2':
time.sleep(0.5)
print('*' * 3 + '电影放映表' + '*' * 3)
for a, b in list(enumerate(y, 1)):
print(a, b['name'])
print('*' * 13)
buy = int(input('请您选择电影场次:'))
time.sleep(0.5)
print('*' * 8 + '电影信息' + '*' * 8)
print('影名:{}'.format(y[buy - 1]['name']))
print('类别:{}'.format(y[buy - 1]['category']))
print('导演:{}'.format(y[buy - 1]['director']))
print('演员:{}'.format(y[buy - 1]['actor']))
print('*' * 23)
while True:
time.sleep(0.5)
print('*' * 13 + '影厅座位' + '*' * 13)
for i in y[buy - 1]['seat']:
print(' '.join(i))
print('*' * 32)
choose = input('是否继续购票(1.继续 2.退出):')
if choose == '2':
break
line_numbers = int(input('请您选择影厅行号:'))
seat_numbers = int(input('请您选择影厅座号:'))
if y[buy - 1]['seat'][line_numbers][seat_numbers] == '■':
print('不好意思,座位已选!')
else:
y[buy - 1]['seat'][line_numbers][seat_numbers] = '■'
time.sleep(0.5)
print('购票成功,电影名:{} 座位号:{}排{}号'.format(y[buy - 1]['name'], line_numbers, seat_numbers))
if account in z and y[buy - 1]['name'] in z[account]:
z[account][y[buy - 1]['name']].append(
'{}排{}号'.format(line_numbers, seat_numbers))
elif account in z and y[buy - 1]['name'] not in z[account]:
z[account][y[buy - 1]['name']] = [
'{}排{}号'.format(line_numbers, seat_numbers)]
else:
z[account] = {
y[buy - 1]['name']: ['{}排{}号'.format(line_numbers, seat_numbers)]}
elif operation == '3':
if account in z:
for i in z[account]:
time.sleep(0.5)
print('卡号:{} 昵称:{} 影名:{} 座位:{}'.format
(account, x[account][1], i,' '.join(z[account][i])))
else:
print('未查询到购票信息')
elif operation == '4':
if account in z:
for i in z[account]:
time.sleep(0.5)
print('卡号:{} 昵称:{} 影名:{} 座位:{}'.format(account, x[account][1], i,
'.join(zaccount)))
print('[金属期货](https://www.gendan5.com/cf/mf.html)未查询到订票信息')
while True:
unsubscribe = input('是否需要退订影票(1.需要 2.退出):')
if unsubscribe == '2':
break
else:
name = dict(enumerate(z[account], 1))
for i in name:
print(i, name[i])
movie_number = int(input('请您选择需要退票电影序号:'))
number = dict(enumerate(z[account][name[movie_number]], 1))
for i in number:
print(i, number[i])
seat_number = int(input('请您选择需要退票电影座位:'))
message = re.findall(r'\d+', number[seat_number])
for i in y:
if name[movie_number] == i['name']:
i['seat'][int(message[0])][int(message[1])] = '□'
zaccount].remove(number[seat_number])
time.sleep(0.5)
print('退票成功!')
if not z[account][name[movie_number]]:
del z[account][name[movie_number]]
elif operation == '5':
time.sleep(0.5)
print('*' * 7 + '会员信息' + '*' * 7)
print('会员卡号:{}'.format(account))
print('会员昵称:{}'.format(x[account][1]))
print('会员性别:{}'.format(x[account][2]))
print('手机号码:{}'.format(x[account][3]))
print('*' * 21)
while True:
modify = input('是否继续修改(1.继续 2.退出):')
if modify == '2':
break
choose = input('请您选择修改内容(1.会员昵称 2.会员性别 3.手机号码):')
if choose == '1':
x[account][1] = input('请输入会员昵称:')
elif choose == '2':
x[account][2] = input('请输入会员性别:')
elif choose == '3':
x[account][3] = input('请输入手机号码:')
elif operation == '6':
print('系统退出成功,欢迎下次使用!')
break
else:
print('密码错误,登录失败!')
else:
print('账号错误,请您核对!')