python文字游戲源代碼求年紀_Python實現猜年齡游戲代碼實例

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實現猜年齡游戲代碼實例

本文地址: http://www.cppcns.com/jiaoben/python/303789.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/374446.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/374446.shtml
英文地址,請注明出處:http://en.pswp.cn/news/374446.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

KVC 與 KVO

一、Key-Value Coding (KVC)鍵值編碼 KVC&#xff0c;即是指 NSKeyValueCoding&#xff0c;一個非正式的 Protocol&#xff0c;提供一種機制來間接訪問對象的屬性。KVO 就是基于 KVC 實現的關鍵技術之一。 一個對象擁有某些屬性。比如說&#xff0c;一個 Person 對象有一個 nam…

使用模擬的單元測試–測試技術5

我的最后一個博客是有關測試代碼方法的一系列博客中的第四篇&#xff0c;演示了如何創建使用存根對象隔離測試對象的單元測試。 今天的博客探討了有時被視為對立的技術&#xff1a;使用模擬對象進行單元測試。 同樣&#xff0c;我使用了從數據庫檢索地址的簡單方案&#xff1a;…

多線程中的volatile和偽共享

偽共享 false sharing&#xff0c;顧名思義&#xff0c;“偽共享”就是“其實不是共享”。那什么是“共享”&#xff1f;多CPU同時訪問同一塊內存區域就是“共享”&#xff0c;就會產生沖突&#xff0c;需要控制協議來協調訪問。會引起“共享”的最小內存區域大小就是一個cache…

C語言代碼規范(一)縮進與換行

一、縮進的空格數為4個。最好配置代碼編輯器將TAB鍵設置為空格替換&#xff0c;避免出現另一個編輯器打開時格式變亂的情況。 例如Notepad設置 KEIL設置 二、“{” 和 “}”各自獨占一行。 不規范例子&#xff1a; for(i 0; i < student_num; i) { if((score[i] > 0…

armv7 cortex a系列編程手冊_AWTK能為現代GUI編程帶來何種改變?

AWTK是一個伸縮性極強的嵌入式圖形框架&#xff0c;它的誕生會給GUI編程研發工程師帶來哪些改變&#xff1f;AWTK是一個伸縮性極強的嵌入式圖形框架&#xff0c;可在Cortex-M3這樣低端的單片機上運行&#xff0c;也可以在Cortex-A7/A8/A9等處理器&#xff0c;甚至DSP以及X86處理…

【轉】各種概念POJO、JAVABEAN、DAO、DTO、PO、VO、BO、SSH、EJB

POJO&#xff08;pure old java object&#xff09; 是普通java類&#xff0c;有一些private的參數作為對象的屬性&#xff0c;然后針對每一個參數定義get和set方法訪問的接口。我看到這個定義&#xff0c;心里就有個疑問了&#xff0c;這個POJO跟JavaBean的定義怎么就這么像&a…

為什么要編寫單元測試–測試技巧8

我對最近在“您應該測試什么”上的博客有很多反應&#xff0c;有些人出于各種原因同意我的想法&#xff0c;另一些人則認為建議某些類可能不需要單元測試是非常危險的。 已經處理了什么測試&#xff0c;今天的博客涉及為什么要編寫單元測試&#xff0c;而今天的示例代碼是基于一…

Git遷移 從SVN到Git

Migrating from SVN to Git 首先我們需要在Stach或者GitHub上新建一個Repository, 拿到它的URL。 接下來參照如下步驟 : At first we should create a new git repository at Stash and get the repository URL, and then follow below steps: 1. 切換到本地git工作目錄 chang…

C語言代碼規范(二)空格

一、逗號, 之后加空格 printf("error! score[%d] %d\n", i, score[i]); 二、分號; 之后加空格 for(i 0; i < student_num; i) 三、關系運算符<、<、>、>、、! 前后加空格 if( (score[i] > 0) && (score[i] < 100) ) 四、賦值運算符…

c++ 多重背包狀態轉移方程_動態規劃入門——詳解經典問題零一背包

本文始發于個人公眾號&#xff1a;TechFlow&#xff0c;原創不易&#xff0c;求個關注今天是周三算法與數據結構專題的第12篇文章&#xff0c;動態規劃之零一背包問題。在之前的文章當中&#xff0c;我們一起探討了二分、貪心、排序和搜索算法&#xff0c;今天我們來看另一個非…

Discuz! 的編碼規范

前言 本規范由編程原則組成&#xff0c;融合并提煉了開發人員長時間積累下來的成熟經驗&#xff0c;意在幫助形成良好一致的編程風格。適用范圍 如無特殊說明&#xff0c;以下規則要求完全適用于Discuz!項目&#xff0c;同時也可大部分適用于COMSENZ旗下其他PHP項目。標準化的重…

C語言代碼規范(三)if語句

一、整型變量與0比較 許多人為了一時之便&#xff0c;模仿布爾變量風格寫為如下代碼 if(value) {... }if(!value) {... } 應當用 或 ! 來與0比較 if(0 value) {... }if(0 ! value) {... } 二、當if內的語句是與常量進行比較時&#xff0c;常量為左值&#xff0c;變量為右…

6月24 面向對象的設計原則-----工廠模式和單列模式

工廠模式&#xff1a; 工廠模式就是專門負責將大量有共同接口的類實例化&#xff0c;而且不必事先知道每次是要實例化哪一個類的模式。它定義一個用于創建對象的接口&#xff0c;由子類決定實例化哪一個類。 工廠模式相當于創建實例對象的new&#xff0c;經常要根據類Class生成…

LeetCode Subsets

原題鏈接在這里&#xff1a;https://leetcode.com/problems/subsets/ 題目&#xff1a; Given a set of distinct integers, nums, return all possible subsets. Note: Elements in a subset must be in non-descending order.The solution set must not contain duplicate su…

使用ThreadPoolExecutor并行化獨立的單線程任務

Java SE 5.0中引入的任務執行框架是簡化多線程應用程序的設計和開發的巨大飛躍。 該框架提供了用于管理任務概念&#xff0c;管理線程生命周期及其執行策略的工具。 在此博客文章中&#xff0c;我們將描述該框架的功能&#xff0c;靈活性和簡單性&#xff0c;以展示一個簡單的用…

python定義一個圓_Python-矩形和圓形

原博文 2019-11-11 12:34 ? Exercise 15.1. 定義一個叫做Circle 類&#xff0c;類的屬性是圓心 (center) 和半徑 (radius) , 其中&#xff0c;圓心 (center) 是一個 Point 類&#xff0c;而半徑 (radius) 是一個數字。 實例化一個圓心 (center) 為 (150, 100) &#xff0c;半…

C語言代碼規范(四)命名規則

一、宏定義全部字母大寫&#xff0c;單詞間下劃線間隔 #define FLASH_PAGE_SIZE 256 #define FLASH_SECTOR_SIZE (4 * 1024) #define FLASH_BLOCK_SIZE (64 * 1024) #define FLASH_SIZE (16 * 1024 * 1024) 二、const修飾的常量全部字母大寫&#xff0c;單詞間…

Forbidden You don't have permission to access / on this server PHP

Forbidden You dont have permission to access / on this server PHP 在新安裝的谷歌游覽器里&#xff0c;打不了PHP網站了&#xff0c;錯誤顯示&#xff1a; Forbidden You dont have permission to access / on this server. 原因還是配置權限問題 解決辦法&#xff1a; wa…

Spring 3.1和JPA的持久層

1.概述 本教程顯示了如何使用Hibernate作為持久性提供程序使用JPA設置Spring 。 有關使用基于Java的配置和項目的基本Maven pom設置Spring上下文的分步介紹&#xff0c;請參閱本文 。 2. Java的JPA Spring配置 要在Spring項目中使用JPA&#xff0c; 需要設置EntityManager 。…

150928錯誤認識

1. $arr array(); foreach ($re as $k>$v){  $arr[] $v[updatetime];} $arr的返回結果為&#xff1a; Array ([0] > 2014-09[1] > 2015-04[2] > 2015-09 )$arr array(); foreach ($re as $k>$v){  $arr[$k] $v[updatetime];} $arr的返回結果為&#xff…