最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

S4E07 你可以幾次可以猜到答案

2022-02-28 14:42 作者:學(xué)用數(shù)學(xué)  | 我要投稿

可能你玩過這樣的一個(gè)小游戲:某人在1-100之間想一個(gè)數(shù),另外一群人來猜數(shù)字,每次只告知猜大還是猜小,直到猜到目標(biāo)。那么一個(gè)人是否就沒有辦法玩這個(gè)游戲了呢?不存在的!今天我們就自己使用Kesci平臺(tái)利用Python編輯這樣的一個(gè)小游戲。

今天這節(jié)課,你將收獲:

1. 使用Python產(chǎn)生隨機(jī)數(shù)

2. 使用Python產(chǎn)生一個(gè)輸入框

3. 理解循環(huán)語句while……

4. 理解條件語句if……else……

有沒有覺得場(chǎng)景似曾相識(shí)?既然要猜數(shù)字,那么就得先有一個(gè)“隨機(jī)”產(chǎn)生的數(shù)字;第二個(gè)就是輸入數(shù)字,最后匹配,看是否一致,并給出判斷。對(duì),我們?cè)贕GB里面也有過類似的操作,今天我們看一下Python里面的語言吧?

01 猜骰子所擲出的數(shù)字

A.?用random產(chǎn)生一個(gè)隨機(jī)數(shù)

Python里面有很多的指令,我們可以直接調(diào)用出來使用。使用import來調(diào)用random,然后來產(chǎn)生一個(gè)隨機(jī)數(shù)。指令如下:

import?random

a = random.randint(最小數(shù),最大數(shù)) 【命名a 為隨機(jī)數(shù)的名字】

你可以使用指令擲一個(gè)骰子嗎?【答案見①】

B.?使用input來讓游戲者輸入數(shù)字

產(chǎn)生一個(gè)輸入框,可以使用input指令。

a=input()?

外部輸入的對(duì)象為 a

你可以完成下面的指令嗎?答案見②

import?random

ans = random.randint(1,6)

guess =????("Guess a number between 1 and 6: ")

print("Answer {}. Guesss: {}".format(ans,guess))

C.?讓游戲者反復(fù)猜測(cè),直到猜中才停止

我們看到上面的效果圖中,使用者只能猜測(cè)一次就結(jié)束了,我們想讓游戲者一直猜測(cè),直到猜對(duì)位置。這時(shí)候,我們可以使用循環(huán)語句。當(dāng)游戲者猜測(cè)的數(shù)字不等于結(jié)果時(shí),讓使用者繼續(xù)猜測(cè)。

while(條件):

? ? 執(zhí)行的程序……(注意,需要縮進(jìn))

我們可以在讓游戲者輸入猜測(cè)的數(shù)字之后,判斷輸入的數(shù)字和產(chǎn)生的隨機(jī)數(shù)的關(guān)系,然后再做出相應(yīng)。請(qǐng)?zhí)顚懴旅娴????處,提示,不等于用“?”來表示。

import?random

ans = random.randint(1,6)

guess = int(input("Guess a number between 1 and 6: "))

while(???):

????guess = int(input("Wrong! Guess again! "))

print("Bingo!!! The Answer is {}.".format(ans))

D.累計(jì)猜測(cè)的次數(shù)

我們可以在執(zhí)行一次while這個(gè)循環(huán)一次,就增加游戲者猜測(cè)的次數(shù)。我們可以像在GGB中一樣,命名一個(gè)次數(shù),首先初始值是1,執(zhí)行一次while就次數(shù)+1。

我們可以在while執(zhí)行前定義次數(shù)為1,執(zhí)行一次次數(shù)+1。

你可以完成下面的指令嗎?答案見④

import?random

ans = random.randint(1,6)

guess = int(input("Guess a number between 1 and 6: "))

guessTime = 1

while(guess != ans):

????guess = int(input("Wrong! Guess again! "))

???

print("Bingo!!! The Answer is {}. You used {}time(s).".format(ans,guessTime))

02 猜測(cè)1-31的一個(gè)數(shù)字,并顯示猜測(cè)大還是小

A.修改參數(shù),設(shè)置猜測(cè)范圍為1-31,你可以修改上面的程序嗎?答案見⑤

B.判斷太大或者太小

當(dāng)猜測(cè)數(shù)字小于正確答案時(shí),顯示猜測(cè)小了,再試一次;當(dāng)猜測(cè)數(shù)字大于正確答案時(shí),顯示猜測(cè)大了,再試一次;并且猜測(cè)次數(shù)+1。

我們可以在while判斷猜測(cè)數(shù)字和結(jié)果不一致時(shí),在判斷大小??梢允褂?strong>if……else……條件語句。

if(條件1):

????執(zhí)行指令1

else:

????執(zhí)行指令2

注意:一定要有“:”

你可以完成下面的程序嗎?答案見⑤

import?random

ans = random.randint(1,31)

guess = int(input("Guess a number between 1 and 31: "))

guessTime = 1

while(guess != ans):

??if????:

????????guess = int(input("Too Small! Guess again! "))

? else:

????????guess = int(input("Too Large! Guess again! "))

????guessTime += 1

print("Bingo!!! The Answer is {}. You used {} time(s).".format(ans,guessTime)


C.給出錯(cuò)誤猜測(cè)結(jié)果后的繼續(xù)猜測(cè)的范圍

當(dāng)我們判斷猜測(cè)數(shù)小了之后,那么新猜測(cè)的數(shù)字就成為了猜測(cè)范圍的最低值。我們可以把最低值賦給新猜測(cè)的數(shù),給出游戲者新的猜測(cè)范圍,便于游戲者繼續(xù)進(jìn)行猜測(cè)。

你可以完成下面的指令嗎?答案見⑥

import?random

lower = 1

upper = 31

ans = random.randint(lower, upper)

guess = int(input("Guess a number between {} and {}: ".format(lower,upper)))

guessTime = 1

while(guess != ans):

? if?guess < ans:

??????????????lower =????

????????guess = int(input("Too small! Guess a number between {} and {}: ".format(lower,upper)))

? else:

????????????????upper =????

? ? ????????????guess = int(input("Too Large! Guess a number between {} and {}: ".format(lower,upper)))

????guessTime += 1

print("Bingo!!! The Answer is {}. You used {} time(s).".format(ans,guessTime))

????D. 答案修正

當(dāng)游戲者如果輸入的答案不在范圍內(nèi),系統(tǒng)也會(huì)給出一個(gè)答案,所以我們?cè)趫?zhí)行第一個(gè)if判斷之前,先需要做一個(gè)初步的判斷,如果不在此范圍內(nèi),則告知出錯(cuò)。

你可以完成下面的指令嗎?答案見⑦

import?random

lower = 1

upper = 31

ans = int(random.randint(lower, upper))

guess = int(input("Guess a number between {} and {}: ".format(lower,upper)))

guessTime = 1

while(guess != ans):

?if????

? ? if?guess < ans:

? ????????????? ?lower = guess + 1

? ????????? ?guess = int(input("Too small! Guess a number between {} and {}: ".format(lower,upper)))

? ? else:

? ????????????? ?upper = guess - 1

? ????????????? ?guess = int(input("Too Large! Guess a number between {} and {}: ".format(lower,upper)))

? ?guessTime += 1

? else:

? ?????guess = int(input("Error! Guess a number between {} and {}: ".format(lower,upper)))

print("Bingo!!! The Answer is {}. You used {} time(s).".format(ans,guessTime))

03 動(dòng)態(tài)調(diào)整答案

皮一下,如何讓游戲者用最多的次數(shù)猜到正確答案。

如果我們通過游戲者的猜測(cè)過程動(dòng)態(tài)調(diào)整正確答案,那么游戲者就需要猜測(cè)更多的次數(shù)來找到結(jié)果。你覺得可以怎么修改呢?動(dòng)手試一試吧?答案見視頻


答案區(qū)

import random

ans = random.randint(1,6)

print(ans)

input

guess != ans

guessTime += 1或者guessTime =guessTime +1

guess<ans

lower = guess + 1

upper=guess-1

lower <= guess and ?guess <= upper

參考資料

【Bili】https://www.bilibili.com/video/av75790756

【Kesci】https://www.kesci.com/home/project/5dcdf573413f87002cc44642
【Kesci】https://www.kesci.com/home/project/5dcd4891413f87002cc42b7d



S4E07 你可以幾次可以猜到答案的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
大田县| 平江县| 江口县| 奉新县| 泰和县| 锡林郭勒盟| 交城县| 巫山县| 贡山| 林口县| 开鲁县| 安龙县| 达日县| 芜湖市| 扎赉特旗| 鹤峰县| 鹤壁市| 普兰县| 高安市| 江源县| 靖宇县| 晋中市| 榕江县| 开封市| 集安市| 拉孜县| 沅江市| 洛阳市| 合水县| 沙坪坝区| 惠水县| 康马县| 绥化市| 潜江市| 康乐县| 屏山县| 南昌市| 汪清县| 青阳县| 上蔡县| 滨海县|