Day3 函式引數,遞迴,切片,迭代

2021-08-31 12:01:42 字數 1282 閱讀 9234

今天中午才起床,磨蹭到學校吃了午飯坐到圖書館裡已經下午三點了……

好今天也認真地學python了呢!

python裡的位置引數和預設引數無需贅言(唯一需要說的是預設值最好是不變數,實在不行就等於none,然後在函式體裡進行預設賦值),讓人震撼的是可變引數、關鍵字引數、命名關鍵字引數。乙個乙個說:

只要在引數名前加乙個 *,這個引數就變成了可變引數,實在太強大了。在呼叫函式的時候,也可以在輸入引數的list物件前面加*,就預設分開操作了……666666666666666

在引數之前加上**,就代表接下來的引數是關鍵字引數,會自動生成字典物件

如果要限制關鍵字引數的名字,就可以用命名關鍵字引數,例如,只接收cityjob作為關鍵字引數。這種方式定義的函式如下:

def person(name, age, *, city, job):

print(name, age, city, job)

沒什麼說的- -

寫了乙個切掉字串首尾空格的程式,後來發現有人寫出了更簡潔的**,真是高下立判……學到了以後要精益求精,絕對不要想著實現功能就好,附上自己寫的和大神寫的:

import string

def trim(s):

num0=0

num1=0

flag=0#如果是隊首的空格則為0,隊尾的空格變為1

for ch in s:

if ch.isspace():

if flag==0:

num0=num0+1

else:

num1=num1+1

else:

if flag==1:

#在隊中遇到空格之後,本已經將空格計算為num1,但隨後又遇到非空格,

#說明之前計算並非句尾空格數,所以要將num1清零

num1=0

else:

flag=1

continue

if num1!=0:

s=s[:-num1]

b=s[num0:]

print('num0:',num0,'num1:',num1)

return b

大神寫的:

def trim(s):

while s!='' and s[0]==' ':

s=s[1:]

while s!='' and s[-1]==' ':

s=s[:-1]

return s

Python學習筆記DAY3 函式

關於函式,程式設計 少的了函式,python裡的函式呢,使用def 來定義,如下例子 def fun print 這是乙個函式 用def來定義,下面縮排的為函式體,呼叫的話直接呼叫函式名來實現。提到函式自然會想到引數,python裡的引數很靈活,很神奇。首先,引數是乙個變數,所以呢,元組自然是不能用...

day3 高階函式,裝飾體

階函式 高階函式 型別1 將函式作為實參的函式,可以稱為高階函式 def test1 test2 test1為高階段函式 print gl test2 def test2 print hf test1 test2 型別2 返回值中包含函式名的函式,也可以成為高階函式 def test3 test t...

C 函式模板和類模板 DAY3

1.c 編譯器模板機制剖析 編譯器編譯原理 1.gcc編譯器 支援多種語言,多種硬體平台的編譯器。通過對帶有函式模板的 進行編譯,檢視其組合語言,得到如下結論 1.編譯器並不是把函式模板處理成能夠處理任意類的函式 2.編譯器從函式模板通過具體型別產生不同的函式 編譯器會對函式模板進行兩次編譯 3.在...