猜年龄游戏升级版,加入登录,注册

猜年龄游戏升级版,加入登录,注册
已有账号 login.txt内容nick:123|sean:456|tank:789
没有账号则注册
参考了https://www.cnblogs.com/caicairui/p/7520037.html

!/bin/bash/env python

-- coding:utf-8 --

def login(username, password):
"""
用于用户名密码的登录
:param username: 用户名
:param password: 密码
:return: True,用户验证成功;False,验证失败
"""
with open('login.txt', 'r', encoding="utf-8") as f:
for user_info in f:
user_info = user_info.strip('\n')
user_info_list = user_info.split('|') # 切分字符串直接就是列表
msg = dict()
for msga in user_info_list:
msga = msga.split(':')
k = msga[0]
v = msga[1]
msg[k] = v
print(msg)
if username in msg.keys() and password == msg[username]:
print('登陆成功')
return True

def register(username, password):
"""
注册用户
:param username: 用户名
:param password: 密码
:return: True,注册成功
"""
with open('login.txt', "a", encoding="utf-8") as f:
temp = "\n" + username + ":" + password
f.write(temp)
return True

def user_exist(username):
"""
检查用户是否已经存在
:param username: 用户名
:return: True,则用户名已经存在;False,用户名不存在
"""
with open('login.txt', "r", encoding="utf-8") as f:
for line in f:
line = line.strip()
line_list = line.split("$")
if username == line_list[0]:
return True
return False

def main():
print("欢迎登陆NICK系统")
inp = input("1: 登陆;2: 注册")

user = input("请输入用户名:")
pwd = input("请输入密码:")

if inp == "1":
    is_login = login(user, pwd)
    if is_login:
        print("登录成功")
    else:
        print("登录失败")
elif inp == "2":
    is_exist = user_exist(user)
    if is_exist:
        print("用户已经存在,无法注册")
    else:
        result = register(user, pwd)
        if result:
            print("注册成功")
        else:
            print("注册失败")

main()

def price_choice1():
f = open('price.txt', 'r', encoding='utf8') # price.txt右下角为什么编码,则encoding为什么编码
price_dict = f.read()
price_dict = eval(price_dict) # type:dict # 获取奖品字典 #eval函数实现list,tuple,dict与字符串之间的互相转化
f.close()
price_self = dict()
for k, v in price_dict.items():
print(f'奖品编号:{k} {v}')
# 获取奖品的两次循环
for i in range(2):
price_y = input(f'请按"Y or y"转动转盘{chr(9803)}:').lower()
if price_y != 'y':
print("恭喜你已经获得一次奖品,奖品为空!并且请输入'Y or y'!")
continue

    # 控制获奖奖品的频率
    price_choice = random.randint(0, 10000)

    if price_choice > 0 and price_choice < 9900:
        price_choice = 6
        print('恭喜你, 下次一定有好东西!!', end=' ')
    else:
        price_choice = price_choice % 7

    if price_choice not in price_dict:
        print('你想多了吧!')
    else:
        price_get = price_dict[price_choice]
        print(f'恭喜中奖:{price_get}')

        if price_self.get(price_get):
            price_self[price_get] += 1
        else:
            price_self[price_get] = 1
        print(f'恭喜你获得以下奖品:{price_self}')

import random
age = random.randint(18, 60) # 随机一个数字,18-60岁
count = 0 # 计数
while count < 3:
count += 1
inp_age = input('请输入你想要猜的年龄:')
# 判断是否为纯数字
if not inp_age.isdigit():
print('搞事就骂你傻逼')
continue
inp_age = int(inp_age)
# 筛选年龄范围
if inp_age > 60 or inp_age < 18:
print('好好题目,18-60岁,非诚勿扰')
continue
# 核心逻辑
if age == inp_age:
print('猜中了,请选择你的奖品')
price1a = price_choice1() # 转到奖品函数
print(price1a)
break
elif age > inp_age:
print('猜小了')
elif age < inp_age:
print('猜大了')
continue

猜你喜欢

转载自www.cnblogs.com/abdm-989/p/11323519.html
今日推荐