石頭剪刀布python編程_《python核心編程第二版》練習題——游戲:石頭剪刀布

習題里比較有意思的一個題目,實現石頭剪刀布這個游戲,起初設計的時候走彎路了(主要時被習題里那個“盡量少用if判斷”給整暈了),想的太復雜,后來發現其實非常簡單,完全可以不寫if語句。

還是枚舉法:

#! /usr/bin/env python

import random

choicetuple = ('rock','scissors','paper')

#枚舉所有的比較結果,格式定義為{‘玩家-電腦’:‘結果’}

judgedict = {'rock-rock':'OK!Draw!','scissors-scissors':'OK!Draw!','paper-paper':'OK!Draw!','rock-scissors':'OK!You Win!', 'rock-paper':'HAHA!You lose!', 'scissors-rock':'HAHA!You lose!', 'scissors-paper':'OK!You Win!', 'paper-rock':'OK!You Win!', 'paper-scissors':'HAHA!You lose!'}

def rockscissorspaper(playerchoice, randomchoice):

newstr = playerchoice+'-'+randomchoice

#get內建函數是亮點,因為我之前用的是try expect這種傻乎乎的東西,看到第7章的內容,果斷用get()

return judgedict.get(newstr, 'Computer is played badly!')

if __name__ == '__main__':

print('rock!!scissors!!paper!!')

while True:

playerchoice = input('COME ON!SHOW ME YOUR HAND STYLE:')

randomchoice = choicetuple[random.randint(0,len(choicetuple)-1)]

print('Eat this:%s'% randomchoice)

resultstr = rockscissorspaper(playerchoice, randomchoice)

print(resultstr)

這個玩法正常情況下,玩家想贏電腦,概率是三分之一(平局當然不算贏),但是,這么玩游戲也太沒勁了,勝利得來太容易啊!

玩游戲果斷得有VIP(RMB)玩家和平民玩家之分啊!VIP0~9,9級VIP,贏的概率是3分之一,依次往下推,0級VIP,贏主要看臉!

怎么實現呢?嘿嘿,有興趣的同學可以試一哈!

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

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

相關文章

SpringMvc面試題

f-sm-1. 講下SpringMvc和Struts1,Struts2的比較的優勢 性能上Struts1>SpringMvc>Struts2 開發速度上SpringMvc和Struts2差不多,比Struts1要高f-sm-2. 講下SpringMvc的核心入口類是什么,Struts1,Struts2的分別是什么 SpringMvc的是DispatchServlet,Struts1的是ActionServl…

python 鴨子類型

DAY 10. 鴨子類型 這個概念來源于美國印第安納州的詩人詹姆斯惠特科姆萊利(James Whitcomb Riley,1849-1916)的詩句:”When I see a bird that walks like a duck and swims like a duck and quacks like a duck, I call that bird a duck.”…

thinkphp一句話疑難解決筆記

URL_PATHINFO_DEPR, depr表示 網頁路徑"分隔符",用"-", 有利于seo,注意是從 sername/index.php(開始的)/home-user-login-var-value開始的,pathinfo也支持普通的參數傳值(僅僅支持參數...). 在thinkphp中,有兩個地方使用depr,另一個就是tpl的文件目錄組織分…

python選取特定行_pandas.DataFrame選取/排除特定行的方法

pandas.DataFrame選取特定行使用Python進行數據分析時,經常要使用到的一個數據結構就是pandas的DataFrame,如果我們想要像Excel的篩選那樣,只要其中的一行或某幾行,可以使用isin()方法,將需要的行的值以列表方式傳入&a…

學校選址_洛谷U3451_帶權中位數

題目描述 在一條大路一旁有許多棟樓,每棟樓里有許多小學生(哈哈哈一波小學生來襲!)。但是這條路上沒有小學!!!!所以唯恐世界不亂的牛A打算在路上(汽車什么的都不敢來這個…

python 重載的實現(single-dispatch generic function)

DAY 11. python 重載 函數重載是指允許定義參數數量或類型不同的同名函數,程序在運行時會根據所傳遞的參數類型選擇應該調用的函數 ,但在默認情況下,python是不支持函數重載的,定義同名函數會發生覆蓋 def foo(a:int):print(fin…

SQL中的多表查詢,以及JOIN的順序重要么?

說法是,一般來說,JOIN的順序不重要,除非你要自己定制driving table。 示例: SELECT a.account_id, c.fed_id, e.fname, e.lname-> FROM account AS a INNER JOIN customer AS c-> ON a.cust_id c.cust_id-> INNER JOIN …

python可變對象 不可變對象_【Python】可變對象和不可變對象

在 Python 中一切都可以看作為對象。每個對象都有各自的 id, type 和 value。id: 當一個對象被創建后,它的 id 就不會在改變,這里的 id 其實就是對象在內存中的地址,可以使用 id() 去查看對象在內存中地址。type: 和 id 一樣當對象唄創建之后…

MySQL 調優基礎(三) Linux文件系統

Linux的文件系統有點像MySQL的存儲引擎,它支持各種各樣的文件系統。它最上層是通過 virtual files system虛擬文件系統作為一個抽象接口層來對外提供調用的。然后下層的各種文件系統實現這些調用接口就行了。 1. Linux 中的 日志文件系統和非日志文件系統 文件內容的…

python 經典類和新式類

DAY 12. python新式類和舊式類 繼承自object基類的類叫做新式類,否則叫做舊式類,python3中的類默認是新式類,之前版本默認是舊式類 rootkail:~# python python 2.7.15 (default,Jul 28 2018,11:29:29) [GCC 8.1.0] on linux2 Type "he…

Why does pthread_cond_signal not work?【轉】

轉自:http://stackoverflow.com/questions/16819169/why-does-pthread-cond-signal-not-work# 0 down vote favorite I am currently learing all around POSIX threads (pthread). I now have created a simple program which increased a shared value by 7 until…

Android開發技術周報 Issue#72

新聞 Android N 最初預覽版:開發者 API 和工具教程 Gradle依賴的統一管理 理解Java垃圾回收機制 淺談 Android 編程思想和架構 由Android 65K方法數限制引發的思考 Android音頻開發(1):基礎知識 Android音頻開發(…

python 單例模式的四種實現方法

DAY 13. 單例設計 13.1 什么是單例設計 一個類每次實例化返回的都是同一個對象,這種設計模式叫做單例設計,這個類叫做單例類 13.2 實現單例設計的方法 13.2.1 重寫__new__() class Foo:def __new__(cls,*args, **kwargs):# 如果是第一次實例化&…

Redis3.2.5部署(單節點)

1.安裝jdk1.8 [rootsht-logstash-01 ~]# cd /usr/java/ [rootsht-logstash-01 java]# wget --no-check-certificate --no-cookies --header "Cookie: oraclelicenseaccept-securebackup-cookie" http://download.oracle.com/otn-pub/java/jdk/8u111-b14/jdk-8u111…

字節跳動 設計模式 pdf_憑這份pdf我拿下了美團、字節跳動、阿里、小米等大廠的offer...

關于程序員,除了做項目來提高自身的技術之外,還有一種提升自己的專業技能就是:多!看!書!小編整理出一篇Java進階架構師之路的核心知識,同時也是面試時面試官必問的知識點,篇章也是包…

B. One Bomb (#363 Div.2)

B. One Bombtime limit per test1 secondmemory limit per test256 megabytesinputstandard inputoutputstandard outputYou are given a description of a depot. It is a rectangular checkered field of n??m size. Each cell in a field can be empty (".") or…

力扣交替打印FooBar

這道題要注意的是兩個線程喚醒和等待的順序,應為第一個線程會比第二個線程更早結束,所以如果第一個線程已經結束,而第二個線程還在等待被喚醒,那第二個線程會一直等待下去,因此第一個線程要先等待后喚醒,這…

項目開發容易出錯情況統計

2016年11月17日 11:30:45 星期四 1.適配: a) APP彈窗大屏幕適配(例如, 是否居中) 2.按鈕狀態: a) 按鈕點擊后沒有disable 如果新頁面加載卡頓導致用戶多次點擊,生成多次請求 b) 按鈕disable后什么時候enabl…

python會不會出4_無極4網人生苦短,Python會不會被取代?國外網友

本文經AI新媒體量子位(公眾號ID:QbitAI)授權轉載,轉載請聯系出處。人生苦短,我該不該選擇Python?編程語言幾年一變樣,榜單之爭也是愈演愈烈,還架不住時不時殺出個黑馬……而對于Python,自2010年初以來一直蓬…

android 音頻播放總結 soundlPool,MediaPlay

soundlPool 用于小音頻的播放多個同時播放。 使用步驟: 步驟一: 首先下載音頻文件可以將其放入assets文件夾下或者res下的raw文件夾下,區別在于assets下可以再新建文件夾而raw不行,assets內部單個文件超過1m時可能存在bug而raw不會…