猜年龄小游戏
要求: 给定年龄,用户可以猜三次年龄年龄猜对,让用户选择两次奖励用户选择两次奖励后可以退出
age = 18
count = 0
price_dict = {0: '布娃娃', 1: '变形金刚', 2: '奥特曼', 3: '<Python从入门到放弃>'}
while count < 3:
inp_age_info = int(input('请输入你猜测的年龄:'))
if inp_age_info == age:
print('猜对了')
print(price_dict)
for i in range(2):
price_info = input('请选择你想要的礼物,不要礼物请按q退出:')
if price_info != 'q':
print(f'恭喜你获得{price_dict[int(price_info)]}')
else:
break
break
elif inp_age_info < age:
print('猜小了')
else:
print('猜大了')
count += 1
if count == 3:
inp_choice = input('请问还要继续游戏吗? 按Y/y继续游戏,按N/n退出游戏:')
if inp_choice == 'Y' or inp_choice == 'y':
count = 0
elif inp_choice == 'N' or inp_choice == 'n':
count += 1
break
else:
print('输入错误')
打印三级菜单
要求: 打印省、市、县三级菜单,可返回上一级,可随时退出程序
menu = {
'北京': {
'海淀': {
'五道口': {
'soho': {},
'网易': {},
'google': {}
},
'中关村': {
'爱奇艺': {},
'汽车之家': {},
'youku': {},
},
'上地': {
'百度': {},
},
},
'昌平': {
'沙河': {
'老男孩': {},
'北航': {},
},
'天通苑': {},
'回龙观': {},
},
'朝阳': {},
'东城': {},
},
'上海': {
'闵行': {
"人民广场": {
'炸鸡店': {}
}
},
'闸北': {
'火车战': {
'携程': {}
}
},
'浦东': {},
},
'山东': {},
}
# 主要用到的方法和思路如下
# a = menu['上海']
# b = menu['上海']['闵行']
# c = menu['上海']['闵行']['人民广场']
# for i in a:
# print(i)
# for i in b:
# print(i)
# for i in c:
# print(i)
tag = True
while tag:
menu1 = menu
#首先打印第一层字典的key
for i in menu1:
print(i)
# 用户输入
inp_choice = input('请输入你要查看的城市名称,按q退出:')
#判断输入信息
if inp_choice in menu1:
for j in menu1[inp_choice]:
print(j)
elif inp_choice == 'b':
break
elif inp_choice == 'q':
tag = False
continue
else:
print('输入错误')
continue
# 开始第二层循环
while tag:
menu2 = menu1[inp_choice] # 获取第一层key值内的字典,如之前输入北京,则menu2 = menu[北京] = 海淀....
inp_mnue2_choice = input('请输入你要查看的城市名称,按b返回上一级,按q退出:')
# 循环出第二层字典的key,并判断
if inp_mnue2_choice in menu2:
for j in menu2[inp_mnue2_choice]:
print(j)
elif inp_mnue2_choice == 'b': # break 会退出本次的while,达到返回上级的效果
break
elif inp_mnue2_choice == 'q': # tag 等于 false,跳出后可以直接结束大循环
tag = False
continue
else:
print('输入错误')
continue
# 代码和上层差不多 就是重复
while tag:
menu3 = menu2[inp_mnue2_choice]
inp_mnue3_choice = input('请输入你要查看的城市名称,按b返回上一级,按q退出:')
if inp_mnue3_choice in menu3:
for j in menu3[inp_mnue3_choice]:
print(j)
elif inp_mnue3_choice == 'b':
break
elif inp_mnue3_choice == 'q':
tag = False
continue
else:
print('输入错误')
continue
# 当打印到最后时候,可以打印最低层提示
while tag:
print('这已经是最小单位')
break
#这个练习因为for循环字典位置放错了, 返回上一级是返回了 但是没有打印字典。