Python就業班——Python基礎知識——考試——猜數字

業務要求:

# 提示進入遊戲,打印提示信息;設置參數guide_word,記錄打印的文字提示信息
# 判斷指定的值是否爲數字;設置n接收用於進行判定的變量的值,運用isdigit()方法進行判定並返回判定結果
# 判斷指定序列中的數值是否相等;設置列表類型的參數用於接收指定序列;取出序列中的值並進行比較,若相等,則退出程序將返回值置爲0,並提示重啓程序;反之,則返回值爲
# 根據參數值,產生一個位於參數值區間內的隨機數;設置兩個參數用於接收所輸入的區間起始和終止值,並將其保存在列表中;利用內置函數filter()過濾以確保輸入值爲數字;調用自定義函數判斷輸入值是否相等,並根據返回值,提示用戶產生隨機數的區間;正確運用random模塊,產生區間內的隨機數
# 將用戶輸入的區間起始值和終止值由str類型轉換爲int類型;運用合理的方法將輸入數據類型轉變爲目標類型,並以列表形式返回
# 判斷所輸入的數值是否在指定的區間;利用條件語句判斷輸入數值是否在指定區間,若不在,則提示信息
# 將每次猜測數字和本次猜測次數兩項信息寫入日誌文件;設置參數接收玩家猜測的次數和本次猜測的具體數字;根據datetime模塊獲取每次猜測數字輸入的時間;使用with語法操作日誌文件,將獲取到的參數和時間信息以追加方式寫入日誌文件
# 根據產生的隨機數,提示輸入數字並進行比對,指導猜測到正確數字;設置參數獲取以產生的隨機數;提示輸入所猜測數字,並轉換int類型;調用覈查數值屬於指定區間函數,並記錄猜測數字的次數;調用日誌寫入函數,傳入指定數據;設置循環判斷猜測數字與產生的隨機數是否相等,若相等返回猜測次數,若不等,提示玩家
 

#!/usr/bin/env python3
# coding=utf-8
# Version:python3.6.1
# Project:practice
# File:Number_Riddle_猜數字.py
# Data:2020/7/2 21:36
# Author:LGSP_Harold

import random

from datetime import datetime


def number_riddle():
print('進入小遊戲')
m = input('數字區間起始值:')
n = input('數字區間終止值:')
if not check_num(m) or not check_num(n):
print('程序結束')
elif m >= n:
print('輸入區間大小有誤,程序結束')
else:
m = int(m)
n = int(n)
print('所產生的隨機數字區間爲:["{0}", "{1}"]'.format(m, n))
func(m, n)


def func(m, n):
random_region = random.randint(m, n)
j = 0
while True:
i = input('請輸入猜測的數字:')
rest = check_num(i)
if not rest:
continue
else:
i = int(i)
j += 1
rest = check_correctness(i, j, m, n, random_region)
if rest:
break


def check_num(num):
rest = True
if num == '':
print('不能爲空')
rest = False
elif not num.isdigit():
print('請輸入數字')
rest = False
return rest


def check_correctness(i, j, m, n, random_region):
rest = True
if i < m or i > n:
print('數字不在區間內')
rest = False
elif i < random_region:
print("小了")
result = '{0}次,{1}小了'.format(j, i)
write_log(result)
rest = False
elif i > random_region:
print("大了")
result = '{0}次,{1}大了'.format(j, i)
write_log(result)
rest = False
else:
print('恭喜,用了{}次'.format(j))
result = '恭喜,用了{0}次,數字爲{1}'.format(j, i)
write_log(result)
return rest


def write_log(rest):
file_name = 'number_riddle.log'
with open(file_name, 'a+', encoding='utf-8') as f:
f.write('{0},時間:{1}\n'.format(rest, datetime.now()))


if __name__ == '__main__':
number_riddle()
 

 

P.S.1:我不按業務寫,能咋地....

P.S.2:爲啥業務要求不自動換行呢....

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章