Pro159-泡面Python[Py#059]——5min-EasyCase 多公差數(shù)列生成

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í),如何將這個也弄成懶人輸出。

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容