02-字符編碼
"""
1.什么是字符串
序列房交,有序,不可變的
用單引號或者雙引號括起來的任意字符集
2.字符
a.普通字符:‘23’酷窥,‘dsff','字典'
b.轉義字符:\n,\t,',",\
阻止轉義:r
"""
3.字符編碼
"""
python中的字符采用的是Unicode編碼
a.什么是編碼
就是數(shù)字和字符的對應關系,其中字符對應的數(shù)字就是字符的編碼
b.編碼方式
ASCII碼表:針對數(shù)字字符伴网、字母字符、英文中常用的符號進行編碼
采用一個字節(jié)對字符編碼(128個字符)
Unicode碼:Unicode碼包含了ASCII碼妆棒,同時對所有語言對應符號進行編碼
采用兩個字節(jié)進行編碼,能編碼65536個字符
中文:4E00-9FA5
c.兩個函數(shù)
chr(編碼值) - 將編碼轉換成字符
ord(字符) - 獲取字符對應的編碼值
d.可以將字符編碼放到字符串中便是一個字符:\u + 四位編碼
"""
print(chr(0xd400))
print(ord('余'))
# d.可以將字符編碼放到字符串中便是一個字符:\u + 四位編碼
print('hsh\ue12dnf')
"""
03-獲取字符串中的字符
一旦一個字符串確定糕珊,那么每個字符位置確定,而且每個字符對應一個下標澜公,
用來表示其位置和順序
1.下標(索引)
每個字符都有一個下標喇肋,代表其位置
下標范圍:0~ 字符串長度減一,0代表第一個字符
-1 ~ -字符串長度蝶防, -1代表最后一個字符的位置
"""
'abc' # a:0/-3 b:1/-2
'abc\n23' # 1:4/-3
"""
2.獲取單個字符
語法:字符串[下標] - 獲取字符串中间学,指定下標對應指定字符
說明:字符串 - 可以是字符串常量印荔,也可以是變量
下標 - 字符下標详羡,不可越界
"""
str1 = 'hello python'
print(str1[6],str1[-6],str1[-2])
# print(str1[13]) IndexError: string index out of range
"""
3.獲取部分字符
語法:字符串【開始下標:結束下標:步長】
說明:字符串 - 可以是字符串常量,也可以是變量
開始下標水泉、結束下標 - 下標值
步長 - 整數(shù)
功能:
從開始下標開始獲取到結束下標前為止主到,每次下標值增加步長的值
注意;
當步長是正數(shù),從前往后取登钥,開始下標在前面
當步長是負數(shù)牧牢,從后往前取看锉,開始下標在后面
結束下標對應的值取不到
"""
str1 = '1234567890'
print(str1[0:6:2]) #135
print(str1[-1:6:-1]) #098
"""
方法2:字符串【開始下標:結束下標】 相當于步長為1
"""
str1 = 'asj34nc'
print(str1[-1:3]) #'' -空串
print(str1[3:-1])#34n
"""
獲取部分字符塔鳍,省略下標
開始下標和結束下標都可以省略
a.開始下標省略
步長正數(shù)轮纫,從開頭往后獲取
步長負數(shù),從結尾往前獲取
"""
str1 = 'asj34nc'
print(str1[:3:1])
print(str1[:3:-1])
"""
b.結束下標省略
步長正數(shù)掌唾,從開始下標獲取到結束
步長負數(shù),從開始下標向前獲取到開頭
"""
print(str1[4:]) #4nc
print(str1[::-1]) #字符串倒敘
"""
04-字符串相關運算
1.+
字符串1 + 字符數(shù)2 將兩個字符串拼接在一起產生一個新的字符串
1注意:加號兩邊都必須是字符串
"""
str1='123'
str2='abc'
print(str1 + str2)
"""
2.*
字符串 * n(正整數(shù)):字符串的內容重復n次凭语,產生一個新的字符串
"""
str1 = 'sdg'
print(str1*3) #sdgsdgsdg
"""
3.比較運算符:>,<,==,!=,>=,<=
字符串1 == 字符串2
"""
print('abc' == 'abc')
"""
a.>,<,>=,<=
兩個字符串比較大小撩扒,從第一位開始搓谆,找到一對不同的字符,比較大小
"""
print('abc' == 'ad')
"""
char = input('請輸入一個字符:')
print('是否是字母:','a'<=char<='z' or 'A'<=char<='Z')
print('是否中文:',0x4e00 <= ord(char) <=0x9fa5)
"""
"""
4.in 和 not in
字符串1 in 字符串2: 判斷1是否在2中挽拔,結果是布爾值
字符串1 not in 字符串2: 判斷1是否不在2中螃诅,結果是布爾值
"""
print('abc' in 'abc33jf')
"""
5.len
len(字符串) - 獲取字符串中字符個數(shù)
"""
print(len('dsdsewe3r4')) #10
"""
6.str
str(數(shù)據):將數(shù)據轉字符串
其他數(shù)據轉字符串:
所有數(shù)據類型都可以轉字符串状囱。直接最外面加引號
系統(tǒng)數(shù)據類型名不能用來給變量命名
"""
str1 = str(100)
print(str1,type(str1))
"""
b.字符串轉其他類型
轉整數(shù): int(純整數(shù)字符串)
轉浮點型:float(純數(shù)字字符串)
轉布爾:bool(字符串) 只有空串才是False
"""
print(int('-123'))
print(float('234'))
print(bool(''))
05-格式字符串
"""
1.格式字符串
指的是字符串中通過占位符來表示字符串中變化部分倘是,然后通過其他值
給占位符賦值
語法:
含有格式占位符的字符串 % (占位符的值)
說明:格式占位符有固定的寫法,可以有多個
% - 固定寫法
()- 里面值的個數(shù)和類型要和前面格式占位符對應
2.常見占位符
%d - 整數(shù)
%s _ 字符串
%f - 小數(shù)
%c - 字符
"""
name = input('請輸入姓名:')
message = '%s今年%d歲叨粘,體重:%.1fkg' % (name,15,65)
print(message)
06-字符串常用方法
"""
1.字符串.capitalize() - 字符串首字母轉大寫
"""
str1 = 'hello'
new_str = str1.capitalize()
print(new_str)
"""
2.字符串對齊
字符串.center(width,fillchar) - 居中
字符串.ljust(width,fillchar) - 左對齊
字符串.rjust(width,fillchar) - 右對齊
長度 填充字符
"""
import random
num = random.randint(0,20)
print(num)
str1=str(num).rjust(3,'0')
str2='python1808'
new_str=str2+str1
print(new_str)
"""
3,join(sep)
字符串1.join(字符串2)
2中出入1
"""
str1='**'
str2='abc'
print(str1.join(str2)) #a**b**c
"""
4.count(str) - 返回str在string中的次數(shù)
"""
str1 = 'abdahdaeia'
print(str1.count('a')) #4
"""
5.expandtabs(tabsize=8) - 把tab轉為空格
"""
"""
6.find(str,beg,end)-檢測str是否包含在指定范圍beg和end之間
并返回第一個字符下標值
- rfind()--和find相同升敲,從右向左找
"""
print(str1.find('ah',2,8))
"""
8.index(str,beg,end)-和find相同轰传,不在指定范圍報錯
- rindex()-和index相同,從右向左找
"""
print(str1.index('ah',2,8))
"""
10.isalnum()-字符串中所有字符都為字母或數(shù)字則返回True
否則返回False
"""
str1='fiue3抓84rnv'
print(str1.isalnum())
"""
11.isalpha()-所有字符都是字母則返回True
否則返回False
"""
str1='fiue384rAnv'
print(str1.isalpha()) #false
"""
12.isdigit()-只包含數(shù)字則返回True
否則返回False
- isnumeric() 只包含數(shù)字則返回True
否則返回False ,可以中文數(shù)字
"""
print(str1.isdigit()) #False
print(str1.isnumeric())
"""
14.islower()-字符串包含字母且都是小寫則返回True
否則返回False
"""
str1 = 'sue364vvuh'
print(str1.islower())
"""
15.isupper()-字符串包含字母且都是大寫則返回True
否則返回False
"""
str1 = 'SCSUE34784CH'
print(str1.isupper())
"""
16.isspace()-只包含空白....
"""
"""
17.istitle()-是標題化則返回True港庄,否則返回False
18.title()-標題化
"""
str1 = 'Hello World'
print(str1.istitle())
str2 = 'asnw dwnw'
print(str2.title())#Asnw Dwnw
"""
19.len()-返回字符串長度
"""
str1 = 'sdnjeee'
print(len(str1))
"""
20.lower()-大寫轉小寫
21.upper()-小寫轉大寫
"""
str1 = 'DWENmidje'
print(str1.lower())#dwenmidje
print(str1.upper())#DWENMIDJE
"""
22.lstrip()-去掉左邊空格或指定字符
23.rstrip()-末尾
24.strip()-前后
"""
str1 = ' ddjwui3 '
str2 = 'eejici'
print(str2.lstrip('e'))
print(str1.strip())
"""
25.split(str='',num=|num=)-以指定字符分割字符串鹏氧,返回列表
26.splitlines([true/false])-按行分隔佩谣,true保留換行符
"""
str1 = 'ci cedn ewjuwn e'
print(str1.split())#['ci', 'cedn', 'ewjuwn', 'e']
str2 = '''diecidi
3dusefi
'''
print(str2.splitlines(True))#['diecidi\n', '3dusefi\n']
"""
27.startswith(str,beg,end)-檢查指定范圍是否以指定字符開頭
28.endswith(str,beg,end)- ...結尾
"""
str1 = 'aseyobjadd'
print(str1.startswith('e',2,5))
print(str1.endswith('d',4,9))
"""
29.swapcase()-大寫轉小寫,小寫轉大寫
"""
str1 = 'sdcdeiIWDCoco'
print(str1.swapcase())#SDCDEIiwdcOCO
"""
30.translate(table,deletechaes='')根據 str 給出的表(包含 256 個字符)轉換 string 的字符,
要過濾掉的字符放到 deletechars 參數(shù)中
"""
#from fnmatch import translate
#print(translate('d'))
"""
31.zfill(width)-返回指定長度字符串笨篷,右對齊瓣履,前面填充0
"""
str1 = 'sxhwu'
print(str1.zfill(8))#000sxhwu
"""
32.isdecimal()-檢查字符串是否只包含十進制字符练俐,
如果是返回 true,否則返回 false
"""
print('cwdn7373'.isdecimal())
33.translate(old,new,str)
建設一個映射表燕锥,將表中對應字符映射到字符串中替換對應字符悯蝉,str表示需要刪除的字符表
str1 = 'dheu36hf74b'
trantab = str.maketrans('abcdef','123456','yux')
print(str1.translate(trantab)) #4h536h6742