- Python編程基礎(chǔ)與自動化測試
- 茅雪濤等編著
- 1339字
- 2022-05-06 16:13:41
4.3 我會做加法
學習目標
學習算術(shù)運算符、賦值運算符和數(shù)字操作。
知識準備
運算符與表達式
Python大多數(shù)語句都包含了表達式(Expressions)。一個表達式的簡單例子便是“5+7”。表達式可以拆分成運算符(Operators)與操作數(shù)(Operands)。其中5 和7 被稱為操作數(shù),中間的加號稱為運算符。
為了完成本節(jié)的“挑戰(zhàn)問題”,需要學習算術(shù)運算符和賦值運算符。
算術(shù)運算符包括:加(+)、減(-)、乘(*)、除(/)、模(%)、冪(**)6種運算符,在Python里面還增加了整除運算符(//)。我們來執(zhí)行下面這段代碼:

這里需要重點理解Python中的整除運算符,我們舉個例子,執(zhí)行下面這段代碼。

我們可以看到,Python中的除法是一種浮點運算,采用向下取整除法。
賦值運算符,就是在以上七個運算符的基礎(chǔ)上,增加了直接賦值的運算符,共有八個:+=、-=、*=、/=、%=、**=、//=、=。嘗試執(zhí)行以下代碼。

字符串類型和整型轉(zhuǎn)換
我們先來執(zhí)行以下代碼。

我們期望這段代碼的輸出結(jié)果應(yīng)該是2,然而計算機得出的答案卻是11。這是為什么呢?是不是很困惑?
細心的你或許發(fā)現(xiàn)了其中的端倪,這里a和b兩個變量都被賦值了字符串。程序執(zhí)行字符串相加操作,會將兩個字符串拼接起來,而不是邏輯運算。
怎么解決這種問題呢?Python為我們提供了用于類型轉(zhuǎn)換的int()方法。
int()方法可以將浮點類型、字符串類型等轉(zhuǎn)換成int型。讓我們一起改造這段代碼。

這下“1+1”真的等于2了。
說完了字符串類型轉(zhuǎn)整型,我們再來介紹其他類型轉(zhuǎn)字符串的方法。
str()方法可以將整型、浮點類型、列表類型等轉(zhuǎn)換成字符串類型。

挑戰(zhàn)問題
編寫一個Python程序computer.py,實現(xiàn)以下功能。程序首先打印“請輸入第一個數(shù)字:”,待用戶輸入第一個數(shù)字并按回車鍵后,打印“請輸入第二個數(shù)字:”,待用戶輸入第二個數(shù)字并按回車鍵后,打印輸出“兩個數(shù)之和為:[兩個數(shù)字之和]”。
運行結(jié)果如圖4.14所示。圖中“123”和“321”為輸入內(nèi)容。

圖4.14
注意:請在10分鐘內(nèi)閉卷完成本“挑戰(zhàn)問題”。如果第一次不能閉卷完成或者完成時間超時,請將編寫的程序刪除后重做一次。
難點提示
input()函數(shù)的返回值默認是字符串,不能直接用于計算。
當遇到下面的錯誤提示信息,請仔細分辨報錯的原因:
ValueError:invalid literal for int()with base 10:'qqww'
這是因為程序中包含非數(shù)字的字符串'qqww'無法轉(zhuǎn)換成整數(shù),所以運行報錯了。

這是因為程序中整型變量和字符串型變量無法相加,導致出現(xiàn)類型錯誤,所以運行報錯了。

這是因為程序中傳入的參數(shù)未被格式化,所以運行報錯了。
在進行字符串格式化的時候,可能出現(xiàn)部分傳入的參數(shù)沒有被格式化。如果是打印的時候出現(xiàn),一般是print()方法中的占位符的個數(shù)與輸入的參數(shù)不匹配。

上面代碼的print()函數(shù)中,第一個參數(shù)只有一個占位符(%s),而后面的參數(shù)卻試圖傳遞包含兩個元素的元組,所以出現(xiàn)了TypeError的錯誤。
知識點
語言基礎(chǔ)知識要點
(1)Python有7個算術(shù)運算符,要記住它們。
(2)這7個算術(shù)運算符和等號結(jié)合,就組成了七個賦值運算符;加上等號本身,組成八個賦值運算符,要記住它們。
(3)Python支持四種不同的數(shù)值類型:整型(int)、浮點數(shù)類型(float)、長整型(long)、復(fù)數(shù)類型(complex),其中前兩種是必須熟練掌握的。
(4)input()函數(shù)得到的返回值默認是字符串。
(5)字符串類型與數(shù)字類型的轉(zhuǎn)換方法:int()函數(shù)是將括號里的參數(shù)轉(zhuǎn)換成整型,str()函數(shù)是將括號里的參數(shù)轉(zhuǎn)換成字符串。
拓展
在上面的“挑戰(zhàn)問題”完成后,請嘗試在輸入第一個數(shù)字的時候,輸入“abc”,看看會發(fā)生什么?
- 營銷數(shù)據(jù)科學:用R和Python進行預(yù)測分析的建模技術(shù)
- 假如C語言是我發(fā)明的:講給孩子聽的大師編程課
- Mastering LibGDX Game Development
- Learning AndEngine
- Android 應(yīng)用案例開發(fā)大全(第3版)
- Bootstrap 4:Responsive Web Design
- Microsoft Azure Storage Essentials
- App Inventor創(chuàng)意趣味編程進階
- HoloLens與混合現(xiàn)實開發(fā)
- SwiftUI極簡開發(fā)
- Java程序設(shè)計教程
- 快樂編程:青少年思維訓練
- Java并發(fā)實現(xiàn)原理:JDK源碼剖析
- 企業(yè)級Java現(xiàn)代化:寫給開發(fā)者的云原生簡明指南
- Splunk Essentials