久久国产乱子伦精品免费M,亚洲一区二区三区91,欧美国产在线视频,国产精品视频久久

自學Python編程【第三十七節】用文件保存游戲(1)

同學們!歡迎來到自學Python編程教室,我們從今天開始學習用文件保存游戲(1),前面學習的知識記得復習哦,今天開啟新篇章你準備好了嗎?想要Python入門或者學習Python的小伙伴,要看一下啦!

現在,我要在最早我們開發的那個猜數字游戲的基礎上,增加保存成績的功能。用到的方法就是前幾課講過的文件讀寫。今天是第一部分。

在動手寫代碼前,先想清楚我們要解決什么問題,打算怎么去解決。你可以選擇根據每次游戲算出一個得分,記錄累計的得分。也可以讓每次猜錯都扣xx分,猜對之后再加xx分,記錄當前分數。而我現在打算記錄下我玩了多少次,最快猜出來的輪數,以及平均每次猜對用的輪數。

于是,我要在文件中記錄3個數字,如:

3 5 31

它們分別是:總游戲次數,最快猜出的輪數,和猜過的總輪數(這里我選擇記錄總輪數,然后每次再算出平均輪數)

接下來可以往代碼里加功能了,首先是讀取成績。新建好一個game.txt,里面寫上:

0 0 0

作為程序的初始數據。

用之前的方法,讀入文件:

f = open('e:pygame.txt') 
score = f.read().split()

這里,我用了open方法,它和file()的效果一樣。另外,我還用了絕對路徑。當你寫這個程序時,記得用你自己電腦上的路徑。

為便于理解,把數據讀進來后,分別存在3個變量中。

game_times = int(score[0])
min_times = int(score[1])
total_times = int(score[2])

平均輪數根據總輪數和游戲次數相除得到:

avg_times = float(total_times) / game_times

注意兩點:

1.我在total_times前加上了float,把它轉成了浮點數類型再進行除法運算。如果不這樣做,兩個整數相除的結果會默認為整數,而且不是四舍五入。

2.因為0是不能作為除數的,所以這里還需要加上判斷:

if game_times > 0: 
avg_times = float(total_times) / game_times
else:
avg_times = 0

然后,在讓玩家開始猜數字前,輸出他之前的成績信息:

print '你已經玩了%d次,最少%d輪猜出答案,平均%.2f輪猜出答案' % (game_times, min_times, avg_times)

%.2f這樣的寫法我們以前也用過,作用是保留兩位小數。

好了,運行程序看一下效果:

你已經玩了0次,最少0輪猜出答案,平均0輪猜出答案

由于還沒有做保存功能,我們手動去文件里改一下成績看運行效果。(其實有些小游戲就可以用類似的方法作弊)

自學Python編程,用文件保存游戲

下一課,我們要把真實的游戲數據保存到文件中。

恭喜你在Python自學的道路上又堅持了一天,今天講的用文件保存游戲你學會了嗎?之后還有兩節相關的內容,你準備好了嗎?

好啦,今天的分享到這里就結束了,希望大家能夠持續關注馬哥教育官網,每天都會有大量優質內容與大家分享!

聲明:文章來源于網絡,侵刪!

相關新聞

歷經多年發展,已成為國內好評如潮的Linux云計算運維、SRE、Devops、網絡安全、云原生、Go、Python開發專業人才培訓機構!

    1. 主站蜘蛛池模板: 五峰| 如皋市| 英吉沙县| 手游| 海兴县| 都江堰市| 西宁市| 梁平县| 临颍县| 乌兰察布市| 巴彦淖尔市| 竹溪县| 赫章县| 宣武区| 博湖县| 娄底市| 房产| 安吉县| 布尔津县| 林口县| 博罗县| 莎车县| 晋州市| 无极县| 台东县| 汉中市| 分宜县| 溧水县| 潞城市| 吴堡县| 冷水江市| 乐至县| 蓬莱市| 镇平县| 平泉县| 天水市| 舒城县| 会理县| 拉孜县| 偏关县| 东光县|