Python基礎(chǔ)

\n表示換行 \t表示制表符 \表示\

>>> print('I\'m \"ok\"!')
I'm "ok"!
>>> print('I\'m learning\nPython!')
I'm learning
Python!
>>> print('\\\n\\')
\
\
>>> print('\\\t\\')
\       \
>>> print(r'\\\t\\')
\\\t\\   #r''表示''內(nèi)部的字符串默認(rèn)不轉(zhuǎn)義

'''...'''可表示多行內(nèi)容,避免使用多個(gè)換行符
在交互式命令行內(nèi)輸入

>>> print('''line1
... line2
... line3''')
line1
line2
line3

在文本編輯器內(nèi)輸入

print('''line1
line2
line3''')

r'''...'''表示'''...'''內(nèi)部字符串默認(rèn)不轉(zhuǎn)義

>>> print(r'''hello,\n
... world''')
hello,\n
world

r'''...'''表示'''...'''內(nèi)部字符串默認(rèn)不轉(zhuǎn)義

>>> print(r'''hello,\n
... world''')
hello,\n
world
  • 布爾運(yùn)算符and or not
  • 空值
    用None表示,不能理解為0
  • 變量
    變量名必須是大小寫英文字母脚作、數(shù)字、下劃線的組合,且不能以數(shù)字開(kāi)頭
    變量可以是整數(shù)、字符串圆凰、布爾運(yùn)算符等
  • 常量
    Python中習(xí)慣用全部大寫的變量名表示常量
    Python中有兩種除法,一種是/体箕,結(jié)果為浮點(diǎn)數(shù)专钉;另一種是//,結(jié)果只取整數(shù)部分
  • 輸出格式化字符串
>>> 'Hello,%s'%'world'
'Hello,world'
>>> 'Hi,%s,you have $%d.'%('Cloris',1000)
'Hi,Cloris,you have $1000.'

格式化整數(shù)和浮點(diǎn)數(shù)還可以指定是否補(bǔ)0和整數(shù)與小數(shù)的位數(shù)

>>> print('%2d-%02d' % (3, 1))
 3-01
>>> print('%.2f' % 3.1415926)
3.14
占位符 替換內(nèi)容
%d 整數(shù)
%f 浮點(diǎn)數(shù)
%s 字符串
%x 十六進(jìn)制整數(shù)
  • 使用list

1)如用list表示班級(jí)每一位同學(xué),注意list是用方括號(hào)表示的

>>> classmates=['Michael','Bob','Tracy']
>>> classmates
['Michael', 'Bob', 'Tracy']

2)用len()來(lái)獲得list中元素的個(gè)數(shù)

>>> len(classmates)
3

3)訪問(wèn)list中的元素,注意索引是從0開(kāi)始的累铅,當(dāng)索引超出了范圍時(shí)跃须,Python會(huì)報(bào)一個(gè)IndexError錯(cuò)誤

>>> classmates[0]
'Michael'
>>> classmates[2]
'Tracy'
>>> classmates[3]
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
IndexError: list index out of range

4)若要訪問(wèn)最后一個(gè)元素

>>> classmates[-1]
'Tracy'

5)往list后面追加元素到末尾

>>> classmates.append('Adam')
>>> classmates
['Michael', 'Bob', 'Tracy', 'Adam']

6)把元素插入到指定位置

>>> classmates.insert(1,'Jack')
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy', 'Adam']

7)刪除list末尾的元素

>>> classmates.pop()
'Adam'
>>> classmates
['Michael', 'Jack', 'Bob', 'Tracy']

8)刪除指定位置的元素

>>> classmates.pop(1)
'Jack'
>>> classmates
['Michael', 'Bob', 'Tracy']

9)替換list中某個(gè)元素

>>> classmates[1]='Cloris'
>>> classmates
['Michael', 'Cloris', 'Tracy']

注:list中元素的數(shù)據(jù)類型可以不同,如

L=['Cloris',999,TRUE]

list中的元素也可以是另外一個(gè)list

 s=['Python','Java',['asp','php'],'scheme']

10)訪問(wèn)元素php

>>> s[2][1]
'php'

11)創(chuàng)建一個(gè)空l(shuí)ist

>>> L=[]
>>> len(L)
0
  • 使用tuple

tuple也是一種有序列表,一旦初始化后就不可更改争群,它也沒(méi)有append()回怜,insert()這樣的方法大年。其他獲取元素的方法和list是一樣的

>>> classmates=('Michael','Bob','Tracy')
>>> classmates[0]
'Michael'
>>> classmates[-1]
'Tracy'

因?yàn)閠uple不可變换薄,所以代碼更安全。如果可能翔试,能用tuple代替list就盡量用tuple轻要。
1)定義一個(gè)空的tuple

>>> t=()
>>> t
()

只有1個(gè)元素的tuple定義時(shí)必須加一個(gè)逗號(hào),,來(lái)消除歧義:

>>> t=(1,)
>>> t
(1,)

2)一個(gè)可變的tuple
注:tuple所謂的“不變”是說(shuō)垦缅,tuple的每個(gè)元素冲泥,指向永遠(yuǎn)不變。即指向'a'壁涎,就不能改成指向'b'凡恍,指向一個(gè)list,就不能改成指向其他對(duì)象怔球,但指向的這個(gè)list本身是可變的嚼酝!

>>> t=('c','d',['A','B'])
>>> t[0]
'c'
>>> t[2][0]
'A'
>>> t[0]='a'
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: 'tuple' object does not support item assignment
>>> t[2][0]='X'
>>> t[2][0]
'X'
  • 條件判斷結(jié)構(gòu)
    注意記得加冒號(hào):
if <條件判斷1>:
    <執(zhí)行1>
elif <條件判斷2>:
    <執(zhí)行2>
elif <條件判斷3>:
    <執(zhí)行3>
else:
    <執(zhí)行4>
  • input讀取用戶輸入
    一個(gè)有問(wèn)題的條件判斷
birth=input('birth:')
if birth<2000:
    print('00前')
else:
    print('00后')

問(wèn)題出在哪里?
由于input()返回的數(shù)據(jù)類型是str竟坛,str不能直接和整數(shù)比較闽巩,因此需要將str轉(zhuǎn)化為int型數(shù)據(jù)
正確的輸入

birth=input('birth:')
birth=int(birth)
if birth<2000:
    print('00前')
else:
    print('00后')
  • 循環(huán)結(jié)構(gòu)
  1. for...in循環(huán) (記得加冒號(hào):)
    依次把list或tuple中的每個(gè)元素迭代出來(lái)
    例1:計(jì)算1到10所有整數(shù)之和
sum=0
for x in [1,2,3,4,5,6,7,8,9,10]:
    sum=sum+x
print(sum)

range(5)可以生成從0開(kāi)始小于5的整數(shù)
list()函數(shù)可以生成一個(gè)list

>>> list(range(5))
[0, 1, 2, 3, 4]

例2:計(jì)算1到100所有整數(shù)之和

sum=0
for x in range(101):
    sum=sum+x
print(sum)
  1. while循環(huán)(記得加冒號(hào):)

例3:計(jì)算100以內(nèi)所有奇數(shù)之和

sum=0
n=99
while n>0:
    sum=sum+n
    n=n-2
print(sum)
  1. break語(yǔ)句
    提前結(jié)束循環(huán)
    例4:從1輸入到10钧舌,并在結(jié)尾加End
n=1
while n<100:
    if n>10:
        break
    print(n)
    n=n+1
print('End')
  1. continue語(yǔ)句
    提前結(jié)束本輪循環(huán),開(kāi)始下一輪循環(huán)
    例5:輸出10以內(nèi)的所有奇數(shù)
n=0
while n<10:
    n=n+1
    if n%2==0:
        continue
    print(n)
print('End')

有些時(shí)候涎跨,如果代碼寫得有問(wèn)題洼冻,會(huì)讓程序陷入“死循環(huán)”,也就是永遠(yuǎn)循環(huán)下去隅很。這時(shí)可以用Ctrl+C退出程序撞牢,或者強(qiáng)制結(jié)束Python進(jìn)程。

  • 使用dict查找
    dict使用鍵-值(key-value)存儲(chǔ)叔营,具有極快的查找速度普泡。
    用Python寫一個(gè)dict:
>>> d={'Michael':95,'Bob':75,'Tracy':85}
>>> d['Bob']
75

dict的查找原理是根據(jù)key的值查找value的值

把數(shù)據(jù)放入dict的方法:

  1. 初始化時(shí)指定
  2. 通過(guò)key放入
>>> d['Cloris']=100
>>> d
{'Michael': 95, 'Bob': 75, 'Tracy': 85, 'Cloris': 100}

注:
多次對(duì)一個(gè)key放入value,后面的值會(huì)把前面的值沖掉

>>> d['Tracy']
65
>>> d['Tracy']=70
>>> d['Tracy']
70

如果key不存在审编,dict就會(huì)報(bào)錯(cuò)

判斷key是否存在的方法:

  1. 通過(guò)in判斷key是否存在
>>> 'Thomas'in d
False
  1. 通過(guò)dict提供的get()方法撼班,如果key不存在,可以返回None(在Python的交互環(huán)境下什么也不返回)垒酬,或者自己指定的value
>>> d.get('Thomas')
>>> d.get('Thomas',-1)
-1

用pop()刪除一個(gè)key

>>> d.pop('Cloris')
100
>>> d
{'Michael': 95, 'Bob': 75, 'Tracy': 70}

正確使用dict非常重要砰嘁,需要牢記的第一條就是dict的key必須是不可變對(duì)象
這是因?yàn)閐ict根據(jù)key來(lái)計(jì)算value的存儲(chǔ)位置,如果每次計(jì)算相同的key得出的結(jié)果不同勘究,那dict內(nèi)部就完全混亂了矮湘。這個(gè)通過(guò)key計(jì)算位置的算法稱為哈希算法(Hash)。
要保證hash的正確性口糕,作為key的對(duì)象就不能變缅阳。在Python中,字符串景描、整數(shù)等都是不可變的十办,因此,可以放心地作為key超棺。而list是可變的向族,就不能作為key

  • 使用set
    set和dict類似,也是一組key的集合棠绘,但不存儲(chǔ)value
    要?jiǎng)?chuàng)建一個(gè)set件相,需要提供一個(gè)list作為輸入集合:
>>> s=set([1,2,3])
>>> s
{1, 2, 3}

添加元素到set

>>> s.add(4)
>>> s
{1, 2, 3, 4}

從set中刪除元素

>>> s.remove(4)
>>> s
{1, 2, 3}

兩個(gè)set可以做數(shù)學(xué)意義上的并集,交集

>>> s1=set([1,2,3])
>>> s2=set([2,3,4])
>>> s1&s2
{2, 3}
>>> s1|s2
{1, 2, 3, 4}

注:str是不可變對(duì)象氧苍,list是可變對(duì)象

>>> a='abc'
>>> a.replace('a','A')
'Abc'
>>> a
'abc'
  • python內(nèi)置的常用函數(shù)
    求絕對(duì)值的函數(shù)abs()夜矗,求最大值的函數(shù)max(),數(shù)據(jù)類型轉(zhuǎn)換函數(shù)int()让虐,float()紊撕,bool()
    可以把一個(gè)內(nèi)置函數(shù)名賦值給一個(gè)變量,該變量擁有同該函數(shù)相同的功能
>>> a=bool
>>> a(2)
True
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末澄干,一起剝皮案震驚了整個(gè)濱河市逛揩,隨后出現(xiàn)的幾起案子柠傍,更是在濱河造成了極大的恐慌,老刑警劉巖辩稽,帶你破解...
    沈念sama閱讀 219,270評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件惧笛,死亡現(xiàn)場(chǎng)離奇詭異,居然都是意外死亡逞泄,警方通過(guò)查閱死者的電腦和手機(jī)患整,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,489評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來(lái)喷众,“玉大人各谚,你說(shuō)我怎么就攤上這事〉角В” “怎么了昌渤?”我有些...
    開(kāi)封第一講書人閱讀 165,630評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵,是天一觀的道長(zhǎng)憔四。 經(jīng)常有香客問(wèn)我膀息,道長(zhǎng),這世上最難降的妖魔是什么了赵? 我笑而不...
    開(kāi)封第一講書人閱讀 58,906評(píng)論 1 295
  • 正文 為了忘掉前任潜支,我火速辦了婚禮,結(jié)果婚禮上柿汛,老公的妹妹穿的比我還像新娘冗酿。我一直安慰自己,他們只是感情好络断,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,928評(píng)論 6 392
  • 文/花漫 我一把揭開(kāi)白布裁替。 她就那樣靜靜地躺著,像睡著了一般妓羊。 火紅的嫁衣襯著肌膚如雪胯究。 梳的紋絲不亂的頭發(fā)上,一...
    開(kāi)封第一講書人閱讀 51,718評(píng)論 1 305
  • 那天躁绸,我揣著相機(jī)與錄音,去河邊找鬼臣嚣。 笑死净刮,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的硅则。 我是一名探鬼主播淹父,決...
    沈念sama閱讀 40,442評(píng)論 3 420
  • 文/蒼蘭香墨 我猛地睜開(kāi)眼,長(zhǎng)吁一口氣:“原來(lái)是場(chǎng)噩夢(mèng)啊……” “哼怎虫!你這毒婦竟也來(lái)了暑认?” 一聲冷哼從身側(cè)響起困介,我...
    開(kāi)封第一講書人閱讀 39,345評(píng)論 0 276
  • 序言:老撾萬(wàn)榮一對(duì)情侶失蹤,失蹤者是張志新(化名)和其女友劉穎蘸际,沒(méi)想到半個(gè)月后座哩,有當(dāng)?shù)厝嗽跇?shù)林里發(fā)現(xiàn)了一具尸體,經(jīng)...
    沈念sama閱讀 45,802評(píng)論 1 317
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡粮彤,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,984評(píng)論 3 337
  • 正文 我和宋清朗相戀三年根穷,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片导坟。...
    茶點(diǎn)故事閱讀 40,117評(píng)論 1 351
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡屿良,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出惫周,到底是詐尸還是另有隱情尘惧,我是刑警寧澤,帶...
    沈念sama閱讀 35,810評(píng)論 5 346
  • 正文 年R本政府宣布递递,位于F島的核電站褥伴,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏漾狼。R本人自食惡果不足惜重慢,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,462評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望逊躁。 院中可真熱鬧似踱,春花似錦、人聲如沸稽煤。這莊子的主人今日做“春日...
    開(kāi)封第一講書人閱讀 32,011評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽(yáng)酵熙。三九已至轧简,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間匾二,已是汗流浹背哮独。 一陣腳步聲響...
    開(kāi)封第一講書人閱讀 33,139評(píng)論 1 272
  • 我被黑心中介騙來(lái)泰國(guó)打工, 沒(méi)想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留察藐,地道東北人皮璧。 一個(gè)月前我還...
    沈念sama閱讀 48,377評(píng)論 3 373
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像分飞,于是被迫代替她去往敵國(guó)和親悴务。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,060評(píng)論 2 355