《Python基礎(chǔ)教程》第1章 基礎(chǔ)知識

編程語言之間很多概念是互通的,對于和Java或者JavaScript已經(jīng)重復(fù)的基礎(chǔ)內(nèi)容,不再筆記,只挑選比較常用和不同的地方予以記錄。

本章目錄

  • 安裝Python
  • 交互式解釋器
  • 算法是什么
  • 數(shù)字和表達(dá)式
  • 變量()
  • 語句()
  • 獲取用戶輸入
  • 函數(shù)()
  • 模塊
  • 保存并執(zhí)行程序
  • 字符串
  • 小結(jié)()

安裝Python

Mac OS上默認(rèn)安裝了Python,除非你需要安裝新版本的可以參考 官方下載。[注:Terminal上輸入python發(fā)現(xiàn)個(gè)人版本是2.7.8。到官網(wǎng)上查看發(fā)布?xì)v史,也是醉了,早些時(shí)候已經(jīng)到了3.4.2,而最近的版本居然是2.7.9 ]

除了官方的發(fā)布版本外,還有很多Python的版本可供下載,每個(gè)版本側(cè)重功能可能會有不同。因此如果聽說某Python前面加個(gè) i 或者 j 叫成 iPython 或者 jPython 八成就是其他發(fā)布版本,不要覺得新奇。

交互式解釋器

在Terminal輸入python即進(jìn)入了交互式解釋器,輸入一些有意義的語句既可看到響應(yīng)。

算法是什么

算法是我們?yōu)榱诉_(dá)成目的,告訴計(jì)算機(jī)該要怎么做的一個(gè)步驟。

數(shù)字和表達(dá)式

使用交互式解釋器可以做一些很基本的算術(shù)運(yùn)算:
>>> 2 + 2
4
>>> 53672 + 235253
288925
>>> 1/2
0

如上的最后一個(gè)表達(dá)式,兩個(gè)整數(shù)相除結(jié)果為整數(shù),那么要讓它不按照計(jì)算機(jī)語言處理方式,而只按照日常計(jì)算的方式有兩種做法:

  • 用浮點(diǎn)數(shù)進(jìn)行運(yùn)算。只要有一個(gè)數(shù)為浮點(diǎn)數(shù),結(jié)果就為浮點(diǎn)數(shù):
>>> 1.0 / 2.0
0.5
>>> 1 / 2.0
0.5
>>> 1.0 / 2
0.5
  • 讓Python改變除法的執(zhí)行方式
>>> from __future__ import division
>>> 1 / 2
0.5

如上,從__future__中導(dǎo)入了division。這個(gè)時(shí)候要用整除就要使用雙斜桿了。

>>> 1 // 2
0

還有一個(gè)取余運(yùn)算符比較常用,注意的是取余運(yùn)算符對浮點(diǎn)數(shù)也適用。

>>> 2.75 % 0.5
0.25

最后介紹一個(gè)冪(乘方)運(yùn)算符:
>>> 3 ** 2
9
>>> -3 ** 2
-9
>>> (-3) ** 2
9

長整形數(shù)

受計(jì)算機(jī)存儲單位的限制,所有整數(shù)不能大于某個(gè)數(shù)(也不能小于某個(gè)數(shù)),如果超出Python會自動轉(zhuǎn)換為長整型數(shù),當(dāng)然你也可以自己定義的時(shí)候就加上L在后面,如下是定義和運(yùn)算的例子:

>>> 1000000000000000000000
1000000000000000000000L
>>> 2987198739107239812 * 1239827389479283479283
3703610814563136332097919362350014814796L
十六進(jìn)制和八進(jìn)制
>>> 0xAF
175
>>> 010
8

獲取用戶輸入

>>> x = input('x:')
x:4
>>> y = input('y:')
y:3
>>> print x*y
12

模塊

可以把模塊當(dāng)作導(dǎo)入到Python中增強(qiáng)功能的擴(kuò)展,有兩種導(dǎo)入形式:

>>> import math
>>> int(math.floor(32.99))
32

>>> from math import sqrt
>>> sqrt(9)
3.0
cmatch和復(fù)數(shù)

cmatch被用來處理虛數(shù)、復(fù)數(shù)之類,幾乎沒機(jī)會用到的吧,略。

回到__furture__

一些在將來會成為Python語言特性的功能會被假如到模塊__furture__中,在前面已經(jīng)有接觸到過這個(gè) 模塊。

保存并執(zhí)行程序

將程序片段保存在py為后綴的文件后,可以通過python file.py進(jìn)行執(zhí)行。如下介紹配置python文件為可執(zhí)行文件的做法。

在文件的首行加上 #!usr/bin/env python,然后命令行給文件加上可執(zhí)行屬性 chmod a+x hello.py 就能執(zhí)行命令行鍵入 ./hello.py 執(zhí)行代碼了。(注:個(gè)人PC上的Python版本是2.7.8,不同版本不同操作系統(tǒng),需要添加的行首內(nèi)容或執(zhí)行命令可能會有不同)示例代碼如下:

#!usr/bin/python

name = raw_input('What is your name ?')
print 'Hello,' + name + '!'

直接通過雙擊也是可以的,但是輸入結(jié)果以后程序運(yùn)行完畢后就直接關(guān)閉了,加入如下代碼即可:

raw_input("Press <enter>")

字符串

引號與轉(zhuǎn)譯
>>> "Hello, World!"
'Hello, World!'

如上,輸入的時(shí)候是用的雙引號,實(shí)際輸出卻是單引號,在Python中兩者沒有區(qū)別,那么為什么不統(tǒng)一用單或者雙引號呢,看如下例子:

>>> "Let's go!"
"Let's go!"

在一些場合會需要輸出單引號(或者雙引號)的,除了單雙引號交替以外,還可以使用\將引號進(jìn)行轉(zhuǎn)譯,比如:

>>> 'Let\' go!'
"Let's go!"
拼接字符串

如下是拼接字符串的常規(guī)做法:

>>> "Hello," + " World!"
'Hello, World!'
>>> x = "Hello,"
>>> y = " World!"
>>> x + y
'Hello, World!'
字符串表示str和repr
>>> "Hello, World!" 
'Hello, World!'
>>> 1000L
1000L
>>> print "Hello, World!"
Hello, World!
>>> print 1000L
1000

如上示例中我們可以看到,Python打印的字符串是有引號括起來的,而print函數(shù)打印的字符串是沒有。差別就在于這是用來兩種不同的字符串轉(zhuǎn)換機(jī)制,前者是用repr將內(nèi)容轉(zhuǎn)化為Python代碼中的形式,后者使用str將內(nèi)容轉(zhuǎn)化為方便用戶看的形式,上面的示例等同于下面的寫法:

>>> print repr("Hello, World!")
'Hello, World!'
>>> print repr(1000L)
1000L
>>>print str("Hello, World!")
'Hello, World!'
>>>print str(1000L) 
1000

另外還有一個(gè)知識點(diǎn)請看如下示例:

>>> temp = 42
>>> print "The number is: " + temp
error
>>> print "The number is: " + \`temp\`
The number is: 42

直接將字符串和數(shù)字拼接是會報(bào)錯(cuò)的(寫慣了js這點(diǎn)還是感覺蠻意外的),而通過如上寫法等同于調(diào)用了repr(temp),將temp轉(zhuǎn)化為了字符串“42”所以正常拼接后輸出了。

input和raw_input的比較

input會把用戶輸入當(dāng)做一個(gè)合法的結(jié)果,比如命令行執(zhí)行 input("What's your name ?") 用戶直接輸入名字Lucy是會報(bào)錯(cuò)的,需要輸入內(nèi)容裹上字符串才行,如"Lucy"。而raw_input相當(dāng)于替你作了這個(gè)事情,將輸入內(nèi)容作為raw數(shù)據(jù)然后替你包裹成字符串。除非有特殊需要,一般很少用input來做數(shù)據(jù)輸入的。

特殊的字符串
  • 長字符串
    在文本內(nèi)容跨多行的時(shí)候,可以使用三引號包裹的寫法。

  • 原始字符串

通過形如\n的方式我們可以使用一些轉(zhuǎn)譯字符,但是在一些路徑的表示中,我們可能并不希望有些字符被轉(zhuǎn)移,這時(shí)候可以通過在字符前加上r來將字符表示為原始字符串:
>>> print "C:\nowhere"
C:
owhere
>>> print r"C:\nowhere"
C:\nowhere

唯一要注意的是,原始字符串的最后一個(gè)字符串不能是反斜桿否則會報(bào)錯(cuò)。 做法是將最后一個(gè)反斜桿單獨(dú)作為一個(gè)字符串來處理:

>>> print  r"C:\nowhere\"
error
>>> print  r"C:\nowhere" "\\"
C:\nowhere\
Unicode字符串

Python中的字符串是一ANSII來表示的,如果需要用Unicode的方式來存儲可以使用如下寫法:

>>> u"Hello, World!"
u'Hello, World!'

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容