目錄
一、基本概念
二、字符串基本操作:【索引、切片、遍歷】
1.字符串與列表(相同)
1)索引(從0開始)(可以獲取某一個/某幾個連續的字符)
2)切片 [xx:xx]? ? ? ? 與 列表 語法規則一樣 [起點:終點]
3)遍歷【for循環】? ? ? ? 依次獲取每一個字符
2.字符串與列表(不相同)
3.案例:打印出國際象棋
三、格式化:【%、format()、f-strings】美化字符串
1.%
2.format()
3.f-strings() 僅支持python3.6以上的版本
4.案例:大家好!我叫xx,我今年xx歲了!
一、基本概念
1)列表:包含多個元素的有序序列,每個元素都有自己的索引。
2)索引:通過索引我們可以對列表進行 查找 / 切片 操作。
3)for循環:遍歷列表。
4)字符串(String):是表示文本的數據類型,由一系列字符組成,用引號(單引號 ' '或雙引號 '' ")包裹的有序序列。
特點:
-
可包含字母、數字、符號、空格等任意字符
-
不可變(創建后不能直接修改內部字符)
-
支持索引、切片、遍歷等操作
二、字符串基本操作:【索引、切片、遍歷】
1.字符串與列表(相同)
1)索引(從0開始)(可以獲取某一個/某幾個連續的字符)
????????s=‘abcde’?#對應索引:0、1、2、3、4;或者,反向遞減:從字符e往前數-1、-2、-3、-4、-5
????????print(s[0])?#取出s中的第一個字符,試著取出索引:4、5、-1、-5、-6(非法索引)
2)切片 [xx:xx]? ? ? ? 與 列表 語法規則一樣 [起點:終點]
切片結果:不包含終點索引對應的數據。
例如:打印s中除了最后一個字符e之外的其他所以字符/取出前4個字母abcd。
????????s='abcde'
????????print(s[0:4])
3)遍歷【for循環】? ? ? ? 依次獲取每一個字符
for關鍵字 c變量存儲每一個字符 in關鍵字 s字符串名 :結尾
????????s='abcde'
????????for?c?in?s:
????????????????print(c)
2.字符串與列表(不相同)
1)字符串類型不可變
例如:把第一個字符a修改為x,(模仿列表修改過程)
1.找到要修改的字符a即s[0];
2.使用賦值符號=,將x傳遞給它。
????????s='abcde'
????????s[0]='x'? ?
????????print()????????#報錯,字符串類型string不支持修改,若x指向列表類型的數據則ok除非列表為空
2)列表類型可變,先修改列表,再打印
????????list=['a','b']
????????list[0]='x'
????????print(list)????????#正確
3.案例:打印出國際象棋
題目:
國際象棋:4*8????????????????????????????????
1.車馬象王后馬車? ? ? ? ? ? ? ? ? ?????????
2.兵*8?????????????????????????????????????????????
???????????????????????????????????????????????????????
解答:
#國際象棋
#????????
#????????
#????????
#????????
##############################################################
import turtle
#先用字符串類型,列出所有棋子
black="??????"
white="??????"turtle.penup() #`避免下劃線 抬起畫筆
###############################################################
#第一行:
#1.1切片(要車馬象王后)
#print(black[:5])
#1.2遍歷:#打印出黑棋:?????車馬象王后
for c in black[:5]:turtle.write(c,font=('arial',40)) #font設置字符大小turtle.forward(40) #避免重疊#1.31正著[2,1,0] 列表[象馬車],也能反著 #打印出黑棋:???象馬車
index=[2,1,0]
for i in index: ##遍歷 index 列表,依次取出 2、1、0 賦值給 iturtle.write(black[i],font=('Arial',40)) #字符繪制 字體/字號 ,繪制black[i]對應字符turtle.forward(40)# #1.32反著[-1,-2,-3]
# index=[-1,-2,-3]
# for i in index: ##遍歷 index 列表,依次取出 2、1、0 賦值給 i
# turtle.write(black[i],font=('Arial',40)) #字符繪制 字體/字號 ,繪制black[i]對應字符
# turtle.forward(40)################################################################### #第二行:
#把兵放到第二行
turtle.goto(0,-50) #坐標# #遍歷(兵)c重復執行8次for循環 #????????
for i in range(8):turtle.write(black[-1],font=('Arial',40)) #字符繪制 字體/字號 ,繪制black[i]對應字符turtle.forward(40) #同一行
####################################################################################
####################################################################################turtle.penup() #`避免下劃線 抬起畫筆
#第3行:
turtle.goto(0,-100)
for c in white[:5]:turtle.write(c,font=('arial',40)) #font設置字符大小turtle.forward(40) #避免重疊index=[2,1,0]
for i in index: ##遍歷 index 列表,依次取出 2、1、0 賦值給 iturtle.write(white[i],font=('Arial',40)) #字符繪制 字體/字號 ,繪制black[i]對應字符turtle.forward(40)################################################################### 第4行:
turtle.goto(0,-150)
for i in range(8):turtle.write(white[-1],font=('Arial',40)) turtle.forward(40) turtle.done() #畫面停留
#turtle.hideturtle() #隱藏畫筆
?
三、格式化:【%、format()、f-strings】美化字符串
1.%
%s:字符串類型
%d:整數類型
2.format()
1)定義模版字符串.format(參數1,參數2,參數3...)方法? ?,參數有序號從0開始依次遞增1
{占位符},并且對應參數:
**交換參數:
h1='考試科目:{}\t考試時間:{}'.format('英語','14:00-16:00')
print(h1)h2='考試科目:{1}\t考試時間:{0}'.format('英語','14:00-16:00')
print(h2)
?
3.f-strings() 僅支持python3.6以上的版本
4.案例:大家好!我叫xx,我今年xx歲了!
name?=?'寧寧'
age?=?2
1.非格式化:
print('大家好!我是'+name+',我今年'+str(age)+'歲啦!')? ? ? ? #數字類型需要格式轉換
2.格式化:
print('大家好!我是%s,我今年%d歲啦!'%(name,age))
print('大家好!我是{},我今年{}歲啦!'.format(name,age))
print(f'大家好!我是{name},我今年{age}歲啦!')? ? ? ? #3.67版本,可讀性更強!