Python_level1_字符串_11

目录

一、基本概念

二、字符串基本操作:【索引、切片、遍历】

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 赋值给 i
    turtle.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 赋值给 i
    turtle.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版本,可读性更强!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值