今天中午才起床,磨蹭到學校吃了午飯坐到圖書館裡已經下午三點了……
好今天也認真地學python了呢!
python裡的位置引數和預設引數無需贅言(唯一需要說的是預設值最好是不變數,實在不行就等於none,然後在函式體裡進行預設賦值),讓人震撼的是可變引數、關鍵字引數、命名關鍵字引數。乙個乙個說:
只要在引數名前加乙個 *,這個引數就變成了可變引數,實在太強大了。在呼叫函式的時候,也可以在輸入引數的list物件前面加*,就預設分開操作了……666666666666666
在引數之前加上**,就代表接下來的引數是關鍵字引數,會自動生成字典物件
如果要限制關鍵字引數的名字,就可以用命名關鍵字引數,例如,只接收city
和job
作為關鍵字引數。這種方式定義的函式如下:
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.在...