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执行外部程序的常用方法小结
Mar 21 Python
HTML中使用python屏蔽一些基本功能的方法
Jul 07 Python
virtualenv实现多个版本Python共存
Aug 21 Python
Python+matplotlib实现填充螺旋实例
Jan 15 Python
使用python实现BLAST
Feb 12 Python
python读取文本中的坐标方法
Oct 14 Python
python生成九宫格图片
Nov 19 Python
Django如何自定义model创建数据库索引的顺序
Jun 20 Python
python实时检测键盘输入函数的示例
Jul 17 Python
Python编写打字训练小程序
Sep 26 Python
Matplotlib 折线图plot()所有用法详解
Jul 28 Python
Python还能这么玩之只用30行代码从excel提取个人值班表
Jun 05 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去除数组中重复的元素并按键名排序函数
2008/08/18 PHP
模板引擎smarty工作原理以及使用示例
2014/05/25 PHP
Linux下创建nginx脚本-start、stop、reload…
2014/08/03 PHP
给WordPress中的留言加上楼层号的PHP代码实例
2015/12/14 PHP
PHP+Ajax实现的博客文章添加类别功能示例
2018/03/29 PHP
多个iframe自动调整大小的问题
2006/09/18 Javascript
Jquery + Ajax调用webService实例代码(asp.net)
2010/08/27 Javascript
jQuery+slidereveal实现的面板滑动侧边展出效果
2015/03/14 Javascript
jQuery实现给页面换肤的方法
2015/05/30 Javascript
详解javascript中的事件处理
2015/11/06 Javascript
基于jQuery.validate及Bootstrap的tooltip开发气泡样式的表单校验组件思路详解
2016/07/18 Javascript
利用JS实现数字增长
2016/07/28 Javascript
微信小程序 解决swiper不显示图片的方法
2017/01/04 Javascript
MvcPager分页控件 适用于Bootstrap
2017/06/03 Javascript
javascriptvoid(0)含义以及与&quot;#&quot;的区别讲解
2019/01/19 Javascript
JS异步错误捕获的一些事小结
2019/04/26 Javascript
基于vue-cli3和element实现登陆页面
2019/11/13 Javascript
基于JQuery和DWR实现异步数据传递
2020/10/16 jQuery
python用ConfigObj读写配置文件的实现代码
2013/03/04 Python
python获取指定目录下所有文件名列表的方法
2015/05/20 Python
python的keyword模块用法实例分析
2015/06/30 Python
python实现画一颗树和一片森林
2018/06/25 Python
python生成以及打开json、csv和txt文件的实例
2018/11/16 Python
Python openpyxl 遍历所有sheet 查找特定字符串的方法
2018/12/10 Python
python的debug实用工具 pdb详解
2019/07/12 Python
tensorflow实现残差网络方式(mnist数据集)
2020/05/26 Python
Python Selenium自动化获取页面信息的方法
2020/08/31 Python
python3.7.3版本和django2.2.3版本是否可以兼容
2020/09/01 Python
HTML5新特性 多线程(Worker SharedWorker)
2017/04/24 HTML / CSS
Clarks鞋法国官方网站:英国其乐鞋品牌
2018/02/11 全球购物
美国家居装饰店:Pier 1
2019/09/04 全球购物
教师业务学习制度
2014/01/25 职场文书
大学拉赞助协议书范文
2014/09/26 职场文书
共青团员自我评价
2015/03/10 职场文书
企业承诺书格式范文
2015/04/28 职场文书
2015年初一班主任工作总结
2015/05/13 职场文书