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模块restful使用方法实例
Dec 10 Python
Python中replace方法实例分析
Aug 20 Python
利用python发送和接收邮件
Sep 27 Python
Python实现字符串格式化输出的方法详解
Sep 20 Python
实用自动化运维Python脚本分享
Jun 04 Python
Flask框架URL管理操作示例【基于@app.route】
Jul 23 Python
python使用PIL模块获取图片像素点的方法
Jan 08 Python
python3 pillow模块实现简单验证码
Oct 31 Python
python实现程序重启和系统重启方式
Apr 16 Python
Python面向对象多态实现原理及代码实例
Sep 16 Python
pandas 实现将NaN转换为None
May 14 Python
用Python爬取英雄联盟的皮肤详细示例
Dec 06 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
5种PHP创建数组的实例代码分享
2014/01/17 PHP
一个不易被发现的PHP后门代码解析
2014/07/05 PHP
php字符串操作常见问题小结
2016/10/11 PHP
使用PHP+MySql实现微信投票功能实例代码
2017/09/29 PHP
3分钟写出来的Jquery版checkbox全选反选功能
2013/10/23 Javascript
jquery批量设置属性readonly和disabled的方法
2014/01/24 Javascript
jQuery实现表格颜色交替显示的方法
2015/03/09 Javascript
基于Javascript实现弹出页面效果
2016/01/01 Javascript
Web性能优化系列 10个提升JavaScript性能的技巧
2016/09/27 Javascript
Javascript实现图片懒加载插件的方法
2016/10/20 Javascript
巧用Vue.js+Vuex制作专门收藏微信公众号的app
2016/11/03 Javascript
Bootstrap学习笔记之进度条、媒体对象实例详解
2017/03/09 Javascript
bootstrap paginator分页前后台用法示例
2017/06/17 Javascript
基于jquery的on和click的区别详解
2018/01/15 jQuery
vue中使用input[type=&quot;file&quot;]实现文件上传功能
2018/09/10 Javascript
vue-cli3.0+element-ui上传组件el-upload的使用
2018/12/03 Javascript
在Web关闭页面时发送Ajax请求的实现方法
2019/03/07 Javascript
微信小程序用户授权,以及判断登录是否过期的方法
2019/05/10 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
[46:37]LGD vs TNC 2019国际邀请赛小组赛 BO2 第二场 8.15
2019/08/16 DOTA
python制作企业邮箱的爆破脚本
2016/10/05 Python
Python 实现简单的shell sed替换功能(实例讲解)
2017/09/29 Python
python简单图片操作:打开\显示\保存图像方法介绍
2017/11/23 Python
python最长回文串算法
2018/06/04 Python
python将txt等文件中的数据读为numpy数组的方法
2018/12/22 Python
判断python对象是否可调用的三种方式及其区别详解
2019/01/31 Python
python 绘制国旗的示例
2020/09/27 Python
CSS3打造磨砂玻璃背景效果
2016/09/28 HTML / CSS
div或img图片高度随宽度自适应的方法
2020/02/06 HTML / CSS
自我鉴定怎么写
2014/01/12 职场文书
物理专业本科生自荐信
2014/01/30 职场文书
会计员岗位职责
2014/03/15 职场文书
2016入党积极分子心得体会
2016/01/06 职场文书
小学教师师德培训心得体会
2016/01/09 职场文书
党风廉洁教育心得体会
2016/01/20 职场文书
MySQL 服务和数据库管理
2021/11/11 MySQL