1.getchar --獲取字符
1.獲取單個字符
字符串中的每一個字符都會對應一個唯一的下標(索引)用來表示字符在字符串中的位置
下標是從0開始依次增加比伏,0對應的是第一個字符(0 -- 字符串長度-1);
也可以從-1開始依次減少疆导,-1對應的是最后一個字符(-1 -- 字符串長度)
例如:'hello' -> h->(0,-5 ) e->(1,-4) l->(3,-3) l->(4,-2) o->(4,-1)a.語法:
字符串[下標] - 獲取字符串中指定下標對應的字符b.說明:
字符串 - 只要結果是字符串的表達式都可以赁项,例如:字符串字面量、字符串變量
[] - 固定寫法下標 - 需要獲取的字符對應的下標,注意:這兒的下標不能越界
result = 'how are you!'[0] #獲取字符中下標是0的字符并賦值給變量result
print(result) #h
print('how are you!'[-4]) #y
print('how are you!'[14]) #IndexError: string index out of range 下標越界
str1 = 'good good study悠菜!day day up!'
print(str1[10],str1[-2]) #s p
2.獲取部分字符(字符串切片)
方法1.
a.語法:
字符串[開始下標舰攒;結束下標;步長]b.說明:
-從開始下標開始獲取到結束下標前為止悔醋,每次下標值加上步長獲取下一個字符串 - 只要結果是字符串的表達式都可以摩窃,例如:字符串字面量、字符串變量
[ 芬骄;] - 固定寫法開始下標猾愿、結束下標 - 下標值(這兒的下標可以越界)
步長 - 必須是整數,正數和負數都行账阻,
如果步長是正數匪蟀,是從開始下標開始從前往后獲取宰僧;
如果步長是負數,是從開始下標開始從后往前獲取c.注意:
當步長為正观挎,要求開始下標對應的字符的位置必須在結束下標對應的字符的位置前面琴儿。否則結果為空
當步長為負,要求開始下標對應的字符的位置必須在結束下標對應的字符的位置后面嘁捷。否則結果為空不管怎么取造成,結束下標一定取不到!
str1 = 'hello python!'
print(str1[0:-1:2]) #hlopto
print(str1[0:10:-2]) #null,結果為空
print(str1[-1:0:-2]) #!otpol
print(str1[-1:-10:2]) #null
print(str1[-1:-100:-2]) #!otpolh,結束下標越界
print(str1[100:-100:-2])#!otpolh,下標越界
#練習:獲取一個字符串中所有下標是奇數的字符(順序)
print(str1[1:100:2]) #el yhn
方法二:(省略步長)
字符串[開始下標:結束下標] -- 步長是1雄嚣,從開始下標到結束下標為止晒屎,一個一個的取
print('when i was young '[2:6]) #en i
方法三:(省略開始下標和結束下標)
- a.省略開始下標
字符串[:結束下標:步長]
-當步長是正數,從字符串的第一個字符開始取到結束下標為止缓升;
-當步長是負數鼓鲁,從字符串的最后一個字符開始取到結束下標為止; - b.省略結束下標
字符串[開始下標::步長]
-當步長是正數港谊,從開始下標開始取到字符串最后一個字符為止骇吭;
-當步長是負數,從開始下標開始取到字符串第一個字符為止歧寺;
print('when i was young '[:6]) #when i
print('when i was young!'[:6:-1]) #!gnuoy sawprint('when i was young!'[:6:-1]print('when i was young!'[:6:-1])
print('when i was young!'[0:]) #when i was young!
print('when i was young!'[:]) #when i was young!
print('when i was young!'[::-1]) #!gnuoy saw i nehw 字符串倒序
2.字符串相關運算
1.字符串支持的運算符: +燥狰, *, >, <, ==, <=, >=, !=
a.Python中的字符串支持數學運算符中的 + *斜筐,以及所有的比較運算符
加 + : 字符串1+字符串2 --將字符串1和字符串2拼接在一起產生一個新的字符串
注意:字符串和數字不能混合相加龙致!乘 * : 字符串 * N --N是正整數;字符串重復N次產生一個新的字符串
new_str = 'abc' + '123'
print(new_str) #abc123
name = '張三'
message = '吃飯了嗎'
print(name + message + '?') #張三吃飯了嗎?
str1 = 'abc'
print(str1 * 3) #abcabcabc
c.比較是否相等
== , 顷链!= 可以判斷兩個字符串是否相等或者不相等d.字符串比較大心看:從第一個字符開始依次往后找,找到第一個不相等的字符對,判斷它們編碼值的大小像啼,
誰的編碼值大俘闯,對應的字符串就大,不會再往后比較了
應用
1.判斷是否是小寫字母:
‘a’<=char<='z'(只有Python支持這種寫法忽冻。Pythonnb.) --> char>= ‘a’< and char<='z'
print('abc'=='abc') #True
print('abc'=='bac') #False
print('dcb' > 'abcde') #True
2.判斷一個字符串中第三個字符是否是字母
str2 = 'sa1hif329'
char = str2[2] #取出第三個字符
print('是否是字母','a'<=char<='z' or 'A'<=char<='Z') #是否是字母 False
print('是否是中文','\n4e00' <= char <= '\n9fa5') #是否是中文 False
2. in 和not in 操作
字符串1 in 字符串2 -> 判斷字符串1是否是字符串2的子串
字符串1 not in 字符串2 -> 判斷字符串1是否不是字符串2的子串
print('abc' in 'helloabc') #True
print('abc' in 'ahellobc') #False ,順序必須相同
print('abc' not in 'helloabc') #False
print('abc'not in 'ahellobc') #True
3. len函數真朗、
len(序列) - 獲取序列長度,獲取序列中元素的個數
len(字符串) - 獲取字符串的長度僧诚,就是字符的個數
- 注意:
一個可以轉義的轉義字符長度是1遮婶;
一個編碼字符長度是1;
一個空格字符長度是1湖笨;
手動在鍵盤上按一個tab一般是4個空格旗扑,長度是4;一個\t表示的tab長度是1
print(len('ashfov')) #6
str1=input('請輸入:') #輸入abcd
last_char =str1[len(str1)-1] #最后一個字符
print(last_char) #d
str1=' abc'
str2='\tabc'
print(len(str1),len(str2)) #5 4 本機設置的一個tab是2個空格
3.formstring 格式字符串
1.什么是格式字符串
- 在字符串中通過格式占位符來代替字符串中變化的部分慈省,然后在后面通過數據或者變量確定變化
2. 語法:
包含占位符的字符串%(值1臀防,值2,值3边败,···)
3 說明:
占位符 -
%s (字符串)
%d (整數)
%f (小數) (%.nf 保留小數點后n位小數)
%c (字符)(可以將數字轉換成字符)% -- 固定寫法
() -- 固定寫法袱衷,字符串中只有一個占位符的時候,這個()可以省略
括號中的值 - 值和占位符要一一對應(個數笑窜、類型致燥、位置都要對應)
name = input('姓名:')
age = 18
sex = '男'
message = '我叫%s,今年%d,性別%s,月薪%.1f萬'%(name,age,sex,1.5)
print(message)
- 練習:輸入一個字符串,用一個變量保存輸入的字符串的相關信息排截,XXX的長度是XX,最后一個字符是X
str1 = input('請輸入一個字符串:')
length = len(str1)
char = str1[len(str1)-1]
message ='%s的長度是%d,最后一個字符是%s'%(str1,length,char)
print(message)
4.typeconversion 類型轉換
1嫌蚤、基本語言
- 語法:
類型名(數據) - 將指定數據轉換成指定類型 - 說明:
類型名 -- 任何Python支持的,或者自定的類型都可以
數據 -- 需要轉換的對象(類型不同要求可能不同)
2.轉換實例
int(數據) -> 將其他數據轉換成整型
float(數據) -> 將其他數據轉換成浮點型
bool(數據) -> 將其他數據轉換成bool型
str(數據) -> 將其他數據轉換成字符串
age=input('年齡:')
print(type(age),age)
print('是否能進入網吧',int(age) >= 18)
1.轉換成整型
a = int(12.8) #12 浮點數可以轉換成整數断傲,直接保留整數部分
b = int(True) #bool可以轉換成整數脱吱,True->1 ,Fasle->0
c = int('12') #只有去掉字符串的引號后本身就是一個整數的字符串才能轉化成整型
print(a,b,c)
2.轉換成浮點型
a = float(100) #所有的整數都可以轉換成浮點數,在后面加.0
b = float(True) #所有的bool都可以轉換成浮點數认罩,True->1.0 False->0.0
c = float('12.9') #去掉字符串的引號后本身就是一個數字的字符能轉化成浮點型
print(a,b,c)
3.轉換成布爾類型
- Python中所有的數據都可以轉換成布爾
- 所有為空急凰、為0的值都會轉換成False,其他全是True
a = bool(0)
b = bool(0.0)
c = bool('')
d = bool ([])
e = bool({})
f = bool(None)
print(a,b,c,d,e,f) #False False False False False False
4.轉換成字符串類型
Python中所有的數據都可以轉換成字符串,而且轉換的時候就是單純的在最外面加引號
練習:輸入3個數字猜年,求著3個數字的和
num1 = input('輸入3個數字')
num2 = input()
num3 = input()
print('三個數字的和是:',float(num1)+float(num2)+float(num3))
未完待續(xù)抡锈。。