作業(yè):
作業(yè)01
name = 'zdq'
print(name+":"+"\"Hello Eric, would you like to learn some Python today?\"")
結(jié)果:
作業(yè)02
name = 'zdq'
print(name.title())
print(name.upper())
print(name.lower())
結(jié)果:
Zdq
ZDQ
zdq
[Finished in 0.1s]
作業(yè)03
name = 'zdq'
print("%s說:"%(name)+"“日本是中國的窿凤∧昧茫”")
結(jié)果:
zdq說:“日本是中國的剩愧。”
[Finished in 0.1s]
作業(yè)04
famous_person = "ZDQ"
message = "吼吼恐锣,那是飯"
print(famous_person+':'+message)
結(jié)果:
ZDQ:吼吼,那是飯
[Finished in 0.1s]
作業(yè)05-1
name = "zdq"
new_name = name.center(20,'*')
print(new_name)
print(new_name.lstrip('*'))
print(new_name.rstrip('*'))
print(new_name.strip('*'))
結(jié)果:
********zdq*********
zdq*********
********zdq
zdq
[Finished in 0.1s]
作業(yè)05-2
name = "\tzdq\n\tZDQ"
print(name)
print(name.lstrip())
print(name.rstrip())
print(name.strip())
結(jié)果: zdq
ZDQ
zdq
ZDQ
zdq
ZDQ
zdq
ZDQ
[Finished in 0.1s]
小結(jié)
上午:
1.什么是字符串
a.使用單引號或者雙引號括起來的字符集就是字符串舞痰。
b.引號中單獨的符號土榴、數(shù)字、字母等叫字符
c.轉(zhuǎn)義字符:可以用來表示一些有特殊功能或者是特殊意義的字符(通過在固定的字符前加\)
' -> '
\ ->
\n -> 換行
\t -> 制表符
" -> "
在計算字符串長度的時候匀奏,轉(zhuǎn)義字符代表一個字符
'123' # 數(shù)字字符串
'ahcn'
'^7&#sj'
'中文漢字'
' '
str2 = '\'
print(str2)
str1 = '床前明月光鞭衩,\t疑是地上霜学搜。'
print(str1)
2.阻止轉(zhuǎn)義
可以通過在字符串前面加r或者R,來阻止轉(zhuǎn)義字符轉(zhuǎn)義
str1 = r'\1\n2'
print(str1)
3.python中字符串中的字符是Unicode編碼
Unicode編碼:使用16位對一個字符進行編碼娃善。編碼的目的是讓字符可以存儲到計算機中。(2^16 = 65536 111)
Unicode碼中包含了ASSCII碼瑞佩,并且可以表示世界上所有的語言和符號
a.獲取一個字符的Unicode碼 用ord
ord1 = ord('余')
ord2 = ord('婷')
ord3 = ord('A')
print(hex(ord1), hex(ord2), ord3)
b.將Unicode碼轉(zhuǎn)換成字符用chr
chr(編碼值)
print(chr(0x4eff))
字符串比較大小的時候,從字符開始依次往后比較每個字符的大小聚磺,直到遇到字符不一樣為止。
比較字符大小的時候炬丸,實質(zhì)比的是他們的編碼的大小
print('a' > '余b')
python的字符瘫寝,實質(zhì)是一個有序的字符序列。
1.獲取字符串長度:(長度->字符串中字符的個數(shù))
len是獲取序列長度的內(nèi)置函數(shù)
count = len('abc\n123')
print(count)
2.通過下標獲取字符串中的某一個字符
字符串中每個字符都對應(yīng)一個下標(索引)稠炬,我們可以通過索引值去獲取固定的字符: 字符串[索引值]
'abc' --> a:0, b:1, c:2
str1 = 'abc'
print(str1[0]) # a
print(str1[2]) # c
str2 = "dy\nup"
print(str2[4])
下標的范圍:0 ~ 字符串長度-1焕阿; -1 ~ -字符串長度
獲取字符的時候,索引值不能操作索引的范圍首启,否則會報IndexError
print(str1[3]) # IndexError: string index out of range
print(str1[-1]) # 獲取字符串str1中的最后的字符
print(str1[-3]) # 獲取字符串str1中的倒數(shù)第三個字符
3.獲取字符串中的部分字符(切片):
字符串[開始下標:結(jié)束下標] --> 獲取字符串中從開始下標到結(jié)束下標的字符(包含開始下標對應(yīng)的字符暮屡,不包含結(jié)束下標對應(yīng)的字符)
字符串[開始下標:結(jié)束下標:步進]
字符串[開始下標:結(jié)束下標] === 字符串[開始下標:結(jié)束下標:1]
a.開始和結(jié)束下標都有值:開始下標對應(yīng)的字符,要在結(jié)束下標對應(yīng)的字符前面(步進是正數(shù))
str3 = 'helol Python'
print(str3[6:12]) # Python
print(str3[-6:12]) # Python
** b.開始下標省略:從字符串的最前面取到結(jié)束下標前**
print(str3[:4])
** c.結(jié)束下標省略: 從開始位置獲取到字符串結(jié)束**
print(str3[4:])
e.兩個都省略: 獲取整個字符串的內(nèi)容
print(str3[:])
f:每兩個取一個
print(str3[::2]) # hloPto
(了解)
print(str3[4:1:-1]) # 3 3-1=2 1 0
print(str3[::-1]) # 字符串倒序
1. + : 字符串拼接
字符串1+字符串2
str1 = 'hello' +' '+'Python'
print(str1)
注意: + 號兩邊要么都是數(shù)字毅桃,要么都是字符串褒纲。不能是一個數(shù)字一個字符串
print(12+'34')
2. * : 讓字符串重復(fù)
字符串*整數(shù)
str1 = 'abc' * 3
print(str1)
str2 = 'a'*10
print(str2)
3. in
字符串1 in 字符串2 : 判斷字符串1是否在字符串2中 --> 在就是True,不在是Fasle
result = 'aa' in 'abaaac'
print(result)
4. not in
字符串1 not in 字符串2 : 判斷字符串1是否不在字符串2中 --> 不在就是True,在是False
result = '123' not in 'abc'
print(result)
5.格式字符串(占位符)
""格式: '占位符1占位符2'%(值1,值2)""
str1 = 'abc%s12%s3' % ('>>>','!!!')
print(str1)
%s --> 字符串占位符(格式符)
%d --> 整數(shù)占位符(格式符)
%f --> 浮點數(shù)占位符
%c --> 長度是1的字符串占位符(字符占位符)---可以給一個字符,也可以給字符的編碼值
str2 = '-%s-%d-%f-%c-%c-' % ('我是字符串',123,12.4,'k',97)
print(str2)
%.nf : 使用n值限制小數(shù)點后面的小數(shù)的位數(shù)(默認六位小數(shù))
str3 = '金額:%.2f元' % (100)
print(str3)
如果后面沒有加%钥飞,那么這個字符串只是一個普通的字符串
str3 = '金額L%f元'
print(str3)
%x和%X --> 十六進制數(shù)據(jù)占位符
number = 15
XXX的十六進制是XXXXX
str4 = '%d的十六進制是0X%x' % (number, number)
print(str4)
6.格式化輸出
name = '路飛'
age = 17
xx今年xx歲
print('%s今年%d歲' % (name, age))
print('%x' % (id(name)))
下午:
字符串相關(guān)方法:
字符串相關(guān)方法的通用格式: 字符串.函數(shù)()
# 1.capitalize:將字符串的首字母轉(zhuǎn)換成大寫字母莺掠,并且創(chuàng)建一個新的字符串返回
str1 = 'abc'
new_str = str1.capitalize()
print(str1, new_str)
結(jié)果:
abc Abc
# 2.center(width, fillchar): 將原字符串變成指定的長度并且內(nèi)容居中,剩下的部分使用指定的字符填充
new_str = str1.center(7, '!')
print(str1, new_str)
結(jié)果:
abc !!abc!!
# 3.rjust(width, fillchar): 右對齊读宙,將原字符串變成指定的長度并且內(nèi)容右對齊彻秆,剩下的部分使用指定的字符填充
new_str = str1.rjust(7,'*')
print(new_str)
結(jié)果:
****abc
# 產(chǎn)生學(xué)號
number = 19 # py1805009
# str(數(shù)據(jù)): 將任何其他的數(shù)據(jù)轉(zhuǎn)換成字符串
num_str = str(number)
print(num_str, type(num_str))
結(jié)果:19 <class 'str'>
# 讓字符串變成寬度為3,內(nèi)容右對齊结闸,剩下部分使用‘0’填充
new_str = num_str.rjust(3, '0')
print(new_str)
結(jié)果:019
new_str = 'py1805'+new_str
print(new_str)
結(jié)果:py1805019
# 4.ljust(width, fillchar): 左對齊唇兑,將原字符串變成指定的長度并且內(nèi)容左對齊,剩下的部分使用指定的字符填充
# "123.56" '-120'
# 5.字符串1.join(字符串2): 在字符串2中的每個字符之間插入一個字符串1
new_str = '123'.join('bbb')
print(new_str)
結(jié)果:b123b123b
# 6.
print(max('abcZ'))
結(jié)果:c
if語句
結(jié)構(gòu):
if 條件語句:
條件語句結(jié)果為True執(zhí)行的代碼塊
執(zhí)行過程:先判斷條件語句是否為True,如果為True就執(zhí)行if語句后:后面對應(yīng)的一個縮進的所有的代碼膀估。
為False,就不執(zhí)行冒號后面一個縮進中的代碼塊幔亥,直接執(zhí)行后續(xù)的其他語句
條件語句:可以是任何有值的表達式,但是一般是布爾值
if:關(guān)鍵字
if False:
print('代碼1') (不執(zhí)行)
print('代碼2')(不執(zhí)行)
print('代碼3')(不執(zhí)行)
print('代碼4')(執(zhí)行)
練習(xí):用一個變量保存時間(50米短跑),如果時間小于8秒察纯,打印及格
time = 7
if time < 8:
print('及格') # 只有條件成立的時候才會執(zhí)行
print(time) # 不管if語句的條件是否帕棉,這個語句都會執(zhí)行
if 條件語句:
語句塊1
else:
語句塊2
*執(zhí)行過程:先判斷條件語句是否為True,如果為True就執(zhí)行語句塊1针肥,否則執(zhí)行語句塊2
練習(xí):用一個變量保存成績,如果成績大于等于60,打印及格香伴,否則打印不及格
if score >= 60:
print('及格')
else:
print('不及格')
備用
Python字符串格式化
Python 支持格式化字符串的輸出 慰枕。盡管這樣可能會用到非常復(fù)雜的表達式,但最基本的用法是將一個值插入到一個有字符串格式符 %s 的字符串中即纲。
在 Python 中具帮,字符串格式化使用與 C 中 sprintf 函數(shù)一樣的語法。
print ("我叫 %s 今年 %d 歲!" % ('小明', 10))
python字符串格式化符號:
|符號|描述|
|---|---|
%c | 格式化字符及其ASCII碼
%s | 格式化字符串
%d| 格式化整數(shù)
%u | 格式化無符號整型
%o | 格式化無符號八進制數(shù)
%x | 格式化無符號十六進制數(shù)
%X | 格式化無符號十六進制數(shù)(大寫)
%f | 格式化浮點數(shù)字低斋,可指定小數(shù)點后的精度
%e | 用科學(xué)計數(shù)法格式化浮點數(shù)
%E | 作用同%e蜂厅,用科學(xué)計數(shù)法格式化浮點數(shù)
%g | %f和%e的簡寫
%G | %f 和 %E 的簡寫
%p |用十六進制數(shù)格式化變量的地址
--
Python 的字符串內(nèi)建函數(shù)
Python 的字符串常用內(nèi)建函數(shù)如下:
|序號|方法|描述|
|---|---|---|
1 |capitalize()|將字符串的第一個字符轉(zhuǎn)換為大寫
2| center(width, fillchar)|返回一個指定的寬度 width 居中的字符串,fillchar 為填充的字符膊畴,默認為空格掘猿。
3| count(str, beg= 0,end=len(string))|返回 str 在 string 里面出現(xiàn)的次數(shù),如果 beg 或者 end 指定則返回指定范圍內(nèi) str 出現(xiàn)的次數(shù)
4| bytes.decode(encoding="utf-8", errors="strict")|Python3 中沒有 decode 方法唇跨,但我們可以使用 bytes 對象的 decode() 方法來解碼給定的 bytes 對象稠通,這個 bytes 對象可以由 str.encode() 來編碼返回。
5| encode(encoding='UTF-8',errors='strict')|以 encoding 指定的編碼格式編碼字符串买猖,如果出錯默認報一個ValueError 的異常改橘,除非 errors 指定的是'ignore'或者'replace'
6| endswith(suffix, beg=0, end=len(string))|檢查字符串是否以 obj 結(jié)束,如果beg 或者 end 指定則檢查指定的范圍內(nèi)是否以 obj 結(jié)束玉控,如果是飞主,返回 True,否則返回 False.
7| expandtabs(tabsize=8)|把字符串 string 中的 tab 符號轉(zhuǎn)為空格,tab 符號默認的空格數(shù)是 8 奸远。
8| find(str, beg=0 end=len(string))|檢測 str 是否包含在字符串中既棺,如果指定范圍 beg 和 end ,則檢查是否包含在指定范圍內(nèi)懒叛,如果包含返回開始的索引值丸冕,否則返回-1
9| index(str, beg=0, end=len(string))|跟find()方法一樣,只不過如果str不在字符串中會報一個異常.
10| isalnum()|如果字符串至少有一個字符并且所有字符都是字母或數(shù)字則返 回 True,否則返回 False
11| isalpha()|如果字符串至少有一個字符并且所有字符都是字母則返回 True, 否則返回 False
12 |isdigit()|如果字符串只包含數(shù)字則返回 True 否則返回 False..
13 |islower()|如果字符串中包含至少一個區(qū)分大小寫的字符薛窥,并且所有這些(區(qū)分大小寫的)字符都是小寫胖烛,則返回 True,否則返回 False
14 |isnumeric()|如果字符串中只包含數(shù)字字符诅迷,則返回 True佩番,否則返回 False(中文數(shù)字也可以)
15 |isspace()|如果字符串中只包含空白,則返回 True罢杉,否則返回 False.
16| istitle()|如果字符串是標題化的(見 title())則返回 True趟畏,否則返回 False
17|isupper()|如果字符串中包含至少一個區(qū)分大小寫的字符,并且所有這些(區(qū)分大小寫的)字符都是大寫滩租,則返回 True赋秀,否則返回 False
18| join(seq)|以指定字符串作為分隔符利朵,將 seq 中所有的元素(的字符串表示)合并為一個新的字符串
19| len(string)|返回字符串長度
20| ljust(width[, fillchar])|返回一個原字符串左對齊,并使用 fillchar 填充至長度 width 的新字符串,fillchar 默認為空格猎莲。
21 |lower()|轉(zhuǎn)換字符串中所有大寫字符為小寫.
22 |lstrip()|截掉字符串左邊的空格或指定字符绍弟。
23| maketrans()|創(chuàng)建字符映射的轉(zhuǎn)換表,對于接受兩個參數(shù)的最簡單的調(diào)用方式著洼,第一個參數(shù)是字符串樟遣,表示需要轉(zhuǎn)換的字符,第二個參數(shù)也是字符串表示轉(zhuǎn)換的目標身笤。
24 |max(str)|返回字符串 str 中最大的字母豹悬。
25| min(str)|返回字符串 str 中最小的字母。
26 |replace(old, new [, max])|把 將字符串中的 str1 替換成 str2,如果 max 指定展鸡,則替換不超過 max 次屿衅。
27 |rfind(str, beg=0,end=len(string))|類似于 find()函數(shù)埃难,不過是從右邊開始查找.
28 |rindex( str, beg=0, end=len(string))|類似于 index()莹弊,不過是從右邊開始.
29| rjust(width,[, fillchar])|返回一個原字符串右對齊,并使用fillchar(默認空格)填充至長度 width 的新字符串
30 |rstrip()|刪除字符串字符串末尾的空格.
31 |split(str="", num=string.count(str))|num=string.count(str)) 以 str 為分隔符截取字符串,如果 num 有指定值涡尘,則僅截取 num 個子字符串
32 |splitlines([keepends])|按照行('\r', '\r\n', \n')分隔忍弛,返回一個包含各行作為元素的列表,如果參數(shù) keepends 為 False考抄,不包含換行符细疚,如果為 True,則保留換行符川梅。
33 |startswith(str, beg=0,end=len(string))|檢查字符串是否是以 obj 開頭疯兼,是則返回 True,否則返回 False贫途。如果beg 和 end 指定值吧彪,則在指定范圍內(nèi)檢查。
34 |strip([chars])|在字符串上執(zhí)行 lstrip()和 rstrip()
35 |swapcase()|將字符串中大寫轉(zhuǎn)換為小寫丢早,小寫轉(zhuǎn)換為大寫
36 |title()|返回"標題化"的字符串,就是說所有單詞都是以大寫開始姨裸,其余字母均為小寫(見 istitle())
37 |translate(table, deletechars="")|根據(jù) str 給出的表(包含 256 個字符)轉(zhuǎn)換 string 的字符, 要過濾掉的字符放到 deletechars 參數(shù)中
38 |upper()|轉(zhuǎn)換字符串中的小寫字母為大寫
39 |zfill (width)|返回長度為 width 的字符串,原字符串右對齊怨酝,前面填充0
40 |isdecimal()|檢查字符串是否只包含十進制字符傀缩,如果是返回 true,否則返回 false农猬。