mylist = [10,12]
chang(mylist)
print("函式外取值: ", mylist)
結果:函式內取值: [10, 12, [3, 4]]
函式外取值: [10, 12, [3, 4]]
2、文件字串
help()是python中內建函式,通過help()函式可以查詢python中函式的用法
在定義函式時,可以在函式內部編寫文件字串,文件字串就是對函式的說明
print(help())
3、函式作用域
• 作用域(scope)
• 作用域指的是變數生效的區域
• 在python中一共有兩種作用域
• 全域性作用域
• 全域性作用域在程式執行時建立,在程式執行結束時銷毀
• 所有函式以外的區域都是全域性作用域
• 在全域性作用域中定義的變數,都是全域性變數,全域性變數可以在程式的任意位置進行訪問
• 函式作用域
• 函式作用域在函式呼叫時建立,在呼叫結束時銷毀
• 函式每呼叫一次就會產生乙個新的函式作用域
• 在函式作用域中定義的變數,都是區域性變數,它只能在函式內部被訪問
4、命名空間
命名空間實際上就是乙個字典,是乙個專門用來儲存變數的字典
locals()用來獲取當前作用域的命名空間
如果在全域性作用域中呼叫locals()則獲取全域性命名空間,如果在函式作用域中呼叫locals()則獲取函式命名空間
返回值是乙個字典
5、遞迴函式
• 遞迴是解決問題的一種方式,它的整體思想,是將乙個大問題分解為乙個個的小問題,直到問題無法分解時,在去解決問題
• 遞迴式函式有2個條件
• 1. 基線條件 問題可以被分解為最小問題,當滿足基線條件時,遞迴就不執行了
• 2. 遞迴條件 可以將問題繼續分解的條件
二、漢諾塔遊戲問題,現在有abc三根柱子。要求:將a柱所有的圓盤放到c柱。在移動的過程中可以借助b柱。並且規定大圓盤不能放小圓盤上面,每次只能移動乙個盤子。用遞迴的方式來解決漢諾塔問題
def hanrtower(number,a,b,c):
#number 代表盤子,a,b,c代表柱子
if number==1:
print(『第乙個盤子從』,『a』,』–>』,『c』)
else:
hanrtower(number-1,a,c,b)
print('第',number,'個盤子',a,'-->',c)
hanrtower(number-1,b,a,c)
hanrtower(5,『a』,『b』,『c』) python 漢諾塔 Python漢諾塔
import turtle class stack def init self self.items def isempty self return len self.items 0 def push self,item def pop self return self.items.pop def ...
漢諾塔合集之漢諾塔3
漢諾塔3 步驟分析 1.當只有乙個圓盤時,要從a到b再到c 2.同樣擴充套件經典漢諾塔問題來看,先把a柱上 n 1 個圓盤,經b移動到c 3.把最後乙個圓盤從a移動到b 4.把c柱上的 n 1 個圓盤,經b移動 移回 到a 5.把b上的最後乙個圓盤從b移到c 6.最後把a上的 n 1 個圓盤經過b移...
漢諾塔的移動函式
漢諾塔 的移動 用python編寫 move n,a,b,c 函式,接收引數n,n表示3個柱子a b c中第1個柱子a的盤子數量,列印出把所有盤子從a借助b移動到c的方法 期待輸出 a c a b c b a c b a b c a c move 3,a b c 把不是最下面的盤子都經過c移到b 把...