python_切片練手的好題目

題目

"有一天,我正在高速公路上開車,我偶然注意到我的里程錶。和大多數里程錶一樣,它只顯示6位數字的整數英里數。
所以,如果我的車開了300,000英里,我能夠看到的數字是:3-0-0-0-0-0。

我當天看到的里程數非常有意思。我注意到後四位數字是迴文數;也就是說,正序讀和逆序讀是一樣的。例如,5-4-4-5就是迴文數。
所以我的里程數可能是3-1-5-4-4-5。

一英里後,後五位數字變成了迴文數。例如,里程數可能變成了是3-6-5-4-5-6。又過了一英里後,6位數字的中間四位變成了迴文數。
你相信嗎?一英里後,所有的6位數字都變成了迴文數。

那麼問題來了,當我第一次看到里程錶時,里程數是多少?"

編寫寫一個程序,測試所有的6位數字,然後輸出所有符合要求的結果

def palindrome(number, start, length):
    str_number = str(number)
    part_number = str_number[start:start + length]  # 截取指定的英里數
    return part_number == part_number[::-1]


def check_palindrome(i):
    return (  # 加上括號後可以分行寫
            palindrome(i, 2, 4) and # 後四位
            palindrome(i + 1, 1, 5) and # 後五位
            palindrome(i + 2, 1, 4) and  # 中間四位
            palindrome(i + 3, 0, 6)  # 全部六位
    )


if __name__ == '__main__':
    for i in range(100000, 1000000):
        if check_palindrome(i):
            print(i)

不要走開

歡迎關注公衆號:趣享Eureka<分享電腦技巧,音樂,讀書筆記>
在這裏插入圖片描述

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