1. 程式人生 > >第7課 初識函數

第7課 初識函數

file ase charm shell 調用 mage ast 修改 input

一、函數

1、函數的概念:封裝一段代碼,實現特定功能的代碼塊。

2、函數的定義:def func():

  1)代碼不重復

  2)修改方便

def func():
    print(step1...)
    print(step2...)

func() #函數的調用

# 輸出結果
step1...
step2...

3、函數的效果類似---變量

  1)變量:一個對象的名字

  2)函數:一段代碼的名字

4、函數在調用的時候才能執行函數體裏面的代碼

>>> def func():
      print(函數)

    
>>> func()  #
調用函數 函數 >>> type(func) # 查看類型 <class function>

5、函數的定義一定在函數的調用之前

6、type(func)----<class ‘function‘>

7、None:函數無返回值---沒有return

def func():
    print(step1...)
    print(step2...)

func()
print(func())

# 輸出結果

step1...
step2...
step1...
step2...
None  # 無返回值

  加上return

def
func(): print(step1...) print(step2...) return 我是返回值 func() print(func()) # 結果顯示 step1... step2... step1... step2... 我是返回值

8、def func(a, b): ----a,b為必填形參

  1)形參:形式主義,在函數定義的時候

  2)實參:實際運行,在函數調用的時候

9、在pycharm中,如果形參被使用,則顯示為亮色,否則是灰色的。如下,a被調用,顯示為橙色,b未被調用,顯示為灰色。

技術分享圖片

  函數中參數的賦值

>>> def
func(a, b):   a = 100 # 函數內部,a被賦值為100   print(a) >>> func(1, 2) #函數調用時,a的初始值為1 100 # 所以,輸出結果為100

10、func(a = 1, 2),函數的錯誤調用。前面是 變量 = 值 的形式,後面一定也用這樣的形式。

>>> func(1, 2)
100
>>> def func(a, b):
      print(a + b)

    
>>> func(a = 1, 2)   # 這樣寫是錯誤的
SyntaxError: positional argument follows keyword argument
>>> func(a=1, b=2)   # 如果是 變量 = 值,後面要保持隊形
3

11、return a + b----返回值,使用return返回值

>>> def func(a, b):
      return a + b

>>> sumData = func(1, 2)
>>> print(sumData)
3

  或者直接寫成下面的形式。print(func(1, 2))等價於:

  1)func(1, 2)函數的調用

  2)print(3)

>>> def func(a, b):
      return a + b

>>> print(func(1, 2))
3

12、全局變量:在函數外部定義的變量

>>> name = Tom  # 全局變量
>>> def func():
      print(name)

    
>>> func()
Tom
>>> print(name)
Tom

13、局部變量:在函數內部定義的變量,它的生存空間只在函數內部。在函數外部不能被引用。

>>> def fun1():
      name = Lily  # 局部變量
      print(name)

    
>>> fun1()
Lily
>>> print(name)  # 在函數外部不能被引用
Traceback (most recent call last):
  File "<pyshell#5>", line 1, in <module>
    print(name)
NameError: name name is not defined

14、return可以返回任意類型

>>> def fun():
      return [1, 2, 3, 4, 5, 6, 7, 8, 9]  # 返回列表

>>> fun()
[1, 2, 3, 4, 5, 6, 7, 8, 9]
>>> def fun1():
      return (1, 2, 3)  # 返回元組

>>> fun1()
(1, 2, 3)

  1)函數一旦執行return,該函數就調用完成;函數內部的return後面的語句就沒有任何意義

>>> def fun():
      print(調用return前)
      return 調用return
      print(本句不執行!)

    
>>> fun()
調用return前
調用return

15、類型轉換:str()、int()、float()

  1)int(a):a一定是整數值,否則會報錯

>>> a = xxyy
>>> int(a)
Traceback (most recent call last):
  File "<pyshell#21>", line 1, in <module>
    int(a)
ValueError: invalid literal for int() with base 10: xxyy

  2)類型轉換的使用舉例

>>> data = input(請輸入一個數值:)
請輸入一個數值:3
>>> type(data)
<class str>
>>> print(data + 68)
Traceback (most recent call last):
  File "<pyshell#28>", line 1, in <module>
    print(data + 68)
TypeError: must be str, not int
>>> print(int(data) + 68)
71
# 或者用下面的方法,直接在輸入時轉換成int型
>>> data = int(input(請輸入一個數值:))
請輸入一個數值:6
>>> type(data)
<class int>
>>> print(data + 89)
95

第7課 初識函數