python學習——將while循環改成函數


笨辦法學python第33節

這一節主要學習內容是while循環,記錄內容為將while改成函數,首先源代碼如下:

 1 i = 0
 2 numbers = []
 3 
 4 while i < 6:
 5     print "At the top i is %d" % i
 6     numbers.append(i)
 7 
 8     i = i + 1
 9     print "Numbers now: ", numbers
10     print "At the bottom i is %d" % i
11 
12 print "The numbers:"
13 
14 for num in numbers:
15     print num

運行結果如下:

在將這段代碼改成函數的時候遇到了問題,開始我想的是這個函數的變量是numbers,就是def xunhuan(number),然后就不會寫了,后來問了大肚子怎么回事,他說我變量不對,變量不是最后的結果numbers,是6,就是i<6的這個6,然后我就改成了

def xunhuan(m),就是改成如下代碼:

i = 0
numbers = []

def xunhuan(m):
    
    while i < m:
        return numbers.append(i)
        i = i + 1 
    
    

new_number = xunhuan(6)
print "The numbers: " , new_number

但是還是不對,說 i 沒有定義,大肚子說應該在def函數里面加上global i,意思就是說,這個最開始定義的i是全局變量,函數里面也能用,然后我就加上了global i,發現還是不對,發現這個函數里面最后沒有一個return,而且只能有一個return,所以我就把循環里面的return刪了在最后加上了return numbers。如下:

 1 i = 0
 2 numbers = []
 3 
 4 def xunhuan(m):
 5     global i
 6     while i < m:
 7         numbers.append(i)
 8         i = i + 1 
 9     return numbers
10     
11 
12 new_number = xunhuan(6)
13 print "The numbers: " , new_number

運行成功!結果:

然后大肚子又給我說可以設置輸入的值m,就是用 m = input("input: ") ,然后我就在def里面加上了這句話,發現有錯誤

解決方法是,這個m = input("input: ") 不能放到def里面,應該放到def外面,代碼如下:

 1 i = 0
 2 numbers = []
 3 
 4 def xunhuan(m):
 5     global i
 6     while i < m:
 7         numbers.append(i)
 8         i = i + 1 
 9     return numbers
10     
11 
12 m = input("input: ")
13 new_number = xunhuan(m)
14 print "The numbers: " , new_number

解決!運行結果:

 

注:

1.紅色字體是錯誤以及改正。

2.我發現我用的函數名“xunhuan”簡直了,,因為八塊腹肌用的“loop”,,還有我感覺不能叫大肚子,就好比要是叫一個胖子胖子,他就永遠減不下來了,,所以就叫你八塊腹肌吧哈哈哈哈。

3.第一次寫博客,堅持堅持!

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM