1. 程式人生 > >Python第二周之函數及其作用域

Python第二周之函數及其作用域

提升 返回 之間 () family 計算 col 定義 法則

# 函數

定義:

  我們可以把程序中相對獨立的功能模塊抽取出來,這樣的好處是可以減少重復代碼的編寫,將來可以重復使用這些功能模塊,Python中的函數就是代表了這樣的功能模塊。

命名:

  age_of_student(官方) 或 ageOfStudent(大部分人的習慣用法,又稱駝峰命名法)

調用:

  import 模塊 (as 別名)

  函數名(參數)

註意:二元運算符之間放空格,參數裏賦值時,等號兩邊不加空格。例如:def f(x=2)

#y = x !定義求階乘這個函數,將求階乘這個功能抽取出來,放到函數中。
def f(x):
    """
    求函數x的階乘
    :param x: 任意正整數
    :
return: x的階乘 """ y = 1 for z in range(1, x + 1): y *= z return y
if __name__ == ‘__main__‘:
m = int(input(‘m = ‘))
n = int(input(‘n = ‘))
# 當需要計算階乘的時候,不用再寫循環,而是直接調用已經定義好的函數就可以了。
print(f(m) // f(n) // f(m - n))

# 函數的作用域

1.在函數外面,叫做全局變量 global variable

2.減少全局變量的使用,盡量使用局部變量。迪米特法則:不要和陌生人說話,盡量讓模塊之間不要發生聯系。

3.Python搜索一個變量的方式是從局部作用域到嵌套作用域再到全局作用域,最後到內置作用域。即 local > enclose>global>built-in(l e g b)

4.如果想改變搜索範圍,可以使用global 和nonlocal關鍵字。

a = 100
def
foo(): # 函數內的局部變量,離開foo函數時無法訪問的。 local variable global a # 提升權限,變為全局變量,可以直接修改,重新定義申明的變量。 a = 200 print(a) b = good def bar(): nonlocal b
# 非局部作用域。 b = hello print(b) print(a) bar() print(b) foo() print(a)

# tips

ctrl + q 當前位置查看註釋,

ctrl + lb 返回寫註釋位置查看註釋

shift + F6 重命名

#  字符串倒過來的做法:[-1::-1]

  

Python第二周之函數及其作用域