\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)
- 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)
- 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)
- 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')
- 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的方法:
- 初始化時(shí)指定
- 通過(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是否存在的方法:
- 通過(guò)
in
判斷key是否存在
>>> 'Thomas'in d
False
- 通過(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