Python小練習:猜數字

代碼來自《父與子的編程之旅:與小卡特一塊兒學Python 》第一章,我在本來的基礎上作了一些修改。html

原來代碼中的文字看着不怎麼像英文,我對其中一些單詞作了修改。(這個純屬無聊)python

思路:編程

  • 引入random庫用來生成1~99之間的隨機數
  • 經過input()方法給用戶輸入提示並得到用戶輸入的數字
  • 比較得到的數字與生成的隨機數的大小來提示用戶下一步的輸入
  • 輸入超過6個數字或者猜中結束程序
  • 新增:猜數字結束後詢問是否接着猜,若是輸入爲"Y",從新開始猜數字

同時,我將原來猜數字的代碼放在函數裏面用來重複調用:dom

import random
def guess():
	secret = random.randint(1, 99)
	guess = 0
	tries = 0

	print("Hey! I'm the Dread Pirate Roberts, and I have a secret!")
	print("It is a number from 1 to 99. I'll give you 6 tries.")

	while guess !=secret and tries < 6:
		guess = int(input("What's your guess?"))

		if guess < secret:
			print("Too low!")
		if guess > secret:
			print("Too high!")
		tries = tries + 1

	if guess == secret:
		print("Great! You got it! Found my secret, you did!")
	else:
		print("No more guesses! Better luck next time!")
		print("The secret number was", secret)

	guess_flag=input("Do you want to countinue(Y/N):")
	if guess_flag=="Y":
		guess()
	
guess()

執行結果(採用二分法能比較快速的猜中數字):python2.7

很明顯,在猜數字結束後,當詢問是否繼續,回答爲"Y"時報錯。函數

我試着把guess()方法放在def guess():前面,而後(貌似JavaScript是能夠這麼幹的呀):測試

錯誤緣由:spa

變量名和函數名同樣致使guess變量在調用函數前被賦值爲整型的一個數字,所以調用不成功code

修改以下:htm

import random

def myguess():
	secret = random.randint(1, 99)
	guess = 0
	tries = 0

	print("Hey! I'm the Dread Pirate Roberts, and I have a secret!")
	print("It is a number from 1 to 99. I'll give you 6 tries.")

	while guess !=secret and tries < 6:
		guess = int(input("What's your guess?"))

		if guess < secret:
			print("Too low!")
		if guess > secret:
			print("Too high!")
		tries = tries + 1

	if guess == secret:
		print("Great! You got it! Found my secret, you did!")
	else:
		print("No more guesses! Better luck next time!")
		print("The secret number was", secret)

	guess_flag=input("Do you want to countinue(Y/N):")
	if guess_flag=="Y":
		myguess()

myguess()

關於變量名和函數名重複的測試:

另外,raw_input()方法在python3.5中已經棄用,python2.7中可用,其餘版本我不清楚,多是python2和python3的一點小區別吧!

 

參考:

  1. http://www.ituring.com.cn/tupubarticle/3680【《父與子的編程之旅:與小卡特一塊兒學Python 》第一章】
  2. https://docs.python.org/3.5/library/random.html【Python3.5 random庫】
相關文章
相關標籤/搜索