Python实现猜年龄游戏代码实例


Posted in Python onMarch 25, 2020

1. 在猜年龄的基础上编写登录、注册方法,并且把猜年龄游戏分函数处理,如

2. 登录函数

3. 注册函数

4. 猜年龄函数

5. 选择奖品函数

代码如下

import json
real_age = 18
prize_list = ['好迪洗发水', '绿箭侠', '小猪佩奇', '布娃娃', '再来一次!']
import random
user_prize_dict = {}
import os

def register():
  while True:
    username = input('输入用户名>>>(q退出):').strip().lower()
    if username=='q':break
    password = input('请输入密码>>>:').strip()
    re_password = input('请再次确认密码>>>:').strip()
    if not password == re_password:
      print('密码不一致,请重输!')
      continue
    user_dic = {'name': username, 'password': password}
    json_user_dic = json.dumps(user_dic)
    with open(f"{username}.txt", 'w', encoding='utf-8')as f:
      f.write(json_user_dic)
      f.flush()
      print('注册成功!')
      break

def login():
  count = 0
  while True:
    if count == 3:
      print('错误输入次数过多!')
      break
    username = input('请输入用户名>>>:').strip()
    if not os.path.exists(username + '.txt'):
      print('该用户不存在!')
      continue
    password = input('请输入密码>>>:').strip()
    with open(f"{username}.txt", 'r', encoding='utf-8') as f:
      user_json_dic = f.read()
      user_dic = json.loads(user_json_dic)
      if username == user_dic['name'] and password == user_dic['password']:
        print('登录成功!')
        guess_age()
        break
      else:
        print('用户名或密码错误!')
    count += 1

def guess_age():
  count = 0
  print('现在进入猜年龄游戏环节.......\n')
  while True:
    count += 1
    if count == 4:
      print('抱歉!你三次都猜错了!')
      again_guess_age = input('请问是否要继续猜3次(y继续,n退出)>>>:').strip().lower()
      if again_guess_age == 'y':
        count = 0
        continue
      break
    age = input('请输入你的年龄>>>:').strip()
    if not age.isdigit():
      print('请输入纯数字!')
      continue

    age = int(age)
    if age > real_age:
      print('猜大了!')
    elif age < real_age:
      print('猜小了!')
    else:
      print('恭喜你!猜对了!\n')
      choice_prize()
      break

def choice_prize():
  count = 1
  print('进入抽奖环节.....,您共有两次机会!\n 奖品如下:')
  while True:
    for index, prize in enumerate(prize_list, 1):
      print(index, prize)
    choice = input('请按下按钮y随机选择奖品>>>:').strip().lower()
    if not choice == 'y':
      print('非法输入!')
      continue
    prize_choice = random.randint(1, 15)
    if prize_choice in [6, 7, 8]:
      prize_choice = 4
    elif prize_choice in [9, 10, 11, 12, 13, 14, 15]:
      prize_choice = 5
    prize = prize_list[prize_choice - 1]
    if prize in user_prize_dict:
      user_prize_dict[prize] += 1
    else:
      user_prize_dict[prize] = 1
    print(f'本次获得奖品为:{prize},您还有{2-count}次机会!\n')
    if count == 2:
      if user_prize_dict.get('再来一次!'):
        user_prize_dict.pop('再来一次!')
      print(f'总共获得的奖品为:{user_prize_dict}')
      break
    count += 1


user_func_dic = {
  '1': register,
  '2': login,
}
while True:
  print('''
    先注册,登陆后才能玩猜年龄游戏哦!
    1. 注册
    2. 登录
  '''
     )
  choice = input('请选择功能编号(q退出)>>>:').strip().lower()
  if choice == 'q' : break
  if not choice in user_func_dic:
    print('错误输入')
    continue
  user_func_dic.get(choice)()

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python编码最佳实践之总结
Feb 14 Python
Django Highcharts制作图表
Aug 27 Python
Python编程实现生成特定范围内不重复多个随机数的2种方法
Apr 14 Python
解决python3读取Python2存储的pickle文件问题
Oct 25 Python
Python 实现文件打包、上传与校验的方法
Feb 13 Python
Python递归函数实例讲解
Feb 27 Python
Windows系统Python直接调用C++ DLL的方法
Aug 01 Python
keras模型可视化,层可视化及kernel可视化实例
Jan 24 Python
浅析python 通⽤爬⾍和聚焦爬⾍
Sep 28 Python
python按照list中字典的某key去重的示例代码
Oct 13 Python
Python绘制散乱的点构成的图的方法
Apr 21 Python
Python实现简单得递归下降Parser
May 02 Python
python读取mysql数据绘制条形图
Mar 25 #Python
Python环境下安装PyGame和PyOpenGL的方法
Mar 25 #Python
python画环形图的方法
Mar 25 #Python
Python面向对象魔法方法和单例模块代码实例
Mar 25 #Python
Python语法垃圾回收机制原理解析
Mar 25 #Python
python实现Pyecharts实现动态地图(Map、Geo)
Mar 25 #Python
Pyecharts 动态地图 geo()和map()的安装与用法详解
Mar 25 #Python
You might like
删除无限分类并同时删除它下面的所有子分类的方法
2010/08/08 PHP
PHP直接修改表内容DataGrid功能实现代码
2015/09/24 PHP
JavaScript为对象原型prototype添加属性的两种方式
2010/08/01 Javascript
URL地址中的#符号使用说明
2011/02/12 Javascript
uploadify 3.0 详细使用说明
2012/06/18 Javascript
解析Jquery中如何把一段html代码动态写入到DIV中(实例说明)
2013/07/09 Javascript
往光标所在位置插入值的js代码
2013/09/22 Javascript
封装的jquery翻页滚动(示例代码)
2013/11/18 Javascript
判断文件是否正在被使用的JS代码
2013/12/21 Javascript
js实现简单锁屏功能实例
2015/05/27 Javascript
Vuejs仿网易云音乐实现听歌及搜索功能
2017/03/30 Javascript
JavaScript实现的鼠标跟随特效示例【2则实例】
2018/12/22 Javascript
微信小程序视图控件与bindtap之间的问题的解决
2019/04/08 Javascript
vue 进阶之实现父子组件间的传值
2019/04/26 Javascript
基于Vue3.0开发轻量级手机端弹框组件V3Popup的场景分析
2020/12/30 Vue.js
解析Python中的生成器及其与迭代器的差异
2016/06/20 Python
django2 快速安装指南分享
2018/01/05 Python
Python3.6安装及引入Requests库的实现方法
2018/01/24 Python
python2.7实现FTP文件下载功能
2018/04/15 Python
python实现输出一个序列的所有子序列示例
2019/11/18 Python
python3.8下载及安装步骤详解
2020/01/15 Python
python GUI库图形界面开发之PyQt5开发环境配置与基础使用
2020/02/25 Python
如何使用PyCharm引入需要使用的包的方法
2020/09/22 Python
Python爬虫教程之利用正则表达式匹配网页内容
2020/12/08 Python
详解HTML5中download属性的应用
2015/08/06 HTML / CSS
HTML5 canvas基本绘图之图形变换
2016/06/27 HTML / CSS
美国知名保健品网站:LuckyVitamin(支持中文)
2017/08/09 全球购物
一岗双责责任书
2014/04/15 职场文书
三万活动总结
2014/04/28 职场文书
城市创卫标语
2014/06/17 职场文书
法定代表人资格证明书
2014/09/11 职场文书
四风自我剖析材料
2014/09/30 职场文书
幼儿园教师节感谢信
2015/01/23 职场文书
家长对孩子的寄语
2015/02/26 职场文书
JS ES6异步解决方案
2021/04/29 Javascript
vue使用echarts实现折线图
2022/03/21 Vue.js