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计算N天之后日期的方法
Mar 31 Python
用Python编写一个简单的FUSE文件系统的教程
Apr 02 Python
python中input()与raw_input()的区别分析
Feb 27 Python
python实现简单聊天应用 python群聊和点对点均实现
Sep 14 Python
Java与Python两大幸存者谁更胜一筹呢
Apr 12 Python
基于pandas数据样本行列选取的方法
Apr 20 Python
Python利用Django如何写restful api接口详解
Jun 08 Python
利用Django-environ如何区分不同环境
Aug 26 Python
Python字符串和正则表达式中的反斜杠('\')问题详解
Sep 03 Python
python手机号前7位归属地爬虫代码实例
Mar 31 Python
Python代码中如何读取键盘录入的值
May 27 Python
使用python-cv2实现视频的分解与合成的示例代码
Oct 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
雄兵连:第三季确定会出,不过时间未定,鹤熙是第三季的主角!
2020/03/13 国漫
function.inc.php超越php
2006/12/09 PHP
php在服务器执行exec命令失败的解决方法
2012/03/03 PHP
win7计划任务定时执行PHP脚本设置图解
2014/05/09 PHP
避免Smarty与CSS语法冲突的方法
2015/03/02 PHP
PHP程序员的技术成长规划
2016/03/25 PHP
Yii框架上传图片用法总结
2016/03/28 PHP
WordPress中的shortcode短代码功能使用详解
2016/05/17 PHP
ThinkPHP5.1+Ajax实现的无刷新分页功能示例
2020/02/10 PHP
javascript算法题:求任意一个1-9位不重复的N位数在该组合中的大小排列序号
2015/04/01 Javascript
JavaScript操作HTML元素和样式的方法详解
2015/10/21 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
2016/05/10 Javascript
深入理解JS函数的参数(arguments)的使用
2016/05/28 Javascript
ajax接收后台数据在html页面显示
2017/02/19 Javascript
angular2+nodejs实现图片上传功能
2017/03/27 NodeJs
jQuery实现按比例缩放图片的方法
2017/04/29 jQuery
Angularjs实现控制器之间通信方式实例总结
2018/03/27 Javascript
vue 监听 Treeselect 选择项的改变操作
2020/08/31 Javascript
js实现头像上传并且可预览提交
2020/12/25 Javascript
Pycharm学习教程(7)虚拟机VM的配置教程
2017/05/04 Python
Python获取指定文件夹下的文件名的方法
2018/02/06 Python
django 通过ajax完成邮箱用户注册、激活账号的方法
2018/04/17 Python
详解Ubuntu16.04安装Python3.7及其pip3并切换为默认版本
2019/02/25 Python
Python单元和文档测试实例详解
2019/04/11 Python
用python3 返回鼠标位置的实现方法(带界面)
2019/07/05 Python
python脚本实现mp4中的音频提取并保存在原目录
2020/02/27 Python
pycharm sciview的图片另存为操作
2020/06/01 Python
新手学python应该下哪个版本
2020/06/11 Python
python里反向传播算法详解
2020/11/22 Python
机电一体化求职信
2014/03/10 职场文书
幼儿园六一儿童节文艺汇演主持词
2014/03/21 职场文书
《夹竹桃》教学反思
2014/04/20 职场文书
建筑工地门卫岗位职责
2014/04/30 职场文书
2015年小班保育员工作总结
2015/05/27 职场文书
2016年全国助残日活动总结
2016/04/01 职场文书
PostgreSQL自动更新时间戳实例代码
2021/11/27 PostgreSQL