python学习笔记三一 函数学习
函數學習
range函數
?生成有序的序列
?生成數字隊列可以定制
1
2
3
4
5
6
7
8
9
1
2
3
4
5
6
7
8
9
函數
?函數是代碼的一種組織形式
?函數能完成一項特地的工作,一般 一個函數值完成一項工作
?有些語言中,分兩個概念 :函數和過程 ,有返回結果的叫函數,無返回結果的叫做過程,在python中不加以區分
?函數的使用:
?函數需要提前定義
?使用函數,俗稱 調用
?定義一個函數
?只是定義函數的話是不會被執行的,只有調用時才執行
?1,def關鍵字,后跟一個空格
?2,函數名字,自己定義,起名需要遵循便令命名規則,約定俗稱,大駝峰命名只給類用
?3,后面括號和冒號不能省略,括號內可以由參數
?4,函數內所有代碼縮進
參數
str
list,tupe,set,map
#定義函數案例 #def 空格 括號 def hanshu1():print ("在同一個縮進內的才是函數內容")print("我是一個函數") print ("因為不在一個縮進內所以不是函數")因為不在一個縮進內所以不是函數
#函數的調用 #直接寫出函數的名字,后面的小括號不能省略,括號內的內容根據情況(定義函數時是否輸入東西就是參數) hanshu1()在同一個縮進內的才是函數內容
我是一個函數
函數的參數和返回值
?參數:負責給函數傳遞一些必要的數據或者信息?形參(形式參數):在函數定義的時候用到的參數,沒有具體值,只是一個占位符好
?實參(實際參數):在調用函數的時候輸入的值
?返回值; 調用函數的時候的一個執行結果?使用 return 返回結果
?如果沒有值需要返回,推薦使用 return None 表示函數結束
?函數一旦執行return,則函數立即結束
?如果函數沒有return 關鍵字,則返回默認的None
雨,你在干嘛啊?
雨,我很想你。
雨雨,你在干嘛啊?
雨雨,我很想你。
雨雨,你在干嘛啊?
雨雨,我很想你。
小雨,你在干嘛啊?
小雨,我很想你。
None
Help on built-in function print in module builtins:
print(…)
print(value, …, sep=’ ‘, end=’\n’, file=sys.stdout, flush=False)
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81
1
2 4
3 6 9
4 8 12 16
5 10 15 20 25
6 12 18 24 30 36
7 14 21 28 35 42 49
8 16 24 32 40 48 56 64
9 18 27 36 45 54 63 72 81
參數詳解
?參數分類
?普通參數/位置參數
?默認參數
?關鍵字參數
?收集參數
4
NameError Traceback (most recent call last)
in
9 print (A + C)
10 return None
—> 11 a2(1,2,3,)#普通參數也叫位置參數因下面參數和上面未對應上所以報錯
12
NameError: name ‘a2’ is not defined
# 默認參數案例 def default_para(A,B,C=100):print (A + B)print (C)#c就是默認參數return None default_para(100,200)300
100
3
10
3
10
STR字符串
?str
?轉義字符
?格式化
?內建函數
字符串
?表示文字信息
?用單引號,雙引號,三引號括起來
i love una
轉義字符
?用一個特色的方法表示出一系列不方便寫出的內容,比如回車鍵,換行符,退格鍵等
?借助反斜杠字符,一旦字符串中出現反斜杠,則反斜杠后面一個或者幾個字符表示已經不是原來的意思了,進行了轉義
?在字符串中,一旦出現反斜杠就要加倍小心,可能有轉義字符出現
?不同系統對 換行操作有不同的表示
?windows: \n
?linux: \r\n
Let’s Go
Let’s Go
C:\etc\mnt
I
love
una
I
love
una
?轉義字符:\ (反斜杠-可以打印出一個反斜杠)
?轉義字符:’ (單引號-可以打印出一個單引號)
?轉義字符:" (雙引號-可以打印出一個雙引號)
?轉義字符:\a (響鈴-用于觸發系統蜂鳴器)
?轉義字符:\n (換行符-將光標移動到下一行的開頭)
?轉義字符:\t (水平制表符-將光標向右移動一個制表符位)
格式化
?把字符串按照一定格式打印出來或者填充
?格式化分類?傳統格式化
?format
i love una
i love yangyu
i love yuyu
字符串的傳統格式化方法
?使用%進行格式化
?%(百分號)也叫占位符?%s:字符串?%r :字符串,但是是使用repr而不是str
?%c : 整數轉換為單個字符
?%d : 十進制整數
?%u : 無符號整數
?%o : 表示八進制
?%x : 十六進制,字母為小寫(x為小寫)
?%X : 十六進制,字母為小寫(X為小寫)
?%e : 浮點數(e為小寫),例如2.87e+12
?%E : 浮點數(E為小寫),例如2.87E+12
?%f,%F : 浮點數十進制形式
?%g,%G : 十進制形式浮點數或者指數浮點數自動轉換
?格式符前邊出現"-“表示左對齊
?格式符前邊出現”+"表示右對齊
?0位數不足用”0“補齊
?width表示寬度
?pricision 精度
i love %s
i love una
i love 小雨
i love 雨雨
i love 520
gemoumou同學現在120斤了,感覺瘦了不少
TypeError Traceback (most recent call last)
in
2 print (a%120)
3 #以下打印會出錯
----> 4 print (a%“120”)
TypeError: %d format: a number is required, not str
b = "i am %fKG weight,%fM height" print (b) #如果需要格式化的信息多個,則用括號括起來 print (b%(60,175))#實際需要進行格式化的信息數量必須與百分號后面的出的數據量匹配,否則報錯 # 如下面例子,實際需要格式化的為4個地方,但是給出的數據為三個,則報錯 b = "i am %.2fKG weight,%.2fM height" #%.2的意思就是小數點后面幾位的意思 print (b%(60,175))i am %fKG weight,%fM height
i am 60.000000KG weight,175.000000M height
i am 60.00KG weight,175.00M height
format格式化
?使用函數形式進行格式化,代替以前的百分號
hello una!
hello una!
hello una
una una
i love una and 雨雨 i love me
我是gpc,我最喜歡una
我是gpc,我最喜歡una,我們要幸福一輩子
#對數字的格式化需要用到 s = "gpc is {:.2f}m heigh,{:.2f}kg weight" print (s.format(1.73, 60.00)) #使用大括號{}來轉移大括號 s = "format 函數是使用{}來進行占位" print (s)gpc is 1.73m heigh,60.00kg weight
format 函數是使用{}來進行占位
str 內置函數
?很多語言字符串使用 string表示,但是python中用str表示字符串
?字符串查找類, find index,islower
?find :查找字符串中是否包含一個子串
?index : 跟find的唯一區別是index如果找不到會異常報錯
?rfind ,lfind : 從左開始查找或者從右開始查找
Help on method_descriptor:
find(…)
S.find(sub[, start[, end]]) -> int
-1
s.index (s1)19
#index 會報錯或者引發異常 s.index (s2)ValueError Traceback (most recent call last)
in
----> 1 s.index (s2)
ValueError: substring not found
#使用的時候可以使用區間 a = "ge peng cheng love yang yu and yu yu" s1 = "yu" #從下表20開始查找,看能否找到 a.find (s1,24)24
判斷類函數
?此類函數的特點一般使用is開頭,比如 islower
?isalpha:判斷是否是字母,需要注意兩點:
?此函數默認的前提是字符串至少包含一個字符,如果沒有,同樣返回false
?漢字被認為是 alpha,所以此函數不能作為區分英語字母還是漢字表示,區分中英文請使用unicode碼
?注意使用區別,防止被坑
?isdigit,isnumeric,isdecimal 三個判斷數字的函數
?此類函數不建議使用,在后期爬蟲中,判斷是否是數字采用正則表達式的方式
False
False
False
False
True
False
內容判斷類
?startswith/endswith : 是否以xxx開頭或者結尾
?檢測某個字符串是否以某個子串開頭,常用三個參數
?suffix:被檢查的字符串,必須有
?start : 檢查范圍的開始
?end : 檢查范圍的結尾
?isupper/slower:判斷字符串是否是大寫或者小寫
gpc = "ge peng cheng" yy = "yang yu" l = "ge peng cheng love yang yu"print (gpc.startswith(gpc)) print (yy.endswith(yy))True
True
True
False
True
False
False
操作類函數
?format : 格式化用的
?strip : 用于移除字符串頭尾指定的字符(默認為空格或換行符)或字符序列。?lstrip rstrip
?join : 對字符串進行拼接(是吧可迭代的字符串拼接在一起,中間使用調用字符串作為分隔符)
l = " ge peng cheng love yang yu " # strip 刪除末尾空格或者換行符 print (l.strip()) print (l) #join案例 s1 = "!!!!!" s2 = "________" s3 = " " ss= ["ge pengcheng","yangyu","una","gpc"] print (s1.join(ss)) print (s2.join(ss)) print (s3.join(ss))ge pengcheng!!!yangyu!!!una!!!gpc
ge pengcheng________yangyu________una________gpc
ge pengcheng yangyu una gpc
總結
以上是生活随笔為你收集整理的python学习笔记三一 函数学习的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 云服务器共享文件如何访问权限,怎么设置共
- 下一篇: python学习笔记一 一变量与运算符