字符串基础

发布时间 2023-12-15 22:27:10作者: Chronos_zhang

字符串常用操作
定义字符串时,单引号,双引号,三引号都可以

 

字符串拼接

# 字符串拼接
s1 = 'i'
s2 = 'love'
s3 = 'you'
s4 = s1+' '+s2+' '+s3
print(s4)
s4 = f'{s1} {s2} {s3}'
print(s4)

字符串切片

对于字符串里的每个字符都有特定的位置索引
s = 'testfan'
从上面的字符串里边得到est
[1:4:1] 这是一个完整的切片形式,分别用x:y:z代表三个数字
x代表切片时起始位置索引,x可以不写默认从头开始
y代表切片时结束位置索引,结束位置索引不被包括,y也可以不写,默认到结尾
z代表切片时的位置间隔,也叫作步长,z也可以不写,默认是1,并且注意步长还可以为负数,负数则代表从右往左切,正数则代表从左往右切

# 字符串是一个不可变类型,不支持在原内存地址上进行修改
v = '我是一个字符串'
print(id(v))
v = '我变了'
print(id(v))
 
# 字符串切片
# 对于字符串里的每个字符都有特定的位置索引
s = 'testfan'
# 从上面的字符串里边得到est
# [1:4:1] 这是一个完整的切片形式,分别用x:y:z代表三个数字
# x代表切片时起始位置索引,x可以不写默认从头开始
# y代表切片时结束位置索引,结束位置索引不被包括,y也可以不写,默认到结尾
# z代表切片时的位置间隔,也叫作步长,z也可以不写,默认是1,并且注意步长还可以为负数,负数则代表从右往左切,正数则代表从左往右切
s1 = s[1:4:1]
print(s1)
# 得到tes
print(s[:3])
 
# 得到naft,我们发现要从右往左切
print(s[:-5:-1])
 
# 得到nfst,从右往左切,步长为2
print(s[::-2])
 
# 随便写一个切片,有没有结果
print(s[-1:5])
print(s[1:5:-1])
 
# 我就想单独的打印字符串里的某个字母
# 比如说第3个
print(s[2])
print(s[-5])
 
 
# 比如说有一个字符串是gw0、gw1、gw22、gw100
# gw后的数字不固定位数,要求你得到这个字符串中的这些数字
s = 'gw1'
print(s[2:])

寻找单词出现的位置 .find()

s = 'hello world and testfan and shamo'
# 我想找s这个字符串中and这个单词出现的第一个位置,就是a出现的位置索引
index = s.find('and')
print(index)
index = s.find('and1') # 如果找的子串不存在,则返回-1
print(index)
 
 
index = s.index('and')
print(index)
# index = s.index('and1') # 如果找的子串不存在,则代表会报错
# print(index)

字符串替换 .replace(旧,新) 

s = 'hello world and testfan and shamo'
# 我想把s这个字符串中的shamo换成beihe
s_new = s.replace('shamo','beihe')
print(s)
print(s_new)
s_new = s.replace('and','or') # 默认是全部替换
print(s_new)
s_new = s.replace('and','or',2) # 数字2代表替换次数

在控制台上分别输入年月日,统计输入的日期是这一年的第多少天
比如你输入的是2023年3月11号,那么输出结果就是2023年3月11号是2023年的第70天

year = int(input("请输入年:"))
month = int(input("请输入月:"))
day = int(input("请输入日:"))
 
sum_day = 0
for i in range(1, month):
    if i == 1 or i == 3 or i == 5 or i == 7 or i == 8 or i == 10 or i == 12:
        sum_day += 31
 
    elif i == 4 or i == 6 or i == 9 or i == 11:
        sum_day += 30
 
    elif i == 2:
        if year % 4 == 0 and year % 100 != 0 or year % 400 == 0:
            sum_day = sum_day + 29
        else:
            sum_day = sum_day + 28
sum_day = sum_day+day
print(f"第{sum_day}")