這個(gè)筆記主要是關(guān)于python語(yǔ)言本身的一些概念。
在Python中有4種類型的數(shù)——整數(shù)、長(zhǎng)整數(shù)、浮點(diǎn)數(shù)和復(fù)數(shù)。如:2是一個(gè)整數(shù)的例子。 3.23和52.3E-4是浮點(diǎn)數(shù)的例子。E標(biāo)記表示10的冪。在這里,52.3E-4表示52.3 * 10-4。 (-5+4j)和(2.3-4.6j)是復(fù)數(shù)的例子。
你可以用單引號(hào)指示字符串,就如同'Quote me on this'這樣。所有的空白,即空格和制表符都照原樣保留。在雙引號(hào)中的字符串與單引號(hào)中的字符串的使用完全相同。使用三引號(hào)('''或""")可以指示一個(gè)多行的字符串。可以在三引號(hào)中自由的使用單引號(hào)和雙引號(hào)。轉(zhuǎn)義符是\,可以用\'來(lái)指示單引號(hào)—注意這個(gè)反斜杠。
變量的名字就是標(biāo)識(shí)符。在命名標(biāo)識(shí)符的時(shí)候,你要遵循這些規(guī)則:
● 標(biāo)識(shí)符的第一個(gè)字符必須是字母表中的字母(大寫或小寫)或者一個(gè)下劃線(‘ _’)。
● 標(biāo)識(shí)符名稱的其他部分可以由字母(大寫或小寫)、下劃線(‘ _ ’)或數(shù)字(0-9)組成。
● 標(biāo)識(shí)符名稱是對(duì)大小寫敏感的。例如,myname和myName不是一個(gè)標(biāo)識(shí)符。注意前者中
的小寫n和后者中的大寫N。
● 有效 標(biāo)識(shí)符名稱的例子有i、__my_name、name_23和a1b2_c3。
● 無(wú)效 標(biāo)識(shí)符名稱的例子有2things、this is spaced out和my-name。
使用變量時(shí)只需要給它們賦一個(gè)值。不需要聲明或定義數(shù)據(jù)類型。
物理行是你在編寫程序時(shí)所看見的。邏輯行是Python 看見的單個(gè)語(yǔ)句。Python假定每個(gè)物理行對(duì)應(yīng)一個(gè)邏輯行。如果你想要在一個(gè)物理行中使用多于一個(gè)邏輯行,那么你需要使用分號(hào)(;)來(lái)特別地標(biāo)明這種用法。分號(hào)表示一個(gè)邏輯行/語(yǔ)句的結(jié)束。
Python程序中行首的空白稱為縮進(jìn),是非常重要的,它用來(lái)決定邏輯行的縮進(jìn)層次,從而用來(lái)決定語(yǔ)句的分組。類似于C++中的花括號(hào)。同一層次的語(yǔ)句必須有相同的縮進(jìn),每一組這樣的語(yǔ)句稱為一個(gè)塊(Block)。
表2.1 運(yùn)算符與它們的用法
運(yùn)算符 |
名稱 |
說(shuō)明 |
例子 |
+ |
加 |
兩個(gè)對(duì)象相加 |
3 + 5得到8。'a' + 'b'得到'ab'。 |
- |
減 |
得到負(fù)數(shù)或是一個(gè)數(shù)減去另一個(gè)數(shù) |
-5.2得到一個(gè)負(fù)數(shù)。50 - 24得到26。 |
* |
乘 |
兩個(gè)數(shù)相乘或是返回一個(gè)被重復(fù)若干次的字符串 |
2 * 3得到6。'la' * 3得到'lalala'。 |
** |
冪 |
返回x的y次冪
|
3 ** 4得到81(即3 * 3 * 3 * 3) |
/ |
除 |
x除以y |
4/3得到1(整數(shù)的除法得到整數(shù)結(jié)果)。4.0/3或4/3.0得到1.3333333333333333 |
// |
取整除 |
返回商的整數(shù)部分 |
4 // 3.0得到1.0 |
% |
取模 |
返回除法的余數(shù) |
8%3得到2。-25.5%2.25得到1.5 |
<< |
左移 |
把一個(gè)數(shù)的比特向左移一定數(shù)目(每個(gè)數(shù)在內(nèi)存中都表示為比特或二進(jìn)制數(shù)字,即0和1) |
2 << 2得到8。——2按比特表示為10 |
>> |
右移 |
把一個(gè)數(shù)的比特向右移一定數(shù)目 |
11 >> 1得到5。——11按比特表示為1011,向右移動(dòng)1比特后得到101,即十進(jìn)制的5。 |
& |
按位與 |
數(shù)的按位與 |
5 & 3得到1。 |
| |
按位或 |
數(shù)的按位或 |
5 | 3得到7。 |
^ |
按位異或 |
數(shù)的按位異或 |
5 ^ 3得到6 |
~ |
按位翻轉(zhuǎn) |
x的按位翻轉(zhuǎn)是-(x+1) |
~5得到6。 |
< |
小于 |
返回x是否小于y。所有比較運(yùn)算符返回1表示真,返回0表示假。這分別與特殊的變量True和False等價(jià)。注意,這些變量名的大寫。 |
5 < 3返回0(即False)而3 < 5返回1(即True)。比較可以被任意連接:3 < 5 < 7返回True。 |
> |
大于 |
返回x是否大于y |
5 > 3返回True。如果兩個(gè)操作數(shù)都是數(shù)字,它們首先被轉(zhuǎn)換為一個(gè)共同的類型。否則,它總是返回False。 |
<= |
小于等于 |
返回x是否小于等于y |
x = 3; y = 6; x <= y返回True。 |
>= |
大于等于 |
返回x是否大于等于y |
x = 4; y = 3; x >= y返回True。 |
== |
等于 |
比較對(duì)象是否相等 |
x = 2; y = 2; x == y返回True。x = 'str'; y = 'stR'; x == y返回False。x = 'str'; y = 'str'; x == y返回True。 |
!= |
不等于 |
比較兩個(gè)對(duì)象是否不相等 |
x = 2; y = 3; x != y返回True。 |
not |
布爾“非” |
如果x為True,返回False。如果x為False,它返回True。 |
x = True; not y返回False。 |
and |
布爾“與” |
如果x為False,x and y返回False,否則它返回y的計(jì)算值。 |
x = False; y = True; x and y,由于x是False,返回False。在這里,Python不會(huì)計(jì)算y,因?yàn)樗肋@個(gè)表達(dá)式的值肯定是False(因?yàn)閤是False)。這個(gè)現(xiàn)象稱為短路計(jì)算。 |
or |
布爾“或” |
如果x是True,它返回True,否則它返回y的計(jì)算值。 |
x = True; y = False; x or y返回True。短路計(jì)算在這里也適用。 |
表2.2 運(yùn)算符優(yōu)先級(jí)
運(yùn)算符 |
描述 |
lambda |
Lambda表達(dá)式 |
or |
布爾“或” |
and |
布爾“與” |
not x |
布爾“非” |
in,not in |
成員測(cè)試 |
is,is not |
同一性測(cè)試 |
<,<=,>,>=,!=,== |
比較 |
| |
按位或 |
^ |
按位異或 |
& |
按位與 |
<<,>> |
移位 |
+,- |
加法與減法 |
*,/,% |
乘法、除法與取余 |
+x,-x |
正負(fù)號(hào) |
~x |
按位翻轉(zhuǎn) |
** |
指數(shù) |
x.attribute |
屬性參考 |
x[index] |
下標(biāo) |
x[index:index] |
尋址段 |
f(arguments...) |
函數(shù)調(diào)用 |
(experession,...) |
綁定或元組顯示 |
[expression,...] |
列表顯示 |
{key:datum,...} |
字典顯示 |
'expression,...' |
字符串轉(zhuǎn)換 |
Format |
Meaning |
"c" |
Single character (i.e., string of length 1) |
"B" |
Unsigned 8-bit integer |
"h" |
Short (16-bit) integer |
"i" |
32-bit integer |
"f" |
32-bit float |
"d" |
Double-precision (64-bit) float |
"2" |
String of fixed size (see below) |
Table 18.2: Packing Format Specifiers |
在Python中有三種控制流語(yǔ)句——
if
、
for
和
while,
Python中if-elif-else語(yǔ)句類似于C++中的if-elseif-else;
Python中for i in range(0,5)等價(jià)于
C/C++中的for (int i = 0; i < 5; i++)
。程序中使用內(nèi)建的range
函數(shù)生成這個(gè)數(shù)的序列。range
返回一個(gè)序列的數(shù)。這個(gè)序列從第一個(gè)數(shù)開始到第二個(gè)數(shù)為止。例如,range(1,5)
給出序列[1, 2, 3, 4]
。默認(rèn)地,range
的步長(zhǎng)為1。如果我們?yōu)?code>range
提供第三個(gè)數(shù),那么它將成為步長(zhǎng)。例如,
range(1,5,2)
給出
[1,3]
。記住,range
向上 延伸到第二個(gè)數(shù),即它
不包含第二個(gè)數(shù)。
while語(yǔ)句是循環(huán)語(yǔ)句,
while
語(yǔ)句有一個(gè)可選的
else
從句。
break
語(yǔ)句是用來(lái) 終止 循環(huán)語(yǔ)句的,即哪怕循環(huán)條件沒有稱為False
或序列還沒有被完全遞歸,也停止執(zhí)行循環(huán)語(yǔ)句。
一個(gè)重要的注釋是,如果你從for
或while
循環(huán)中終止 ,任何對(duì)應(yīng)的循環(huán)else
塊將不執(zhí)行。
posted on 2009-07-14 22:36
鷹擊長(zhǎng)空 閱讀(291)
評(píng)論(0) 編輯 收藏 引用