Python基础(一):字符串

文章基于python3撰写,如有错误,欢迎指正。

一、基本概念

1.字符串的格式
  • 双引号或者单引号中的数据,就是字符串
  • 三个双引号或者三个单引号中的数据,也是字符串
  • 三个双引号三个单引号也是python中的多行注释
str1 = 'ko no DIO da!'			# 单引号
str2 = "wryyyyyyy!"				# 双引号
str3 = '''The World!'''			# 三个单引号
str4 = """muda muda muda"""		# 三个双引号
2.f-strings(Python3.6版本才开始支持)
  • f-strings以字母 fF 为前缀,格式化字符串中{}的内容,{}的内容可以是变量也可以是表达式
  • f-strings格式化输出执行效率代码可读性都较高于传统的格式化输出(%-strings、str.format())
In [1]: name = 'AisakaOu'

In [2]: f'My name is {name}.'
Out[2]: 'My name is AisakaOu.'

二、常见操作

1.查找
  • find(子串):查询到结果时返回下标,未查询到时返回-1
  • index(子串):功能与find()类似,未查询到时报错
  • count(子串):返回子串出现的次数
  • in:多用于判断,子串是否出现在字符串中,出现时返回True
  • not in:多用于判断,子串是否不出现在字符串中,出现时返回False
my_str = "The World!"
print(my_str.find('The'))				# find(),结果为0
print(my_str.index('World')) 			# index(),结果为4
print(my_str.index('!')) 				# count(),结果为1
print(('wryyyyyyy!' in my_str)) 		# in,结果为False
print(('wryyyyyyy!' not in my_str))		# not in,结果为True
2.替换
  • replace(旧子串, 新子串, 替换次数):替换次数默认为str.count(新子串),不填写时会将字符串中的所有旧子串替换成新子串
  • 字符串属于不可变类型,不能通过下标或者切片进行修改
my_str = "The World!"
print(my_str.replace('The', 'wryyyyy!'))  # 将my_str中的所有'The'替换成'wryyyyy!'
3.切割
  • split(子串, 切割次数):切割次数默认为str.count(子串),split会将字符串按子串进行切割,并返回一个列表,不填写子串时去除所有的空格和\t
my_str = "The World!\twryyyyyy!"
print(my_str.split(' '))  # 按空格进行切割.结果为['The', 'World!\twryyyyyy!']
print(my_str.split())  # 去除所有空格和'\t'切割.结果为['The', 'World!', 'wryyyyyy!']
4.join
  • 子串.join(str):将子串添加到str的每个元素间
  • 子串.join(list):将列表中的元素按照子串进行拼接,该列表中的元素必须都是字符串否则会报错
my_str = "The World!"
my_list = ['w', 'r', 'y', 'y', 'y', 'y', 'y', 'y', '!']
print("-".join(my_str))  # 结果为'T-h-e- -W-o-r-l-d-!'
print("".join(my_list))  # 结果为'wryyyyyy!'
5.切片
  • 切片的语法:[起始: 结束: 步长]
  • 起始默认值为0
  • 结束默认值为len(str)
  • 步长默认值为1
  • 步长为正数时从左到右,步长为负数时从右到左
  • 快速逆置字符串可以使用切片:str[::-1]
# 切片练习
# 导包
import random

# 初始化字符串 0-9 方便练习
my_str = '0123456789'
# 初始化计数器
num = 0
# 循环10次
while num < 10:
    # 随机初始化起始数
    num1 = random.randint(-10, 9)
    # 随机初始化结束数
    num2 = random.randint(-10, 9)
    # 随机初始化步长数 步长不等于0
    num3 = random.randint(-10, 9)
    if num3 == 0:
        num3 = 1
    # 获取用户输入
    string = input(f"my_str='{my_str}' 输入字符:my_str[{num1}:{num2}:{num3}]:(若为空直接回车)")
    # 判断输入是否正确
    if string == my_str[num1:num2:num3]:
        print(f"正确,{my_str[num1:num2:num3]}")
    else:
        print(f"错误,{my_str[num1:num2:num3]}")
    # 计数器+1
    num += 1

注:以上的操作均不会对字符串本身进行修改
6.字符串、列表、字典、元组公共操作
6.1 运算符
运算符描述支持的数据类型
+合并字符串、列表、元组
*复制字符串、列表、元组
in元素是否存在字符串、列表、元组、字典
not in元素是否不存在字符串、列表、元组、字典
6.2 公公函数
方法描述
len()计算元素个数
max()返回容器中的最大值
min()返回容器中的最小值
cmp()比较两个值(python3已经取消)
del()删除变量

三、内建函数

方法描述
str.capitalize()把字符串的第一个字符大写
str.title()把字符串的每个单词首字母大写
str.startswith(obj)检查字符串是否以 obj 开头,是则返回 True ,否则返回 False
str.endswith(obj)检查字符串是否以 obj 结束,是则返回 True ,否则返回 False
str.lower()转换 str 中所有大写字母为小写
str.upper()转换 str 中所有小写字母为大写
str.ljust(width)返回一个原字符串左对齐,并使用空格填充至长度 width 的新字符串
str.rjust(width)返回一个原字符串右对齐,并使用空格填充至长度 width 的新字符串
str.center(width)返回一个原字符串居中对其,并使用空格填充至长度 width 的新字符串
str.lstrip()删除 str 左边的空白字符(空格 \r \n \t)
str.rstrip()删除 str 字符串末尾的空白字符
str.strip()删除 str 字符串两端的空白字符
str.rfind(obj)从右边开始检测 obj 是否包含在 str 中,如果是返回开始的索引值,否则返回-1
str.rindex(obj)从右边开始检测 obj 是否包含在 str 中,如果是返回开始的索引值,否则报错
str.partition(obj)把 str 以 obj 分割成三部分,obj前、obj、obj后
str.rpartition()类似于 partition() 函数,不过是从右边开始
str.splitlines()按照行分隔,返回一个包含各行作为元素的列表
str.isalpha()如果 str 所有字符都是字母,则返回 True ,否则返回 False
str.isdigit()如果 str 只包含数字,则返回 True ,否则返回 False
str.isalnum()如果 str 所有字符都是字母或数字,则返回 True ,否则返回 False
str.isspace()如果 str 中只包含空格,则返回 True ,否则返回 False
  • 注:以上并非全部内建函数

四、补充内容

  • 待续…
下一篇:Python基础(二):列表
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值