Python學習 我該怎麼使用函式及函式中傳遞列表

2021-08-10 22:59:22 字數 3239 閱讀 4337

為了說明什麼是函式就先用乙個例子吧:

#比如我定義乙個求和運算

defsum_1

(x,y):

a=x+y

return a

print(sum_1(2,5))

輸出:7

注意:函式是使用def定義的,def後邊是函式名,括號中是引數,括號中的引數也可以為空

當你需要使用這個函式的時候就可以直接呼叫了

sum_1()函式是帶有引數的,呼叫時也必須有引數,並且引數需要按照定義時的引數順序,如上呼叫就是x=2,y=5,這叫做位置引數,就是必須體現先後順序

如果不想按照順序輸入引數,可以採用一下形式:sum_1(y=5,x=2),不影響輸出結果,這裡不夠明顯,可以換成其他的函式,比如列印英語人名,區分firstname和lastname,就比較明顯了

1、函式中傳遞列表

以班裡新來了三個同學為例,做成列表,對三位同學表示歡迎:

#定義乙個函式,將names列表作為函式的形參(定義函式時的引數叫形參)

defstudent

(names):

for name in names:

message='歡迎 '+name+' 同學加入高一三班'

print(message)

std_names=['yangmi','zhaoliying','tangyan']

#呼叫函式,並將列表作為函式的實參(呼叫函式時的引數叫實參)

student(std_names)

輸出:

歡迎 yangmi 同學加入高一三班

歡迎 zhaoliying 同學加入高一三班

歡迎 tangyan 同學加入高一三班

2、在函式中修改列表

以點名為例,點名前站一列,點名後站到另一列,學習怎麼在函式中修改列表

defroll_call

(student_l,student_r):

while student_l:

current_call=student_l.pop()

print(current_call+'同學到了嗎')

#列印已經點過名的佇列

defcall_over

(student_r):

for name in student_r:

print(name)

student_l=['yangmi','zhaoliying','tangyan']

student_r=

roll_call(student_l,student_r)

call_over(student_r)

輸出:

tangyan同學到了嗎

zhaoliying同學到了嗎

yangmi同學到了嗎

tangyan

zhaoliying

yangmi

注意:在設計函式時,盡量讓乙個函式只實現乙個具體的工作

練習

1、建乙個學生列表,並將列表傳遞給函式,並列印每個學生的名字

def

show_student

(students):

for student in students:

print(student+'是乙個學生')

students=['yangmi','zhaoliying','tangyan','zhangjiaxin']

show_student(students)

輸出:

yangmi是乙個學生

zhaoliying是乙個學生

tangyan是乙個學生

zhangjiaxin是乙個學生

2、結合上例增加乙個函式,新增說明是三好學生的說明,並列印驗證

def

show_student

(students):

for student in students:

print(student)

defmake_great

(students):

i=0for student in students:

student=student+'是三好學生'

students[i]=student

i=i+1

return students

students=['yangmi','zhaoliying','tangyan','zhangjiaxin']

make_great(students)

show_student(students)

輸出:

yangmi是三好學生

zhaoliying是三好學生

tangyan是三好學生

zhangjiaxin是三好學生

3、由於修改時我不想修改原始列表,因此增加乙個副本進行修改,將副本和原始列表都輸出

def

show_student

(students):

for student in students:

print(student)

defmake_great

(students):

i=0for student in students:

student=student+'是三好學生'

students[i]=student

i=i+1

# print(students)

return students

students=['yangmi','zhaoliying','tangyan','zhangjiaxin']

students_2=students[:]

make_great(students_2)

show_student(students_2)

show_student(students)

輸出:

yangmi是三好學生

zhaoliying是三好學生

tangyan是三好學生

zhangjiaxin是三好學生

yangmi

zhaoliying

tangyan

zhangjiaxin

我該怎麼辦!

今天是我比較難受的一天,發現有些事情不到最後是不知什麼結局,或許你的一萬種猜想沒有一種實現,哎,作業雖然交了,但我還是心裡難受,我懂得了很多,不應對別人抱太大希望,應該自己去努力,不論結果怎麼樣但心裡是甜的,不堅持到最後一刻,或許成功還是不屬於你,就像我們副部,何苦堅持那麼久,幹了那麼多事,挨罵也接...

我該怎麼辦

想了好久,不知道該怎麼辦,家裡情況這個樣子,如今真的不知道是去是留。父親癱瘓在床,母親有些神經不正常,我應該是去上學還是留下來照顧他們。說實話,我一點都不想留下來,我沒有這個毅力,沒有一直照顧父親的毅力,也許時間長了我會厭煩,不知道說出這種話是不是算很不孝,1月份我在醫院的時候就是一直呆在了父親身邊...

Python該怎麼學?

冰凍三尺非一日之寒!學真本事,必定有枯燥難學的知識。會當臨絕頂,一定先爬山多寫,寫出好的 就是要不停的練習,唯有手熟 少問,對問題的解決能力,決定著你水平的高低 不要盲目下手,先構思 不要苛求完美,先做出效果。不管白貓黑貓,抓到老鼠就是好貓 少看部落格,多看官方手冊,僅做為參考。忘了就去查手冊 慎用...