1.1 安裝 python
1.1.1 Windows
登錄官網(wǎng),下載對應(yīng)版本后點擊安裝就可以了。
1.1.2 Linux 和 UNIX
在linux 上用pyenv 進行 Python 多版本的管理。
1.1.3 蘋果機
登錄官網(wǎng),下載對應(yīng)版本后雙擊掛載就可以了。
1.1.4 其他發(fā)行版本
除官方版本以外,還可以嘗試 ActivePython 版本,它與標準版的最大區(qū)別在于額外包含了許多獨立的工具(模版)。如果你用 Windows 的話,Active Python 絕對值得一試。
1.1.5 時常關(guān)注,保持更新。
訪問相應(yīng)版本的發(fā)布頁面,可以查看該版本的特性。
還可以訪問 Python 郵件列表(https://mail.python.org/mailman/listinfo) 來了解最新發(fā)布的第三方 Python 模塊和軟件資訊。
1.2 交互式解釋器
在已安裝 python 的 linux 上,輸入 python 后即可打開 交互式解釋器
1.3 算法是什么
算法是對“如何做某事的一種詳細描述”。同義詞:步驟。
1.4 數(shù)字和表達式
- 在多數(shù)情況下,常用算數(shù)運算符的功能和計算器的相同。
- 數(shù)值的除法(/)總是返回一個浮點數(shù),要獲取整數(shù)使用//操作符。舉個例子:
>>> 1/2
0.5
>>> 1//2 #取整數(shù)
0
- 特殊運算符
%,是取余運算符。舉個例子:
>>> 10 % 3 # 10 除以 3余 1
1
>>> 9 % 3 # 9 除以 3 余 0
0
- 冪(乘方)運算
冪運算符比取反(一元減運算符)的等級要高,所以 -3 2 等同于 -(32)。如果想要計算(-3)**2,就需要顯式說明。舉個例子:
>>> 2**3
8
>>> -3**2
-9
>>> (-3)**2
9
1.4.1 長整數(shù)
python3 中已經(jīng)取消了長整數(shù),可以用 int()函數(shù),來獲得數(shù)據(jù)類型。
1.4.2 十六進制和八進制
十六進制和八進制的首位數(shù)字都是0(數(shù)字零)。舉個例子:
>>> hex(12) #`hex()`函數(shù)可以將十進制轉(zhuǎn)換為八進制
'0xc' # 數(shù)字零+小寫字母'xc'
>>> oct(12) #`oct()`函數(shù)可以將十進制轉(zhuǎn)換為十六進制
'0o14' # 數(shù)字零+小寫字母'0'+數(shù)字14
1.5 變量
變量即代表(或者引用)某值的名字,例如:
>>> x=3
變量名可以包括字母、數(shù)字和下劃線(_) ,變量名不能以數(shù)字開頭,所以 plan9 是正確的,9plan是錯誤的。
1.6 語句
語句是做某件事(即告訴計算機做什么)。其一般特征是:對某一事物進行了改變。例如:用 print()語句改變了屏幕顯示的內(nèi)容,用賦值語句改變了變量。
>>> print(2*2)
4
>>> x = 3
>>>
注:表達式則是只是單純的表示某件事, 例如:
>>> 2*2
1.7 獲取用戶輸入
可以用input()函數(shù)來獲取用戶輸入的變量值。例如:
>>> x = input( "x: ")
x:34
1.8 函數(shù)
函數(shù)是已經(jīng)編寫好的,用來實現(xiàn)特定功能的代碼段。
1.9 模塊
一些函數(shù)的集合,可以導入到 Python 中擴展其功能。執(zhí)行命令為 import 模塊名。例如:
>>> import math
>>> math.floor(32.9)
>>> 32
在確定自己不會導入多個同名函數(shù)(從不同模塊中)的情況下,可以使用import命令的另一種形式:
>>> from math import sqrt
>>> sqrt(9)
3.0
注: from ... import ... 語句,有可能會導致隱藏的沖突,所以若非真的需要 from 這個形式的 模塊導入語句,否則應(yīng)該堅持使用普通的 import 語句。
1.10 保存并執(zhí)行程序
- 保存程序:將寫好的代碼保存到后綴是
.py的文件中。 - 運行程序:
- 命令行下可以直接執(zhí)行:
python /路徑/文件名.py。 - Windows 視窗下可以直接雙擊文件運行。
- 注釋程序:符號為 井號(#),在它右邊的一切內(nèi)容都會被忽略。
注:程序員應(yīng)該確保注釋說的都是重要的事情,而不要重復(fù)代碼中顯而易見的內(nèi)容。
1.11 字符串
字符串即一串字符,有多種用法,但其中最主要的用法是表示一些文本。例如:Hello, World!。
1.11.1 單引號字符串和轉(zhuǎn)義引號
單引號和雙引號的效果是一樣的,可以交叉使用,但不能混用。例如:
>>> ' "Hello, World!" she said' # 正確
' "Hello, World!" she said'
>>> "Hello, World!' # 錯誤
File "<stdin>", line 1
"Hello, World!'
^
SyntaxError: EOL while scanning string literal如果語句中存在單/雙引號,需要使用反斜線(\)對其進行轉(zhuǎn)義:
>>>'Let's go!' #都是單引號
"Let's go!"
>>>""Hello,World!" she said" #都是雙引號
'"Hello,World!" she said'
>>>"Let's say 'Hello,World!'?" #單雙引號混用-正確
"Let's say 'Hello,World!'"
>>>'Let's say "Hello,World!"?' #單雙引號混用-錯誤
'Let's say "Hello,World!"'
1.11.2 拼接字符串
使用+像進行加法運算一樣進行拼接,例如:
>>>"Hello, "+"World!"
'Hello, World!'
1.11.3 字符串表示,str() 和 repr()
- 將值轉(zhuǎn)化為字符串的機制有兩種,分別是:
str()函數(shù)和repr()函數(shù)。 - 他們的主要區(qū)別是:函數(shù)
str()讓字符串更易于閱讀,而repr()則把字符串轉(zhuǎn)換為合法的 Python 表達式。
1.11.4 input() 和 raw_input() 的比較
Python3.x 已經(jīng)把 input()和raw_input() 整合在一起,沒有 raw_input() 了。
1.11.5 長字符串、原始字符串和Unicode
-
長字符串由于跨越多行,所以可以用三個單引號代替('''),表示形式如下:
print('''This is a very long string. Itcontinues here. And it's not over yet. "Hello, World! " Still here. ''') 原始字符串
原始字符串以r開頭,它不會將反斜線當成特殊字符。在原始字符串中輸入的每個字符串都會與書寫的方式保持一致。舉例子:
#我們知道\n可以表示為換行,并可放于字符串中,如下:
>>> print('hello, \nworld !')
hello,
world !
#如果我們不想換行呢?這時原始字符串就派上用場了。
>>> print(r' C:\nowhere ')
C:\nowhere
注意:原始字符串不能以反斜線(\)結(jié)尾,如果最后一個字符是反斜線的話,可以將其單獨作為一個字符串來處理。例如:
>>>print(r' C:\nowhere' '\') #結(jié)尾的反斜線用反斜線進行轉(zhuǎn)義,所以其形式寫為 '\'
C:\nowhere\
1.12 小結(jié)
- 本章學到的東西:
- 算法:
算法是對如何完成一項任務(wù)的詳盡描述。實際上,在編寫程序的時候,就是用計算機能夠理解的語言來描述算法。這種對機器友好的描述就叫程序。程序主要包含表達式和語句。 - 表達式:
表達式用于表示值。例如;2+2是表達式,表示數(shù)值4。簡單的表達式是通過使用運算符(如+或者%)和函數(shù)(如pow())對字面值(比如2或者“Hello”)進行處理而構(gòu)建起來的。通過把簡單的表達式聯(lián)合起來可以構(gòu)建更加復(fù)雜的表達式(如(-2-2)*(-5+6))。表達式也可以包含變量。 - 變量:
變量是一個名字,用于表示某個值。通過x=2這樣的賦值可以為變量賦予新的值。賦值也是一類語句。 - 語句:
語句是告訴計算機做某些事的指令。它可能設(shè)計改變變量(如賦值操作)、向屏幕打印內(nèi)容(如print('Hello, World! '))、導入模塊或者許多其它操作。 - 函數(shù):
和數(shù)學中的函數(shù)類似,可以帶有參數(shù),并且返回值。 - 模塊:
模塊是對 Python 功能的一些拓展,可以被導入到 Python 中。例如:math 模塊中就有許多有用的數(shù)學函數(shù)。 - 程序:
程序主要由表達式和語句構(gòu)成。 - 字符串:
字符串就是文本片段,由一串字符構(gòu)成。
- 本章涉及到的新函數(shù)
| 函數(shù) | 描述 |
|---|---|
| abs(number) | 返回數(shù)字的絕對值 |
| cmath.sqrt(number) | 返回平方根,也可用應(yīng)用于負數(shù) |
| float(object) | 將字符串和數(shù)字轉(zhuǎn)換為浮點數(shù),默認提供17位精度(小數(shù)點后16位) |
| help() | 提供交互式幫助 |
| input() | 獲取用戶輸入 |
| int(object) | 將字符串和數(shù)字轉(zhuǎn)換為整數(shù) |
| long(object) | 將字符串和數(shù)字轉(zhuǎn)換為長整數(shù),在Python3.x 中已經(jīng)和int()整合了 |
| math.ceil(number) | 返回數(shù)的上入整數(shù),返回一個大于或等于 x 的最小整數(shù) |
| math.floor(number) | 返回數(shù)的下入整數(shù),返回一個等于或小于 x 的最大整數(shù) |
| math.sqrt(number) | 返回平方根,不適用于負數(shù) |
| pow(x, y[, z]) | 返回 x 的 y 次冪,所得結(jié)果對 z 取余數(shù),符號[ ]表示z是可選參數(shù) |
| raw_input(prompt) | 或者用戶輸入,結(jié)果被看作原始字符串,在Python3.x 中已經(jīng)和input()整合了 |
| repr(boject) | 將返回的字符串轉(zhuǎn)換為合法的 Python 表達式 |
| round(number[, ndigits]) | 根據(jù)給定的精度對數(shù)字進行四舍五入,符號[ ]表示精度是可選參數(shù),默認精度精確到個位。 |
| str | 將值轉(zhuǎn)換為字符串 |