小白自學筆記之Python入門-第三章 內(nèi)置函數(shù) & 算法-1
學習完了數(shù)據(jù)類型、變量名和基本運算符,我們再來看看Python自帶的一些數(shù)學函數(shù)、字符函數(shù)、格式函數(shù)和輸入輸出函數(shù),下面只是列出一些常用的內(nèi)置函數(shù)22個,按照字母順序排列。

看完了?回去再認真看2遍!
看完3遍了?ok,但是光看怎么行呢,一定要上機練習?。∷械暮瘮?shù)都練習三次,而且是各種不同形式的,然后才能繼續(xù)往下看!
input()、format()和print()練習寫的是啥?估計就是賊簡單的類似print("俺叫魏淑芬、女、29歲、至今未婚!")。還是重點學習一下吧!
input() 接受一個標準輸入數(shù)據(jù),返回為 string 類型,返回為 string,返回string,string,字符串。
a = input("input:")
print(type(a))
input:123
<class 'str'>
但是如何實現(xiàn)輸入數(shù)值呢?別說不會,好好想一想,前面表格了已經(jīng)介紹過相關函數(shù)了,看了三遍還不記得,跟記憶時間只有7秒鐘的魚比賽dementia呢(為了幫助你學習英語單詞,提高記憶力,這個單詞的意思是癡呆,音標[d??men??],both American accent and British accent is the same.)?回去再看看內(nèi)置函數(shù)表沒準就有思路了。
考慮我們想編程實現(xiàn)輸入兩個整數(shù),輸出他們的四則運算(這個應該知道是加減乘除吧)結果。寫代碼吧,至少可以寫出下面的。
a=input("a:")
b=input("b:")
print(a+b)
print(a-b)
print(a*b)
print(a/b)
運行程序試一下,結果為:
a:3
b:4
Traceback (most recent call last):
? File "F:/教學/2019秋/Python code/Test.py", line 4, in <module>
??? print(a-b)
TypeError: unsupported operand type(s) for -: 'str' and 'str'
34
Process finished with exit code 1
這是什么鬼?

輸入3和4,都是string 類型,字符串的“3”和字符串的“4”加“+”在一起是“34”。因為+對字符串來說是連接的意思。但是字符串沒有“-”操作,所以后面print(a-b)會提示TypeError: unsupported operand type(s) for -: 'str' and 'str',表示類型錯誤,對于字符串來說不支持“-”運算。所以后面有Process finished with exit code 1表示程序代碼錯誤(code 0的意思是運行成功)。然后咋辦呢?
“-”運算符要求是數(shù)值,而input得到的是字符串,那就字符串轉換數(shù)值唄,前面哪個函數(shù)能實現(xiàn)這個功能呢?int、float都可以啊,還有一個eval也行!但是一般來講,數(shù)值不一定就是整數(shù),所以我們用后面兩個,改吧!
a=float(input("a:"))
b=float(input("b:"))
print(a+b)
print(a-b)
print(a*b)
print(a/b)
?運行程序結果為:
a:3
b:4
7.0
-1.0
12.0
0.75
?Process finished with exit code 0
噢耶,成功! ,起來跑兩圈慶祝一下!

不過說實在的,我一直以為這個圖是粽子呢(話說今天真是端午節(jié)呢。Believe it or not,現(xiàn)在時刻2020年6月25日星期四10時50分1秒),這就是吃貨的腦洞!
format()
語法:format(value, format),其中value為任何格式的值,format是格式串,說明如下。
'<' - 左對齊結果(在可用空間內(nèi))
'>' - 右對齊結果(在可用空間內(nèi))
'^' - 居中對齊結果(在可用空間內(nèi))
'=' - 將符號置于最左側
'+' - 使用加號來指示結果是正還是負
'-' - 負號僅用于負值
' ' - 在正數(shù)前使用空格
',' - 使用逗號作為千位分隔符
'_' - 使用下劃線作為千位分隔符
'b' - 二進制格式
'c' - 將值轉換為相應的 unicode 字符
'd' - 十進制格式
'e' - 科學格式,使用小寫字母 e
'E' - 科學格式,使用大寫字母 E
'f' - 定點編號格式
'F' - 定點編號格式,大寫
'g' - 通用格式
'G' - 通用格式(將大寫 E 用作科學計數(shù)法)
'o' - 八進制格式
'x' - 十六進制格式,小寫
'X' - 十六進制格式,大寫
'n' - 數(shù)字格式
'%' - 百分百格式
?
算了,估計看兩眼就不看了,還是舉例子吧,其它的如果以后用到再試吧。
#指定3.1415926右對齊,顯示正號占10位,小數(shù)部分占2位的方式(小數(shù)點占1位),
print(format(3.1415926, '>+10.2f'))

下面的代碼可以直接復制,分析一下運行結果。
print("1234567890")?????????????? #顯示對應第幾列值,參考用
print(format(3.1415926, '>+10.2f'))?? #指定3.1415926右對齊占10位,小數(shù)占2位(小數(shù)點占1位)
print(format(25, 'd'))??????????????? #10進制形式輸出25? 25
print(format(25, '>5x'))????????????? #16進制形式輸出25 右對齊占5位? 19
print(format(25, 'o'))??????????????? #8進制形式輸出25? 31
print(format(25, '>8b'))????????????? #2進制形式輸出25? 右對齊占8位?? 11001
?運行程序結果為:
1234567890
???? +3.14
25
?? 19
31
?? 11001
?前面介紹的是format內(nèi)置函數(shù),還有一個字符串 format() 方法,一起講解方便比較。
format() 方法格式化指定的值,并將其插入字符串的占位符內(nèi)。占位符使用大括號 {} 定義,占位符 可以使用命名索引 {price}、編號索引{0}、甚至空的占位符 {} 來標識占位符。舉例如下:
#named indexes:
txt1 = "My name is {fname}, I'm {age}".format(fname = "AJ", age = 9)
#numbered indexes:
txt2 = "My name is {0}, I'm {1}".format("AJ",8)
#empty placeholders:
txt3 = "My name is {}, I'm {}".format("AJ",7)
print(txt1)
print(txt2)
print(txt3)
?運行程序結果為:
My name is AJ, I'm 9
My name is AJ, I'm 8
My name is AJ, I'm 7
?
print()用于打印輸出,直接上例子。
print("aaa""bbb")
print("aaa","bbb")
print("aaa", "bbb", sep=" ---")
print("aaa", end='this is the end')
print("bbb")
運行程序結果為:
aaabbb
aaa bbb
aaa ---bbb
aaathis is the endbbb
這是最后一個函數(shù)了,自己對照程序分析一下運行結果吧,我不想寫了,因為現(xiàn)在是2020年端午節(jié)11時35分3秒。
To be continued.?