tft每日頭條

 > 生活

 > python中的序列表示法

python中的序列表示法

生活 更新时间:2024-07-21 17:28:24

【人生苦短,我學Python】是衆多和計算機接觸過的朋友耳熟能詳的段子,Python作為最近幾年非常火的編程語言,因為其簡潔和開源的特點,受到許許多多人的喜愛。著名房地産商潘石屹先生也在學習Python,足以可見Python的實用性和其強大的“魅力”。

python中的序列表示法(溫文默克的學習筆記Python篇)1

筆者自身對于Python也是十分喜愛,希望能有越來越多的朋友接觸這門語言。關于Python的學習,除了看一些課程視頻和專業書籍外,筆者認為最重要的就是練習,無論是大的項目還是小的例子,隻有在練習中不斷進行嘗試才能找到自己的“盲區”。

接下來,筆者開始今天的學習筆記分享——Collatz 序列

python中的序列表示法(溫文默克的學習筆記Python篇)2

Collatz 序列(奇偶歸一猜想)又稱為3n+1猜想、冰雹猜想,是指對于每一個正整數,如果它是奇數,則對它乘3再加1,如果它是偶數,則對它除以2,反複進行上述循環,最終結果都能夠得到1。為了實現上述功能,首先要定義一個函數(筆者将其命名為collatz()),它有一個名為 number 的參數。如果參數是偶數,那麼 collatz()就打印出 number // 2,并返回該值。如果 number 是奇數,collatz()就打印并返回 3 * number 1。

def collatz(num): if num % 2==0: return num // 2 else: return 3 * num 1

然後編寫一個程序,讓用戶輸入一個整數,并不斷對這個數調用 collatz(),直到函數返回值1。而要實現這一功能要注意兩點,一是要記得用 int()函數将輸入的值轉成一個整數,否則它會是一個字符串,調用collatz()會失敗。二是要不斷調用collatz(),這時就需要用到“遞歸”了。

python中的序列表示法(溫文默克的學習筆記Python篇)3

那什麼是“遞歸”呢?簡單來說就是不斷地調用自己,舉個筆者小時候聽過的例子:從前有座山,山裡有座廟,廟裡有個老和尚,老和尚在給小和尚講故事,說從前有座山,山裡有座廟,廟裡有個老和尚,老和尚在給小和尚講故事,從前有座山... 還有從兩面相對的鏡子中看到的畫面,其實都是抽象出來的遞歸現象。

python中的序列表示法(溫文默克的學習筆記Python篇)4

不過這嚴格上來說并不能算是遞歸,因為會一直重複下去,沒有終止條件,那就稱為死循環了。遞歸需要終止條件的。利用遞歸的思想,可以實現很多功能,比如九九乘法表,斐波拉契數列……

回到本來的Collatz 序列這個例子,筆者定義了一個名為func()的函數,參數值為輸入的正整數。在這個函數裡調用collatz(),如果得出的值不是1,證明還沒到最後,将其打印出來,再使用遞歸的思想,調用自己,參數值為目前使用collatz()得出的值,反複進行,直到最後得出的值為1。

def func(i): if collatz(i) != 1: print(collatz(i)) i = collatz(i) func(i) else: print(collatz(i))

到了這一步基本的功能已經實現了,不過我們還可以在輸入操作上進行一些完善,在用戶輸入數值類型錯誤時,給予提示。這裡使用try…except語句來解決輸入錯誤問題。

while True: print("Enter number:") try: i = int(input()) func(i) break except ValueError: print("請輸入整數!!!")

本次的分享就到這裡,今天剛好是1月1日,祝大家新的一年能夠萬事順利~

pip uninstall 2019

pip install 2020

import money

from money import beauty

from money import *

,

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关生活资讯推荐

热门生活资讯推荐

网友关注

Copyright 2023-2024 - www.tftnews.com All Rights Reserved