··· Python高效編程
這一節,我們介紹如何使用 Python 實現簡單的猜數遊戲。
首先是打印菜單的功能:1.開始遊戲 2.結束遊戲。
其次,生成隨機邊界(右邊界爲:100~2000)的隨機數。
其次是提示猜數範圍,比較用戶輸入的數值與猜測的數值,縮小提示範圍。
猜錯數字,程序會一直執行。猜對數字,程序將回到主界面。
import random
import math
# Python高效編程
def menu():
print('-' * 30)
print('Python高效編程\n')
print('歡迎來到猜數遊戲')
print('1.開始遊戲')
print('2.結束遊戲')
print('-' * 30)
class GuessNum:
random_choice = [i * 100 for i in range(1, 20)]
def __init__(self):
self.guess_range = None
self.guess_num = None
self.left = None
self.right = None
self.random_num()
def init_range(self):
self.left = 1
self.right = self.guess_range
@property
def _random_range(self):
return random.choice(self.random_choice)
def random_num(self):
self.guess_range = self._random_range
self.guess_num = random.randint(1, self.guess_range)
self.init_range()
def user_choice(self, choice):
if choice == '1':
print('數值的範圍是:{}-{}'.format(self.left, self.right))
user_num = input('請輸入你猜測的數值:')
flag = self.guess(user_num)
return flag
elif choice == '2':
exit()
def guess(self, num):
flag = 0
num = math.floor(float(num))
if self.guess_num == num:
print('恭喜你猜中了:{}'.format(self.guess_num))
flag = 1
elif self.guess_num > num:
if num > self.left:
self.left = num
print('猜小了')
elif self.guess_num < num:
if num < self.right:
self.right = num
print('猜大了')
return flag
# Python高效編程
def main():
menu()
game = GuessNum()
choice = input('請輸入你的選擇:')
while True:
flag = game.user_choice(choice)
if flag:
main()
if __name__ == '__main__':
main()