day10 回顧和作業

2022-07-16 21:00:21 字數 4088 閱讀 3874

​ 1、函式的引數

​ 1)實參角度:位置引數、關鍵字引數、混合引數

​ 2)形參角度:位置引數、預設引數、僅限關鍵字引數,萬能引數

​ 3)形參角度引數順序:位置引數,*args,預設引數,僅限關鍵字引數,**kwargs

​ 2、*的魔性用法:

​ 1)函式的定義時:代表聚合

​ 2)函式的呼叫時:代表打散

​ 3、python中存在的三個空間:

​ 內建命名空間:儲存的內建函式:print, input.....

​ 區域性命名空間:存放的函式內部的變數與值的對應關係

​ 4、載入順序:內建命名空間------->全域性命名空間------>區域性命名空間(執行函式時候)

​ 5、調取順序:就近原則。 區域性命名空間------>全域性命名空間----->內建命名空間

​ 1) 區域性作用域只能引用全域性變數,不能修改。

​ 6、作用域:

​ 1)全域性作用域 :內建命名空間+全域性命名空間

​ 2)區域性作用域:區域性命名空間

1、看**寫結果

def func():

return 1, 2, 3

val = func()

print(val)

print(type(val) == tuple)

print(type(val) == list)

# 輸出結果:true false

2、看**寫結果

def func(*args, **kwargs):

print(args)

print(kwargs)

# a. 請將執行函式,並實現讓args的值為 (1,2,3,4)

func(1, 2, 3, 4)

func(*[1,2,3,4])

# b. 請將執行函式,並實現讓args的值為 ([1,2,3,4],[11,22,33])

func([1,2,3,4],[11,22,33])

# c. 請將執行函式,並實現讓args的值為 ([11,22],33) 且 kwargs的值為

func([11,22],33,k1='v1',k2='v2')

# d. 如執行 func(*),請問 args和kwargs的值分別是?

func(*)

# e. 如執行 func(,[11,22,33]),請問 args和kwargs的值分別是?

func(,[11,22,33])

# f. 如執行 func('武沛齊','金鑫','女神',[11,22,33],**),請問 args和kwargs的值分別是?

func('武沛齊','金鑫','女神',[11,22,33],**)

3、看**寫結果

def func(name,age=19,email='123.qq.com'):

print(name,age,email)

#a執行func('mrxiong'),判斷是否可執行,請可以訪問name、age、email的值分別是什麼?

func('mrxiong')

#b執行func('mrxiong',20),判斷是否可執行,請可以訪問name、age、email的值分別是什麼?

func('mrxiong',20)

#c執行func('mrxiong',20,30),判斷是否可執行,請可以訪問name、age、email的值分別是什麼?

func('mrxiong',20,50)

#d執行func('mrxiong,email='[email protected]'),斷是否可執行,請可以訪問name、age、email的值分別是什麼?

func('mrxiong',email='[email protected]')

#e執行func('mrxiong,email='[email protected]',age=99),斷是否可執行,請可以訪問name、age、email的值分別是什麼?

func('mrxiong',email='[email protected]',age=99)

#f執行func(name='mrxiong',99),斷是否可執行,請可以訪問name、age、email的值分別是什麼?

func(name='mrxiong',99)

#g執行func(name='mrxiong',99,'[email protected]'),斷是否可執行,請可以訪問name、age、email的值分別是什麼?

func(name='mrxiong',99,'[email protected]')

4、看**寫結果

def func(users,name):

return users

result = func(['mrxiong','張三'],'alex')

print(result)

#返回結果:

#['mrxiong', '張三', 'alex']

5、看**寫結果

def func(users,name):

return users

result = func(['mrxiong','張三'],'alex')

print(result)

輸出結果:

['mrxiong', '張三', 'alex']

6、看**寫結果

a = 10

b = 20

def test(a,b):

return a ,b

c = test(b,a)

print(c)

輸出結果:

(20, 10)

7、看**寫結果

def a(*args):

count = 0

for i in args:

count += i

return count

c = a(1,2,3,4,5)

print(c)

輸出結果:

15

1、如果你的預設引數指向的是可變的資料型別,那麼你無論呼叫多少次這個預設引數,都是指向同乙個

def func(a,list=):

return list

print(func(10,))

print(func(20,))

輸出結果:

[10]

[10, 20]

2、在函式中,如果你定義了乙個變數,但是在定義這個變數之前對其引用了,那麼直譯器認為語法問題。

你應該在使用之前先定義

count = 1

def func():

print(count)

count = 3

func()

輸出結果:

unboundlocalerror: local variable 'count' referenced before assignment

3、global 全域性

​ 1)、在區域性作用域 宣告乙個全域性變數

name = 'alex'

def func():

global name

name = 'mrxiong'

print(name)

func()

print(name)

輸出結果:

alex

mrxiong

2)可以修改乙個全域性變數

count = 1

def func1():

global count

count += 1

print(count)

func1()

print(count)

輸出結果:

12

4、nonlocal

不能夠操作全域性於變數。區域性作用域,內層函式對外層函式的區域性變數進行修改

count = 1

def inner():

nonlocal count

count += 1

print(count)

inner()

輸出結果:

1

Python基礎10 回顧

從最初的 hello world 走到物件導向,該回過頭來看看,教程中是否遺漏了什麼。我們之前提到一句話,everything is object 那麼我們就深入體驗一下這句話。需要先介紹兩個內建函式 dir 和help dir 用來查詢乙個類或者物件所有屬性,你可以嘗試一下 print dir l...

day10作業常用類

一 基礎案例 1 訓練案例1 1.1 訓練描述 陣列排序 一 需求說明 定義乙個陣列,陣列中元素為 將陣列中的元素按照從小到大的順序進行排序。1.2 操作步驟描述 1.建立乙個一維陣列,陣列內容為。2.對陣列中元素按照從小到大的順序進行排序。3.將排完序的陣列進行列印。public class te...

day10函式作業詳解

2,寫函式,接收n個數字,求這些引數數字的和。動態傳參 3,讀 回答 中,列印出來的值a,b,c分別是什麼?為什麼?a 10 b 20 def test5 a,b print a,b c test5 b,a print c 4,讀 回答 中,列印出來的值a,b,c分別是什麼?為什麼?a 10 b 2...