官术网_书友最值得收藏!

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ā)生什么?

主站蜘蛛池模板: 睢宁县| 会泽县| 东阿县| 凉山| 固安县| 即墨市| 北流市| 梁山县| 晋江市| 锡林郭勒盟| 泌阳县| 上栗县| 姜堰市| 迭部县| 偃师市| 南涧| 乐昌市| 东山县| 贡觉县| 夏津县| 庄河市| 三门县| 彰化市| 永福县| 巴林右旗| 普格县| 潞城市| 长岛县| 桂阳县| 商南县| 延庆县| 石林| 视频| 襄汾县| 社旗县| 长治县| 军事| 乐东| 集贤县| 灵石县| 江口县|