猜年龄游戏的进一步深入

'''

0. 奖励物品存放在文件price.txt

1. 给定年龄(随机18-60),用户可以猜三次年龄

2. 年龄猜对,让用户选择两次奖励

3. 用户选择两次奖励后可以退出

'''

import random

age = random.randint(18, 60) # 随机一个数字,18-60岁

count = 0 # 计数

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()

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('猜中了,请选择你的奖品')

# 打印商品

for k, v in price_dict.items():

print(f'奖品编号:{k} {v}')

# 获取奖品的两次循环

for i in range(2):

price_choice = input('请输入你需要的奖品编号:')

if not price_choice.isdigit():

print("恭喜你已经获得一次奖品,奖品为空!并且请输入正确的奖品编号!")

continue

price_choice = int(price_choice)

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}')

break

elif age > inp_age:

print('猜小了')

elif age < inp_age:

print('猜大了')

continue

'''

  1. 奖励物品存放在文件price.txt

  2. 给定年龄(随机18-60),用户可以猜三次年龄

  3. 年龄猜对,让用户选择两次奖励

  4. 用户选择两次奖励后可以退出
    '''

import random

age = random.randint(18, 60) # 随机一个数字,18-60岁
count = 0 # 计数

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()

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('猜中了,请选择你的奖品')

    # 打印商品
    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}')
    break

elif age > inp_age:
    print('猜小了')
elif age < inp_age:
    print('猜大了')

continue
上一篇:8.1


下一篇:day03