
Python
3分鐘練習(xí)
數(shù)列計算和轉(zhuǎn)換
?上回我們已經(jīng)完成了分割分鐘的自定義函數(shù),根據(jù)遺留下來的任務(wù),這次我們需要做一個簡單的生成數(shù)列的方法??梢酝ㄟ^觀察得出結(jié)論,這些時間是在500到3000之間,公差為250小時,3000到5000之間,公差為500小時,最后一個公差是1000小時。
?這里我們可以用一個簡單的限制結(jié)尾的循環(huán)體,內(nèi)嵌 if-else 判斷,來完成一個自動生成數(shù)列。
代碼構(gòu)建和效果展示
數(shù)列計算
?首先我們設(shè)置好開始和結(jié)束,由 500 為開始,至于什么時候結(jié)束這個可以由用戶自定義。分別存儲到變量 limit 和 num 中,準(zhǔn)備到下一個循環(huán)結(jié)構(gòu)里面使用。
?我們已經(jīng)知道的規(guī)律如下——
- 500~3000之間 +250
- 3000~5000之間 +500
- 5000以上 +1000
?所以首先我們可以構(gòu)建一個 if-elif-else 結(jié)構(gòu),用來判斷當(dāng)點(diǎn)的數(shù)處于哪一個區(qū)間之內(nèi)。然后不同的區(qū)間使用不同的公差來計算下一個值。
?最后使用一個 while 循環(huán)套在這個 if-elif-else 結(jié)構(gòu)的外面,用來循環(huán)連續(xù)執(zhí)行這個判斷結(jié)構(gòu),生成數(shù)值,從而形成數(shù)列。
# 建立初始邊界條件
limit = int(input())
num = 500
# 使用 while 循環(huán)生成函數(shù)
while num <= limit:
if num < 3000:
print(num)
num = num + 250
elif 3000 <= num < 5000:
print(num)
num = num + 500
else:
print(num)
num = num + 1000
數(shù)列生成及試運(yùn)行效果
合并兩個模塊
?我們把兩個模塊合并到一起,就可以做到這個參數(shù)表在通訊上需要的要求。
def cut(num):
h = 0
l = 0
numed = num * 60
if numed < 65536:
l = numed
else:
h = numed // 65536
l = numed % 65536
return h,l
limit = int(input())
num = 500
i = 0
while num <= limit:
numed = num * 60
print(i,numed)
if num < 3000:
print(cut(num))
num = num + 250
elif 3000 <= num < 5000:
print(cut(num))
num = num + 500
else:
print(cut(num))
num = num + 1000
i = i + 1
完整代碼及運(yùn)行效果
?但是,還是同樣的問題,能不能換成一種 txt 輸出,讓我們使用起來,只需要拖動+拖黑復(fù)制這么簡單的操作呢?好,那么下一節(jié)課,我們再來學(xué)習(xí),如何將這個也弄成懶人輸出。