- 微課學人工智能Python編程
- 李方園等編著
- 2669字
- 2023-07-24 18:58:56
1.3 基本輸入輸出和運算
1.3.1 input()函數

input()是Python的內置函數,用于從控制臺讀取用戶輸入的內容。input()函數總是以字符串的形式來處理用戶輸入的內容,所以用戶輸入的內容可以包含任何字符。
input()函數的用法為:

其中,str表示一個字符串類型的變量,input()將讀取到的字符串放入str中;tipmsg表示提示信息,它會顯示在控制臺上,告訴用戶應該輸入什么樣的內容;如果不寫tipmsg,就不會有任何提示信息。
還可以用Python的內置函數將輸入字符串轉換成想要的類型,如int(string)將字符串轉換成int類型、float(string)將字符串轉換成float類型、bool(string)將字符串轉換成bool類型等。
【例1-13】使用input()來輸入數字,并轉化為int。

運算結果如下,其中type()為類型輸出。

1.3.2 print()函數
1.多變量輸出
print()函數既可以輸出一個變量,也可以同時輸出多個變量,而且它具有更多豐富的功能。

print()函數的語法格式如下:

其中,value參數可以接受任意多個變量或值,默認以空格分隔多個變量。如果希望改變默認的分隔符,可通過sep參數進行設置,比如sep='|'等。
2.格式化字符串(格式化輸出)
print()函數使用以%開頭的轉換說明符對各種類型的數據進行格式化輸出,具體見表1-4。轉換說明符是一個占位符,它會被后面表達式(變量、常量、數字、字符串、加減乘除等各種形式)的值代替。
表1-4 格式化輸出轉換說明符

【例1-14】使用格式化輸出。

運算結果:

3.指定最小輸出寬度
可以使用下面的格式指定最小輸出寬度(至少占用多少個字符的位置):
%10d表示輸出的整數寬度至少為10;
%20s表示輸出的字符串寬度至少為20。
【例1-15】使用格式化輸出。

運算結果:

從本例的運行結果可以發現,對于整數和字符串,當數據的實際寬度小于指定寬度時,會在左側以空格補齊;當數據的實際寬度大于指定寬度時,會按照數據的實際寬度輸出,即num寬度為5,指定為%4d時,還是按照數據的實際寬度5進行輸出。
4.指定對齊方式
默認情況下,print()輸出的數據總是右對齊的。也就是說,當數據不夠寬時,數據總是靠右邊輸出,而在左邊補充空格以達到指定的寬度。Python允許在最小寬度之前增加一個標志來改變對齊方式,Python支持的標志見表1-5。
表1-5 Python支持的標志

另外需要說明的是:
1)對于整數,指定左對齊時,在右邊補0是沒有效果的,因為這樣會改變整數的值。
2)對于小數,以上三個標志可以同時存在。
3)對于字符串,只能使用“-”標志。
【例1-16】指定對齊方式。

運算結果:

5.指定小數精度
對于小數(浮點數),print()允許指定小數點后的數字位數,即指定小數的輸出精度。精度值需要放在最小寬度之后,中間用點號“.”隔開;也可以不寫最小寬度,只寫精度。具體格式如下:

其中,m表示最小寬度,n表示輸出精度,“.”必須是存在的。
【例1-17】指定小數精度和對齊方式。

運算結果:

1.3.3 算術運算符
算術運算符即數學運算符,用來對數字或其他數據類型進行數學運算,比如加減乘除。表1-6列出了Python支持的所有基本算術運算符。
表1-6 常用算術運算符及功能說明

【例1-18】算術運算實例。


運算結果:

從本例中可以看出如下幾個運算特點:
1)當“+”用于數字時表示加法,但是當“+”用于字符串時,它還有拼接字符串(將兩個字符串連接為一個)的作用。
2)“-”除了可以用作減法運算之外,還可以用作求負運算(正數變負數,負數變正數)。
3)“*”除了可以用作乘法運算,還可以用來重復字符串,即將n個同樣的字符串連接起來。
除此之外,Python還支持“/”和“//”兩個除法運算符,但它們之間是有區別的:
“/”表示普通除法,使用它計算出來的結果和數學中的計算結果相同。
“//”表示整除,只保留結果的整數部分,舍棄小數部分,是直接丟掉小數部分,而不是四舍五入。
1.3.4 賦值運算符
賦值運算符用來把右側的值傳遞給左側的變量(或者常量),可以直接將右側的值賦值給左側的變量,也可以進行某些運算后再賦值給左側的變量,比如加減乘除、函數調用、邏輯運算等。
Python中最基本的賦值運算符是等號“=”,結合其他運算符,“=”還能擴展出更強大的賦值運算符。
1.基本賦值運算符
“=”是Python中最常見、最基本的賦值運算符,用來將一個表達式的值賦給另一個變量。
2.連續賦值
Python中的賦值表達式也是有值的,它的值就是被賦的那個值,或者說是左側變量的值。如果將賦值表達式的值再賦值給另外一個變量,這就構成了連續賦值。請看下面的例子:
a=b=c=100
“=”具有右結合性,從右到左分析這個表達式:
“c=100”表示將100賦值給c,所以c的值是100;同時,“c=100”這個子表達式的值也是100。
“b=c=100”表示將c=100的值賦給b,因此b的值也是100。
以此類推,a的值也是100。
最終結果就是,a、b、c三個變量的值都是100。
需要注意的是,“=”和“==”是兩個不同的運算符,前者用來賦值,而后者用來判斷兩邊的值是否相等,千萬不要混淆。
3.擴展后的賦值運算符
“=”可與其他運算符(包括算術運算符、位運算符和邏輯運算符)相結合,擴展成為功能更加強大的賦值運算符,見表1-7。
表1-7 賦值運算符及功能說明

(續)

擴展后的賦值運算符將使得賦值表達式的書寫更加優雅和方便。當然這種賦值運算符只能針對已經存在的變量賦值,因為賦值過程中需要變量本身參與運算,如果變量沒有提前定義,它的值就是未知的,無法參與運算。
【例1-19】擴展后的賦值運算。

運算結果:

1.3.5 位運算符
位運算按照數據在內存中的二進制位(bit)進行操作,它一般用于算法設計、驅動、圖像處理、單片機等底層開發。位運算符只能用來操作整數類型,它按照整數在內存中的二進制形式進行計算。Python支持的位運算符見表1-8。
表1-8 位運算符及功能說明

左移運算符“<<”用來把操作數的各個二進制位全部左移若干位,高位丟棄,低位補0。
例如,9<<3可以轉換為如下的運算:

右移運算符“>>”用來把操作數的各個二進制位全部右移若干位,低位丟棄,高位補0或1。如果數據的最高位是0,那么就補0;如果最高位是1,那么就補1。
例如,9>>3可以轉換為如下的運算:

【例1-20】位運算。

運算結果:


本例中出現的負數,其二進制的寫法是“各位取反,再加一”。
1.3.6 比較運算符
比較運算符,也稱關系運算符,用于對常量、變量或表達式的結果進行比較大小。如果這種比較是成立的,則返回True(真),反之則返回False(假)。True和False都是bool類型,它們專門用來表示一件事情的真假,或者一個表達式是否成立。表1-9所示是比較運算符及功能說明。
表1-9 比較運算符及功能說明

【例1-21】比較運算。

運算結果:


1.3.7 邏輯運算符
與位運算類似,邏輯運算也有與、或、非,具體見表1-10。
表1-10 邏輯運算符及功能說明

【例1-22】比較運算。

運算結果:

1.3.8 運算符優先級
運算符優先級就是當多個運算符同時出現在一個表達式中時優先執行哪個運算符。
例如,對于表達式“a+b*c”,Python會先計算乘法再計算加法;b*c的結果為8,a+8的結果為24,所以d最終的值也是24。先計算*再計算+,說明*的優先級高于+。
Python支持的幾十種運算符被劃分成19個優先級,有的運算符優先級不同,有的運算符優先級相同,具體見表1-11。
表1-11 運算符優先級和結合性一覽表

- Learning Docker
- JavaScript 程序設計案例教程
- Hands-On Reinforcement Learning with Python
- Spring Boot企業級項目開發實戰
- C語言開發基礎教程(Dev-C++)(第2版)
- ArcGIS for Desktop Cookbook
- RubyMotion iOS Develoment Essentials
- QGIS 2 Cookbook
- 大學計算機基礎實訓教程
- 奔跑吧 Linux內核
- Android初級應用開發
- 深入大型數據集:并行與分布化Python代碼
- Blender 3D Cookbook
- Java Web應用開發
- 虛擬現實:引領未來的人機交互革命