目录
一、基本概念
二、字符串基本操作:【索引、切片、遍历】
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版本,可读性更强!