Python学习 Day 3 字符串 编码 list tuple 循环 dict set
字符串和編碼
| 字符 | ASCII | Unicode | UTF-8 |
| A | 1000001 | 00000000 01000001 | 1000001 |
| 中 | x | 01001110 00101101 | 11100100 10111000 10101101 |
格式化
在Python中,采用的格式化方式和C語言是一致的,用%實(shí)現(xiàn),舉例如下:
>>> 'Hello, %s' % 'world'
'Hello, world'
>>> 'Hi, %s, you have $%d.' % ('Michael', 1000000)
'Hi, Michael, you have $1000000.'
%運(yùn)算符就是用來格式化字符串的。在字符串內(nèi)部,%s表示用字符串替換,%d表示用整數(shù)替換,有幾個(gè)%?占位符,后面就跟幾個(gè)變量或者值,順序要對(duì)應(yīng)好。如果只有一個(gè)%?,括號(hào)可以省略。常見的占位符有:
| %d | 整數(shù) |
| %f | 浮點(diǎn)數(shù) |
| %s | 字符串 |
| %x | 十六進(jìn)制整數(shù) |
其中,格式化整數(shù)和浮點(diǎn)數(shù)還可以指定是否補(bǔ)0和整數(shù)與小數(shù)的位數(shù):
>>> '%2d-%02d' % (3, 1)
' 3-01'
>>> '%.2f' % 3.1415926
'3.14'
%s永遠(yuǎn)起作用,它會(huì)把任何數(shù)據(jù)類型轉(zhuǎn)換為字符串:
>>> 'Age: %s. Gender: %s' % (25, True)
'Age: 25. Gender: True'
對(duì)于Unicode字符串,用法完全一樣,但最好確保替換的字符串也是Unicode字符串:
>>> u'Hi, %s' % u'Michael'
u'Hi, Michael'
字符串里面的%是一個(gè)普通字符時(shí),需要轉(zhuǎn)義,用%%來表示一個(gè)%
Python內(nèi)置的一種數(shù)據(jù)類型是列表:
List
list是一種有序的集合,可以隨時(shí)添加和刪除其中的元素。
>>>classmates=['michael','bob','tracy']
>>> classmates
['michael', 'bob', 'tracy']
>>>len(classmates)#獲得list元素的個(gè)數(shù)
3
>>> classmates[0]#用索引來訪問list中每一個(gè)位置的元素,從0開始
'michael'
>>> classmates[-1]
'tracy'
>>> classmates[3]#索引超出了范圍報(bào)錯(cuò)
Traceback (most recent calllast):
File "<pyshell#11>", line 1,in <module>
classmates[3]
IndexError: list index outof range
>>> classmates[-2]
'bob'
>>>classmates.append('adam')#往list中追加元素到末尾
>>> classmates
['michael', 'bob', 'tracy','adam']
>>>classmates.insert(1,'jack')#把元素插入到指定的位置
>>> classmates
['michael', 'jack', 'bob','tracy', 'adam']
>>>classmates.pop()#刪除list末尾的元素
'adam'
>>>classmates.pop(1)#賦值給對(duì)應(yīng)的索引位置
'jack'
>>> classmates
['michael', 'bob', 'tracy']
>>>classmates[1]='sarah'#把某個(gè)元素替換成別的元素
>>> classmates
['michael', 'sarah','tracy']
>>> L = ['Apple',123, True]#元素的數(shù)據(jù)類型也可以不同
>>> s = ['python','java', ['asp', 'php'], 'scheme']#元素也可以是另一個(gè)list
tuple
元組和list類似,但是元組一旦初始化就不能修改
>>> classmates =('Michael', 'Bob', 'Tracy')
>>> t = (1,)#只有1個(gè)元素時(shí)必須加一個(gè)逗號(hào)
特例,“可變的”tuple
>>> t = ('a', 'b',['A', 'B'])
>>> t[2][0] = 'X'
>>> t[2][1] = 'Y'
>>> t
('a', 'b', ['X', 'Y'])
條件判斷
age =3
ifage >= 18:# 如果if判斷是False,不執(zhí)行if的內(nèi)容,執(zhí)行else
print 'your age is', age
print 'adult'
else:
print 'your age is', age
print 'teenager'
if語句執(zhí)行是從上往下判斷,如果在某個(gè)判斷上是True,把該判斷對(duì)應(yīng)的語句執(zhí)行后,就忽略掉剩下的elif和else
if <條件判斷1>:
<執(zhí)行1>
elif <條件判斷2>:
<執(zhí)行2>
elif <條件判斷3>:
<執(zhí)行3>
else:
<執(zhí)行4>
循環(huán)
for...in循環(huán)
names= ['Michael', 'Bob', 'Tracy']
forname in names:
print name
?
sum =0
for xin range(101):
sum = sum + x
printsum
while循環(huán)
sum =0
n =99
whilen > 0:
sum = sum + n
n = n - 2
printsum
dict
dict的key必須是不可變對(duì)象。list是可變的,就不能作為key。
?
>>> d = {'Michael': 95, 'Bob': 75,'Tracy': 85}
>>> d['Michael']
95
和list比較,dict有以下幾個(gè)特點(diǎn):
查找和插入的速度極快,不會(huì)隨著key的增加而增加;
需要占用大量的內(nèi)存,內(nèi)存浪費(fèi)多。
而list相反:
查找和插入的時(shí)間隨著元素的增加而增加;
占用空間小,浪費(fèi)內(nèi)存很少。
set
set和dict類似,也是一組key的集合,但不存儲(chǔ)value。由于key不能重復(fù),所以,在set中,沒有重復(fù)的key。
要?jiǎng)?chuàng)建一個(gè)set,需要提供一個(gè)list作為輸入集合:
>>> s = set([1, 2, 3])
>>> s
set([1, 2, 3])
>>> s = set([1, 1, 2, 2, 3, 3])#需要list作為輸入集合
>>> s
set([1, 2, 3])#重復(fù)元素在set中自動(dòng)被過濾
>>> s.add(4)#添加元素到set中
>>> s
set([1, 2, 3, 4])
>>> s.add(4)
>>> s
set([1, 2, 3, 4])
>>> s.remove(4)#刪除元素
>>> s
set([1, 2, 3])
>>> s1 = set([1, 2, 3])
>>> s2 = set([2, 3, 4])
>>> s1 & s2#交集
set([2, 3])
>>> s1 | s2#并集
set([1, 2, 3, 4])
set和dict的唯一區(qū)別僅在于沒有存儲(chǔ)對(duì)應(yīng)的value,但是,set的原理和dict一樣,所以,同樣不可以放入可變對(duì)象,因?yàn)闊o法判斷兩個(gè)可變對(duì)象是否相等,也就無法保證set內(nèi)部“不會(huì)有重復(fù)元素”。
歡迎關(guān)注
轉(zhuǎn)載于:https://www.cnblogs.com/jpld/p/4451740.html
總結(jié)
以上是生活随笔為你收集整理的Python学习 Day 3 字符串 编码 list tuple 循环 dict set的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 深信服虚拟桌面部署及性能优化关键点配置(
- 下一篇: 【AppScan闪退】