零基礎入門學習Python(17) 函式的引數

2021-10-19 15:47:26 字數 4083 閱讀 8576

引數從呼叫的角度來說,分為形式引數(parameter)和實際引數(argument)

1.形式引數

2.實際引數

attention:在定義函式的時候,位置引數必須在預設引數的前面,否則會出錯

0. 請問以下哪個是形參哪個是實參?

def

myfun

(x):

return x **

3y =

3print

(myfun(y)

)

x為形參,y為實參

形参指的是函式建立和定義過程中小括號裡的引數,而實參指的是函式在呼叫過程中傳遞進去的引數

1. 函式文件和直接用「#」為函式寫注釋有什麼不同?

給函式寫文件是為了讓別人可以更好的理解你的函式,所以這是乙個好習慣

在函式開頭寫下的字串ta是不會列印出來的,但ta會作為函式的一部分儲存起來,這個我們稱之為函式文件字串,ta的功能跟注釋是一樣的。

2. 使用關鍵字引數,可以有效避免什麼問題的出現呢?

關鍵字引數,是指函式在呼叫的時候,帶上引數的名字去指定具體呼叫的是哪個引數,從而可以不用按照引數的順序呼叫函式,可以避免引數先後順序出錯

3. 使用help(print)檢視print()這個bif有哪些預設引數?分別起到什麼作用?

objects引數是乙個收集引數,如果傳入多個引數,將會依次列印出來

sep引數指定多個引數之間的分隔符

end引數指定以什麼字元結束列印,預設是換行符

file引數指定輸出的位置

flush、指定是否強制重新整理快取

4. 預設引數和關鍵字引數表面最大的區別是什麼?

關鍵字引數是在函式呼叫的時候通過引數名制定需要賦值的引數,這樣就不會因為搞不清引數的順序而使得函式呼叫出現莫名其妙的錯誤

預設引數是在引數定義的過程中為形參賦初值,當函式呼叫時,如果忘記傳遞引數,那麼就會自動找預設值,而使得呼叫函式不會出現錯誤

5.編寫乙個符合以下要求的函式:

6.尋找水仙花數 題目要求:如果乙個3位數等於其各位數字的立方和,則稱這個數為水仙花數。例如153 = 13+53+3^3,因此153是乙個水仙花數。編寫乙個程式,找出所有的水仙花數。my code

小甲魚

def

narcissus()

:for each in

range

(100

,1000):

temp = each

sum=0

while temp:

#temp最後整除不了10時迴圈結束

sum=

sum+

(temp%10)

**3#先加個位數的立方,再加十位數的立方,最後加百位數的立方,

temp = temp //

10# 注意這裡用地板除,百位數立方加完後,temp為百位數,除以10為0,此時迴圈結束

ifsum

== each:

print

(each, end=

'\t'

)# \t表示製表符

print

("所有的水仙花數分別是:"

7.編寫乙個函式 findstr(),該函式統計乙個長度為 2 的子字串在另乙個字串**現的次數。例如:假定輸入的字串為「you cannot improve your past, but you can improve your future. once time is wasted, life is wasted.」,子字串為「im」,函式執行後列印「子字母串在目標字串中共出現 3 次」。

我的**,缺點:若子字元不在字串中,是有問題的

def

findstr

(string,substr)

: string =

input

("請輸入目標字串:"

) substr =

input

("請輸入子字串(兩個字元):"

) times =

0#次數

j =0#索引值

for i in string:

a = i + string[j +1]

#a為兩個字串,依次往後移

if a == substr:

times +=

1 j = j +

1#索引後移一位

if j ==

len(string)-1

:#保證j+1break

print

("子字串在目標字串中共出現"

,end ='')

print

(times,end ='')

print

('次'

)

小甲魚

def

findstr

(desstr, substr)

: count =

0#計數

length =

len(desstr)

if substr not

in desstr:

print

('在目標字串中未找到字串!'

)else

:for each1 in

range

(length-1)

:#因為索引是從0開始的

if desstr[each1]

== substr[0]

:#第一位相同

if desstr[each1+1]

== substr[1]

:#第二位也相同

count +=

1#那麼次數加一

print

('子字串在目標字串中共出現 %d 次'

% count)

desstr =

input

('請輸入目標字串:'

)substr =

input

('請輸入子字串(兩個字元):'

)findstr(desstr, substr)

零基礎入門學習Python

課程介紹 前半部分主要講解python3的語法特性,後半部分著重講解python3在爬蟲 tkinter pygame遊戲開發等例項上的應用。整個系列共16個章節,前邊13個章節從乙個小遊戲引入python,逐步介紹python的語法以及語言特色。最後3個章節為案例的演示,是前邊內容的總結和提高。課...

零基礎入門學習python

1.從idie啟動python idle是乙個python shell,shell的意思就是 外殼 從基本上說,就是乙個通過輸入本與程式互動的途徑。像windows的cmd的視窗,像linux那個黑乎乎的命令視窗,它們都是shell,利用它們,就可以給作業系統下達命令。同樣,可以利用idle這個sh...

Python零基礎入門

python零基礎入門 第一周前言 最近在簡單學習python,在之前的學習中也只對c語言有了乙個粗略的了解,可以說在程式設計方面沒有什麼基礎,當然這也是我第一次寫部落格,希望自己越學越好,希望自己加油 在這一周中,還是學習到了不少的東西,也希望把自己學到的東西寫下來,來加強對python的學習,若...