python的学习日常笔记 - 字符串

转义字符

转义字符含义
\\反斜杠符号
\’单引号
\"双引号
\n换行
\b退格
\t横向制表符
\v垂直制表符

在字符串前面添加r或R,禁止转义字符的实际意义

print(r'c:\user\name')

ps: 通过r禁止 \n 的换行意义

格式化字符串输出

  • 格式符
name = ""
print("My name is %s" % name)
  • format()
name = ""
print("My name is {}".format(name))
  • f-strings
name = ""
print("My name is {name}")

字符串的索引

  • 语法格式
    字符串[索引]
str_1 = 'Python'  #获取字符P
print(str_1[0])  #正向索引
print(str_1[-6])  #反向索引

字符串的切片

切片通过冒号隔开的两个索引来实现

  • 语法格式
    slice[start:end:step]
    start:表示起始索引,省略时,从序列中第一个元素开始
    stop:表示结束索引(不包含结束位本身),省略时,到序列最后一个元素结束
    step:表示步长(默认为1,不能为0)
str_1 = "Python"
print(str_1[1:4:2])  #输出 yh
print(str_1[::-1])  #输出 nohtyP
print(str_1[:3])  #输出 Pyt

切片与索引的区别:
索引只能获取单个元素,而切片可以获取一定范围内的元素。

字符串的处理方法

注意:
字符串对象是不可变的,字符串对象提供的涉及字符串“修改”的方法都是返回修改后的新字符串,并不对原始字符串做任何修改

  • 语法格式
    字符串.方法名([参数列表])
  • 大小写转换
s = 'What is your name?'
print(s.lower())  # what is your name?
print(s.upper())  # WHAT IS YOUR NAME?
print(s.capitalize())  # What is your name?
print(s.title())  # What Is Your Name?
print(s.swapcase())  # wHAT IS YOUR NAME?
  • 字符串中字符类型的判断
    (1) isdecimal(): 如果字符串中只包含十进制数字则返回True,否则返回False
    (2) isdigit(): 如果字符串中只包含数字则返回True,否则返回False
    (3) isnumeric(): 如果字符串中只包含数字则返回True,否则返回False
    (4) isalpha(): 如果字符串中至少有一个字符,并且所有字符都是字母则返回True,否则返回False
    (5) isalnum(): 如果字符串中至少有一个字符,并且所有字符都是字母或数字则返回True,否则返回False
  • 字符串对齐
    (1) ljust(width,fillchar = None): 使用字符 fillchar 以左对齐方式填充字符串,使其长度变为width;
    (2) center(width,fillchar = None): 使用字符 fillchar 以居中方式对其填充字符串,使其长度变为width;
    (3) rjust(width,fillchar = None); 使用字符 fillchar 以右对齐方式填充字符串,使其长度变为width;
str_2 = "Main Menu"
print(str_2.center(20, '='))
print(str_2.ljust(20, '-'))
print(str_2.rjust(20, '+'))

运行结果如下:
在这里插入图片描述

  • 子串查找
    (1) find(sub, start = None, end = None)
    (2) index(sub, start = None, end = None)

两种方法进行查找子串,如果查找到则返回查找该子串首次出现的位置索引,如果没有查找到 find 方法返回 -1,index方法则抛出异常

text = "Explicit is better than implicit."
print(text.find('i'))  # 4
print(text.index('t'))  # 7
print(text.find('o'))  # -1
print(text.index('o'))  # 异常
  • 字符串前缀和后缀的判断
    (1) startswith(prefix, start = None, end = None): 判断字符串前缀
    (2) endswith(suffix, start = None, end = None): 判断字符串后缀
path = 'C:\\python37\\NEWS.txt'
print(path.endswith('.txt')) # True
print(path.startswith('C:')) # True
print(path.startswith('E:')) # False
  • 字符串替换
    str.replace(old, new, count = None)
    old — 表示原有子串
    new — 表示新的子串
    count — 用于设定替换次数
word = "美女,美女,美女"
print(word.replace('美女', '帅哥', 1))
print(word.replace('美女', '帅哥'))
# 如果替换次数为空则替换所有。

输出结果如下图:
在这里插入图片描述

  • 字符串分割
    字符串的spilt()方法可以使用分隔符把字符串分割成序列,该方法的语法格式如下:
    str.split(sep = None, maxsplit = -1)
    sep — 分隔符,默认为空格
    maxsplit — 用于设定分割次数

小测验

创建字符串 ‘Study Hard’ ,命名为 v

  1. 在v中查找子串 “up”
  2. 判断 v 变量对应的值是否以 “S” 开头和以 “D” 结尾
  3. 将 v 变量对应的值中的 “d” 替换为 “p”
  4. 将 v 变量对应的值根据 空格 分割
  5. 将 v 对应的值分别变大写和小写
  6. 输出 v 变量的前五个字符
  7. 将 v 居中对齐,宽度为20,填充字符为 *

v = 'Study Hard'
print(f"1.查找子串up: {v.find('up')}")
print(f"2.变量是否以 S 开头: {v.startswith('S')}")
print(f"3.变量是否以 D 结尾: {v.endswith('D')}")
print(f"4.根据空格分割: {v.split()}")
print(f"5.转换为大写: {v.upper()}")
print(f"  转换为小写: {v.lower()}")
print(f"6.输出前五个字符: {v[:5]}")
print(f"7.居中对齐,宽度为20,填充字符为*: {v.center(20, '*')}")

输出结果如下:
在这里插入图片描述

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值