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
使用python实现省市三级菜单效果
Jan 20 Python
python使用PyCharm进行远程开发和调试
Nov 02 Python
Python标准库笔记struct模块的使用
Feb 22 Python
pandas数值计算与排序方法
Apr 12 Python
使用Python和xlwt向Excel文件中写入中文的实例
Apr 21 Python
Python 实现异步调用函数的示例讲解
Oct 14 Python
利用Python将数值型特征进行离散化操作的方法
Nov 06 Python
python操作kafka实践的示例代码
Jun 19 Python
Python使用matplotlib 模块scatter方法画散点图示例
Sep 27 Python
利用matplotlib实现根据实时数据动态更新图形
Dec 13 Python
浅析Python模块之间的相互引用问题
Feb 26 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
一个PHP的String类代码
2010/04/20 PHP
PHP 中文处理技巧
2010/04/25 PHP
浅析php中如何在有限的内存中读取大文件
2013/07/02 PHP
PHP session 会话处理函数
2016/06/06 PHP
Javascript日期对象的dateAdd与dateDiff方法
2008/11/18 Javascript
Jquery:ajax实现翻页无刷新功能代码
2013/08/05 Javascript
js获取当前月的第一天和最后一天的小例子
2013/11/18 Javascript
JavaScript基于setTimeout实现计数的方法
2015/05/08 Javascript
javascript封装 Cookie 应用接口
2015/08/07 Javascript
AngularJS中监视Scope变量以及外部调用Scope方法
2016/01/23 Javascript
JavaScript数据结构与算法之栈与队列
2016/01/29 Javascript
JavaScript获取对象在页面中位置坐标的方法
2016/02/03 Javascript
Bootstrap~多级导航(级联导航)的实现效果【附代码】
2016/03/08 Javascript
AngularJS中$apply方法和$watch方法用法总结
2016/12/13 Javascript
原生JS实现在线问卷调查投票特效
2017/01/03 Javascript
jQuery EasyUI 组件加上“清除”功能实例详解
2017/04/11 jQuery
Map.vue基于百度地图组件重构笔记分享
2017/04/17 Javascript
bootstrap的工具提示实例代码
2017/05/17 Javascript
浅谈Vuejs Prop基本用法
2017/08/17 Javascript
Vue实现Header渐隐渐现效果的实例代码
2020/11/05 Javascript
vue集成一个支持图片缩放拖拽的富文本编辑器
2021/01/29 Vue.js
浅谈numpy数组的几种排序方式
2017/12/15 Python
在python中利用KNN实现对iris进行分类的方法
2018/12/11 Python
python flask框架实现传数据到js的方法分析
2019/06/11 Python
Python列表删除元素del、pop()和remove()的区别小结
2019/09/11 Python
pytorch 实现tensor与numpy数组转换
2019/12/27 Python
Python计算信息熵实例
2020/06/18 Python
基于CSS3实现图片模糊过滤效果
2015/11/19 HTML / CSS
css3编写浏览器背景渐变背景色的方法
2018/03/05 HTML / CSS
HTML5 3D旋转相册的实现示例
2019/12/03 HTML / CSS
函授大学生自我鉴定
2014/02/05 职场文书
财务人员担保书
2014/05/13 职场文书
飞机制造技术专业求职信
2014/07/27 职场文书
北京故宫的导游词
2015/01/31 职场文书
Python 使用dict实现switch的操作
2021/04/07 Python
解析探秘fescar分布式事务实现原理
2022/02/28 Java/Android