pyhton基礎(chǔ)
縮進(jìn)方式
Python的語(yǔ)法比較簡(jiǎn)單,采用縮進(jìn)方式。
# print absolute value of an integer:
a = 100
if a >= 0:
print(a)
else:
print(-a)
以#開(kāi)頭的語(yǔ)句是注釋。
語(yǔ)句以冒號(hào):結(jié)尾時(shí),縮進(jìn)的語(yǔ)句視為代碼塊。
按照約定俗成的管理,應(yīng)該始終堅(jiān)持使用4個(gè)空格的縮進(jìn)。
Python程序是大小寫(xiě)敏感的。
數(shù)據(jù)類型
整數(shù),浮點(diǎn)數(shù),字符串,布爾值,空值,list,tuple,dict,set。
-
整數(shù)
- 有符號(hào)數(shù)。
- 無(wú)大小限制。
- 整數(shù)運(yùn)算精確。
-
浮點(diǎn)數(shù)
- 與整數(shù)存儲(chǔ)方式不同。
- 浮點(diǎn)數(shù)運(yùn)算不精確。
-
字符串
- 單引號(hào)
''、雙引號(hào)""括起來(lái)的任意文本。 - 轉(zhuǎn)義字符
\。 -
'''...'''的格式表示多行內(nèi)容。
- 單引號(hào)
在交互式命令行內(nèi)輸入情況如下,其中...為輸入line1后按下回車(chē)后的提示符
>>> print('''line1
... line2
... line3''')
line1
line2
line3
在.py文件中
print('''line1
line2
line3''')
line1
line2
line3
多行字符串'''...'''還可以在前面加上r使用
在.py文件中
print(r'''hello,\n
world''')
hello,\n
world
- 布爾值
- 只有
True、False兩種值(注意大小寫(xiě))。 - 可以用
and、or和not運(yùn)算。
- 只有
- 空值
- 用
None表示。 -
None不能理解為0,因?yàn)?code>0是有意義的,而None是一個(gè)特殊的空值。
- 用
- list 列表
- 有序集合,可以添加和刪除元素。
- 索引從
0開(kāi)始,可以用負(fù)數(shù)做索引。 -
len()函數(shù)獲得list元素個(gè)數(shù)。 - append()追加元素到末尾。
- insert()把元素插入到指定位置。
- pop()刪除末位元素,pop(i)刪除索引i的元素。
- 替換,直接給對(duì)應(yīng)索引位置賦值。
- list里面元素?cái)?shù)據(jù)類型可以不同。
>>> classmates = ['Michael', 'Bob', 'Tracy'] >>> classmates ['Michael', 'Bob', 'Tracy'] >>> len(classmates) 3 >>> classmates[-1] 'Tracy' >>> classmates.append('Adam') >>> classmates ['Michael', 'Bob', 'Tracy', 'Adam'] >>> classmates.insert(1, 'Jack') >>> classmates ['Michael', 'Jack', 'Bob', 'Tracy', 'Adam'] >>> classmates.pop(1) 'Jack' >>> classmates ['Michael', 'Bob', 'Tracy'] >>> classmates[1] = 'Sarah' >>> classmates ['Michael', 'Sarah', 'Tracy'] >>> L = ['Apple', 123, True] >>> L = [] >>> len(L) 0 - tuple 元組
- 有序列表。
- 一旦初始化就不能修改,沒(méi)有append(),insert()這樣的方法,如果可能,能用tuple代替list就盡量用tuple。
- 只有1個(gè)元素的tuple定義時(shí)必須加一個(gè)逗號(hào)
,。
>>> t = (1,) >>> t (1,) - dict 字典
- 其他語(yǔ)言中也稱為map,使用鍵-值(key-value)存儲(chǔ),具有極快的查找速度。key必須是不可變對(duì)象。
- 把數(shù)據(jù)放入dict:初始化、通過(guò)key賦值(多次對(duì)一個(gè)key放入value會(huì)覆蓋;key不存在報(bào)錯(cuò)。)
- 判斷key是否存在:
in,get()- key
indict - dict提供的get()方法,如果key不存在,可以返回None,或者自己指定的value。
注意:返回None的時(shí)候Python的交互環(huán)境不顯示結(jié)果
- key
>>> d = {'Michael': 95, 'Bob': 75, 'Tracy': 85} >>> 'Thomas' in d False >>> d.get('Thomas') >>> d.get('Thomas', -1) -1pop(key),刪除key,對(duì)應(yīng)的value也會(huì)從dict中刪除。
dict內(nèi)部存放的順序和key放入的順序是沒(méi)有關(guān)系的。
-
與list的比較
dict- 查找和插入的速度極快,不會(huì)隨著key的增加而變慢;
- 需要占用大量的內(nèi)存,內(nèi)存浪費(fèi)多。
list
- 查找和插入的時(shí)間隨著元素的增加而增加;
- 占用空間小,浪費(fèi)內(nèi)存很少。
所以,dict是用空間來(lái)?yè)Q取時(shí)間的一種方法。
- set 集合
- 一組key的集合,但不存儲(chǔ)value。由于key不能重復(fù),所以,在set中,沒(méi)有重復(fù)的key。
- 不有序。
- add(key)添加元素??梢灾貜?fù)添加,但不會(huì)有效果。
- remove(key)刪除元素。
>>> s = set([1, 2, 3]) >>> s {1, 2, 3} >>> s.add(4) >>> s {1, 2, 3, 4} >>> s.add(4) >>> s {1, 2, 3, 4} >>> s.remove(4) >>> s {1, 2, 3}
變量、常量、運(yùn)算
-
變量
- 在Python中,等號(hào)
=是賦值語(yǔ)句,可以把任意數(shù)據(jù)類型賦值給變量,同一個(gè)變量可以反復(fù)賦值,而且可以是不同類型的變量。 - 這種變量本身類型不固定的語(yǔ)言稱之為動(dòng)態(tài)語(yǔ)言,與之對(duì)應(yīng)的是靜態(tài)語(yǔ)言。靜態(tài)語(yǔ)言在定義變量時(shí)必須指定變量類型,如果賦值的時(shí)候類型不匹配,就會(huì)報(bào)錯(cuò)。例如Java是靜態(tài)語(yǔ)言。
- 在Python中,等號(hào)
-
常量
- 在Python中,通常用全部大寫(xiě)的變量名表示常量。
-
運(yùn)算
-
/除法計(jì)算結(jié)果是浮點(diǎn)數(shù)。 -
//地板除只取結(jié)果的整數(shù)部分。 -
%取余運(yùn)算。
-
控制語(yǔ)句
- 條件判斷
if- if語(yǔ)句執(zhí)行有個(gè)特點(diǎn),它是從上往下判斷,如果在某個(gè)判斷上是True,把該判斷對(duì)應(yīng)的語(yǔ)句執(zhí)行后,就忽略掉剩下的elif和else。
age = 20 if age >= 6: print('teenager') elif age >= 18: print('adult') else: print('kid')- 只要x是非零數(shù)值、非空字符串、非空l(shuí)ist等,就判斷為T(mén)rue,否則為False。
if x: print('True') - 循環(huán)
for...in
Python提供一個(gè)range()函數(shù),可以生成一個(gè)整數(shù)序列,再通過(guò)list()函數(shù)可以轉(zhuǎn)換為list。比如range(5)生成的序列是從0開(kāi)始小于5的整數(shù)names = ['Michael', 'Bob', 'Tracy'] for name in names: print(name)>>> list(range(5)) [0, 1, 2, 3, 4]- while循環(huán),只要條件滿足,就不斷循環(huán),條件不滿足時(shí)退出循環(huán)。
sum = 0 n = 99 while n > 0: sum = sum + n n = n - 2 print(sum)- break、continue與java大同小異。