【Python基礎(chǔ)】Python 3 Tutorial 專(zhuān)欄第一講:Python的簡(jiǎn)單操作、數(shù)值運(yùn)算、字符串、原位操作等
整理|Vincent
編輯|吳嚶嚶
今天開(kāi)始,我們正式邁入Python 3 Tutorial 專(zhuān)欄第一講的學(xué)習(xí)。
本講目錄:
·你的第一個(gè)程序
·簡(jiǎn)單操作
·浮點(diǎn)數(shù)
·其他數(shù)值運(yùn)算
·字符串
·簡(jiǎn)單輸入和輸出
·字符串操作
·類(lèi)型轉(zhuǎn)換
·變量
·原位操作
·使用編輯器
·你的第一個(gè)程序
·讓我們從創(chuàng)建一個(gè)顯示"Hello world!"的短程序開(kāi)始。?
·在 Python 中,我們使用 print 語(yǔ)句輸出文本:
>>> print('Hello world!')?
Hello world!
·恭喜!你已經(jīng)寫(xiě)了第一個(gè)程序。
在我們的 Code Playground 上運(yùn)行,保存和共享您的 Python 代碼,無(wú)需安裝任何其他軟件。
使用計(jì)算機(jī)時(shí),您需要從 www.python.org 下載并安裝 Python。
請(qǐng)注意上面代碼中的>>>。它們是 Python 控制臺(tái)的提示符號(hào)。Python 是一種解釋型語(yǔ)言,這意味著每一行都在輸入時(shí)執(zhí)行。Python 還包括 IDLE,即集成開(kāi)發(fā)環(huán)境,其中包括用于編寫(xiě)和調(diào)試整個(gè)程序的工具。
·打印文本
print 語(yǔ)句還可用于輸出多行文本。
例如:
>>> print('Hello world!')?
Hello world!
>>> print('Hello world!')?
Hello world!
>>> print('Spam and eggs...')?
Spam and eggs...
Python代碼通常包含對(duì)喜劇團(tuán)體Monty Python 的引用。這就是為什么:“Spam”和“eggs”這兩個(gè)詞經(jīng)常被用作Python中的占位符變量,其中“foo”和“bar”將用于其他編程語(yǔ)言。
·Python 具有執(zhí)行計(jì)算的能力。
·直接在 Python 控制臺(tái)中輸入計(jì)算,它將輸出答案。
>>> 2 + 2
4
>>> 5 + 4 - 3?
6
這里的加號(hào)和減號(hào)周?chē)目崭袷?strong style="box-sizing: border-box;">可選的(代碼可以在沒(méi)有它們的情況下工作),但它們使它更容易閱讀。
·Python 還執(zhí)行乘法和除法,使用星號(hào)表示乘法,使用正斜杠表示除法。
·使用括號(hào)來(lái)確定首先執(zhí)行哪些操作。
>>> 2 * (3 + 4)
?14
>>> 10/2
5
使用單個(gè)斜杠來(lái)劃分?jǐn)?shù)字會(huì)產(chǎn)生十進(jìn)制(或浮點(diǎn)數(shù),因?yàn)樗诰幊讨姓{(diào)用)。我們將在后面的課程中詳細(xì)介紹 floats。
·減號(hào)表示負(fù)數(shù)。
·對(duì)負(fù)數(shù)進(jìn)行操作,就像在正數(shù)上一樣。
>>> -7
-7
>>>(-7 + 2) * (-4)?
20
加號(hào)也可以放在數(shù)字前面,但這沒(méi)有作用,只強(qiáng)調(diào)一個(gè)數(shù)字有利于提高代碼的可讀性。
·在 Python 中除以零會(huì)產(chǎn)生錯(cuò)誤,因?yàn)闊o(wú)法計(jì)算答案。
>>> 11 / 0
Traceback (most recent call last):
File "
?ZeroDivisionError: division by zero
在 Python 中,錯(cuò)誤消息的最后一行表示錯(cuò)誤的類(lèi)型。
仔細(xì)閱讀錯(cuò)誤消息,因?yàn)樗鼈兘?jīng)常告訴您如何修復(fù)程序!
·Floats 在 Python 中用于表示非整數(shù)的數(shù)字。?
·表示為浮點(diǎn)數(shù)的一些數(shù)字示例是 0.5 和-7.8237591??梢酝ㄟ^(guò)輸入帶小數(shù)點(diǎn)的數(shù)字或使用整數(shù)除法等操作直接創(chuàng)建它們。數(shù)字末尾的額外零被忽略。
>>> 3/4
0.75
>>> 9.8765000?
9.8765
計(jì)算機(jī)不能完全準(zhǔn)確地存儲(chǔ)浮點(diǎn)數(shù),就像我們無(wú)法寫(xiě)下 1/3 的完整十進(jìn)制擴(kuò)展(0.3333333333333333...)一樣。記住這一點(diǎn),因?yàn)樗?jīng)常會(huì)導(dǎo)致令人激怒的錯(cuò)誤!
·如前所述,除以任意兩個(gè)整數(shù)會(huì)產(chǎn)生浮點(diǎn)數(shù)。
·在兩個(gè)浮點(diǎn)數(shù)上運(yùn)行操作,或者在浮點(diǎn)數(shù)和整數(shù)上,也可以生成浮點(diǎn)數(shù)。
>>> 8 / 2?
4.0
>>> 6 * 7.0?
42.0
>>> 4 + 1.65?
5.65
浮點(diǎn)數(shù)可以添加到整數(shù),因?yàn)?Python 會(huì)默認(rèn)地將整數(shù)轉(zhuǎn)換為浮點(diǎn)數(shù)。但是,這種隱式轉(zhuǎn)換是異常而不是 Python 中的規(guī)則-如果要對(duì)它們進(jìn)行操作,通常必須手動(dòng)轉(zhuǎn)換值。
·冪
·除了加法,減法,乘法和除法之外,Python 還支持取冪,即將一個(gè)數(shù)字提到另一個(gè)數(shù)字的冪。使用兩個(gè)星號(hào)執(zhí)行該操作。
>>> 2**5
32
>>> 9 ** (1/2)3.0
您可以將指數(shù)鏈接在一起。換句話說(shuō),您可以將數(shù)字增加到多個(gè)冪。例如,2**3**2。
·商和求余
·要確定除法的商和余數(shù),請(qǐng)分別使用取整除和取模運(yùn)算符?!な褂脙蓚€(gè)正斜杠完成取整除。
?·取模運(yùn)算符使用百分號(hào)(%)執(zhí)行。?
·這些運(yùn)算符可以與浮點(diǎn)數(shù)和整數(shù)一起使用。
·該代碼表明 20 取整除 6 等于 3,而 1.25 除以 0.5 的余數(shù)為 0.25。
>>> 20 // 6
3
>>> 1.25 % 0.50.25
在上面的示例中,20 % 6將返回2,因?yàn)? * 6 + 2等于20。
·字符串
·如果要在 Python 的中使用文本,則必須使用字符串。
·通過(guò)在兩個(gè)單引號(hào)或雙引號(hào)之間輸入文本來(lái)創(chuàng)建字符串。
·當(dāng) Python 控制臺(tái)顯示字符串時(shí),它通常使用單引號(hào)。用于字符串的分隔符不會(huì)以任何方式影響其行為。
>>> "Python is fun!"
'Python is fun!'
>>> 'Always look on the bright side of life'?
'Always look on the bright side of life'
Python 中有另一種名為 docstrings 的字符串類(lèi)型,用于塊注釋?zhuān)鼘?shí)際上是一個(gè)字符串。您將在以后的課程中了解這一點(diǎn)。
·某些字符不能直接包含在字符串中。例如,雙引號(hào)不能直接包含在雙引號(hào)字符串中;這會(huì)導(dǎo)致它過(guò)早結(jié)束。
·必須通過(guò)在它們之前放置反斜杠來(lái)轉(zhuǎn)義這些字符。
·必須轉(zhuǎn)義的其他常見(jiàn)字符有換行符和反斜杠。
·雙引號(hào)只需要在雙引號(hào)字符串中進(jìn)行轉(zhuǎn)義,單引號(hào)字符串也是如此。
>>> 'Brian\'s mother: He\'s not the Messiah. He\'s a very naughty boy!'
'Brian's mother: He's not the Messiah. He's a very naughty boy!'
·\ n 表示新行。
反斜杠也可用于轉(zhuǎn)義制表符,任意 Unicode 字符以及無(wú)法可靠打印的各種其他內(nèi)容。這些字符稱(chēng)為轉(zhuǎn)義字符。
·換行
·Python 提供了一種簡(jiǎn)單的方法來(lái)避免手動(dòng)編寫(xiě)"\n"來(lái)轉(zhuǎn)義字符串中的換行符。創(chuàng)建一個(gè)包含三組引號(hào)的字符串,按 Enter 鍵創(chuàng)建的換行符將自動(dòng)為您轉(zhuǎn)義。
>>> """Customer: Good morning.
Owner: Good morning, Sir. Welcome to the National Cheese Emporium."""
'Customer: Good morning.\nOwner: Good morning, Sir. Welcome to the NationalCheese Emporium.'
如您所見(jiàn),\n 在我們按 Enter 鍵的地方自動(dòng)輸出。
·輸出
·通常,程序接受輸入并處理它以產(chǎn)生輸出。
·在 Python 中,您可以使用 print 函數(shù)來(lái)生成輸出。這會(huì)在屏幕上顯示某些內(nèi)容的文本表示。
>>> print(1 + 1)
2
>>> print("Hello\nWorld!")?
Hello
World!
打印字符串時(shí),不會(huì)顯示其周?chē)囊?hào)。
·輸入
·要在 Python 中獲得用戶(hù)的輸入,您可以使用直觀命名的輸入函數(shù)。
·該功能提示用戶(hù)輸入,并返回它們作為字符串輸入的內(nèi)容(內(nèi)容自動(dòng)轉(zhuǎn)義)。
>>> input("Enter something please: ")
Enter something please: This is what\nthe user enters!
'This is what\\nthe user enters!'
在 Python 控制臺(tái)上,打印和輸入功能不是很有用,它自動(dòng)進(jìn)行輸入和輸出。但是,它們?cè)趯?shí)際程序中非常有用。
·連接
·與整數(shù)和浮點(diǎn)數(shù)一樣,可以通過(guò)連接添加 Python 中的字符串,這可以在任何兩個(gè)字符串上完成。
·連接字符串時(shí),它們是用單引號(hào)還是雙引號(hào)創(chuàng)建并不重要。
>>> "Spam" + 'eggs''Spameggs'
>>> print("First string" + ", " + "second string")?
First string, second string
您不能使用數(shù)字(整數(shù))連接字符串。在下一課中找出原因。
·即使您的字符串包含數(shù)字,它們?nèi)匀蛔鳛樽址皇钦麛?shù)添加。將字符串添加到數(shù)字會(huì)產(chǎn)生錯(cuò)誤,即使它們看起來(lái)相似,但它們是兩個(gè)不同的實(shí)體。
>>> "2" + "2"
'22'
>>> 1 + '2' + 3 + '4'
Traceback (most recent call last):
File "
TypeError: unsupported operand type(s) for +: 'int' and 'str'
在將來(lái)的課程中,只會(huì)顯示最后一行錯(cuò)誤消息,因?yàn)樗俏ㄒ灰粋€(gè)提供有關(guān)已發(fā)生錯(cuò)誤類(lèi)型的詳細(xì)信息的消息。
·字符串操作
·字符串也可以乘以整數(shù)。這會(huì)生成原始字符串的重復(fù)版本。字符串和整數(shù)的順序無(wú)關(guān)緊要,但字符串通常是第一位的。
·字符串不能與其他字符串相乘。即使浮點(diǎn)數(shù)是整數(shù),字符串也不能乘以浮點(diǎn)數(shù)。
>>> print("spam" * 3)?
spamspamspam
>>> 4 * '2'?
'2222'
>>> '17' * '87'
TypeError: can't multiply sequence by non-int of type 'str'
>>> 'pythonisfun' * 7.0
TypeError: can't multiply sequence by non-int of type 'float'
嘗試將字符串乘以 0,看看會(huì)發(fā)生什么。
·在 Python 中,由于涉及的類(lèi)型,不可能完成某些操作。例如,您不能將包含數(shù)字 2 和 3 的兩個(gè)字符串一起添加以生成整數(shù) 5,因?yàn)椴僮鲗⒃谧址蠄?zhí)行,結(jié)果為'23'。
·解決方案是類(lèi)型轉(zhuǎn)換。
·在該示例中,您將使用 int 函數(shù)。
>>> "2" + "3"
'23'
>>> int("2") + int("3")
?5
在 Python 中,到目前為止我們使用的類(lèi)型是整數(shù),浮點(diǎn)數(shù)和字符串。用于轉(zhuǎn)換為這些的函數(shù)分別是 int,float 和 str。
·類(lèi)型轉(zhuǎn)換的另一個(gè)例子是將用戶(hù)輸入(字符串)轉(zhuǎn)換為數(shù)字(整數(shù)或浮點(diǎn)數(shù)),以便進(jìn)行計(jì)算。
>>> float(input("Enter a number: ")) + float(input("Enter another number: "))
Enter a number: 40
Enter another number: 2
42.0
傳遞非整數(shù)或浮點(diǎn)值將導(dǎo)致錯(cuò)誤。
·變量
·變量在大多數(shù)編程語(yǔ)言中起著非常重要的作用,Python 也不例外。變量允許您通過(guò)將值分配給名稱(chēng)來(lái)存儲(chǔ)值,該名稱(chēng)可用于在之后的程序中引用該值。
·要分配變量,請(qǐng)使用一個(gè)等號(hào)。與我們迄今為止所看到的大多數(shù)代碼行不同,它不會(huì)在 Python 控制臺(tái)上產(chǎn)生任何輸出。
>>> x = 7
>>> print(x)
7
>>> print(x + 3)?
10
>>> print(x)
7
您可以使用變量執(zhí)行相應(yīng)的操作,就像使用數(shù)字和字符串一樣。如您所見(jiàn),變量在整個(gè)程序中存儲(chǔ)其值。
·可以根據(jù)需要多次重新分配變量,以便更改其值。
·在 Python 中,變量沒(méi)有特定的類(lèi)型,因此您可以將字符串分配給變量,然后將整數(shù)分配給同一個(gè)變量。
>>> x = 123.456
>>> print(x)
123.456
>>> x = "This is a string"?
>>> print(x + "!")
This is a string!
但是,這不是好習(xí)慣。為避免錯(cuò)誤,請(qǐng)盡量避免使用不同的數(shù)據(jù)類(lèi)型覆蓋相同的變量。
·嘗試引用未分配的變量會(huì)導(dǎo)致錯(cuò)誤。
·您可以使用 del 語(yǔ)句刪除變量,這意味著將刪除從名稱(chēng)到值的引用,并嘗試使用該變量會(huì)導(dǎo)致錯(cuò)誤。刪除的變量可以正常重新分配。
>>> foo = "a string"
>>> foo
'a string'
>>> bar
NameError: name 'bar' is not defined?
>>> del foo
>>> foo
NameError: name 'foo' is not defined
·您還可以從用戶(hù)輸入中獲取變量的值。
>>> foo = input("Enter a number: ")?
Enter a number: 7
>>> print(foo)
7
變量 foo 和 bar 稱(chēng)為偽變量,這意味著它們?cè)谑纠a中用作占位符名稱(chēng)來(lái)演示某些內(nèi)容。
·原位操作允許您更簡(jiǎn)潔地編寫(xiě)類(lèi)似'x = x + 3'的代碼,如'x + = 3'。
·其他運(yùn)算符也可以使用相同的功能,例如 -、*、/和%。
>>> x = 2
?>>> print(x)?
2
>>> x += 3?
>>> print(x)?
5
·這些運(yùn)算符也可以用于數(shù)字以外的類(lèi)型,例如字符串。
>>> x = "spam"?
>>> print(x)?
spam
>>> x += "eggs"?
>>> print(x)?
spameggs
許多其他語(yǔ)言都有特殊的運(yùn)算符,例如'++'作為'x + = 1'的快捷方式。Python 沒(méi)有這些。
·到目前為止,我們只使用 Python 與控制臺(tái),一次輸入和運(yùn)行一行代碼。
?·實(shí)際程序的創(chuàng)建方式不同;許多代碼行都寫(xiě)在一個(gè)文件中,然后用 Python 解釋器執(zhí)行。
·在 IDLE 中,可以通過(guò)創(chuàng)建新文件,輸入一些代碼,保存文件和運(yùn)行它來(lái)完成。這可以通過(guò)菜單或鍵盤(pán)快捷鍵 Ctrl-N,Ctrl-S 和 F5 完成。
·文件中的每行代碼都被解釋為您在控制臺(tái)上一次輸入一行代碼。
x=7?
x=x+2?
print(x)
結(jié)果

·Python 源文件的擴(kuò)展名為.py
您可以在我們的 Code Playground 上運(yùn)行,保存和共享您的 Python 代碼,而無(wú)需安裝任何其他軟件。
如果需要在計(jì)算機(jī)上安裝軟件,請(qǐng)參閱本課程。
往期精彩回顧
本站qq群704220115,加入微信群請(qǐng)掃碼:
