Python游戏世界打怪升级之新手指引五【字符串】

这一篇文章来学习Python的字符串,千万别小瞧了这个字符串;

Python的字符串,分别使用 ' '和" "来进行表示;但是别看他表示起来简单,但是方法可不少呢,

  • in,检查是否是子字符串
  • len(),获取长度
  • encode(),返回编码为bytes的字符串
  • decode(),讲字节编码为字符串
  • 字符串格式化
  • count(),返回子字符串出现的次数
  • find()、index();区别在于find超出的话不会报错,index则会报错
  • 转换大小写
  • join(),拼接字符串
  • 索引和切片
  • 字符串去除空白
  • replace()字符串替换
  • split(),分割字符串
  • 字符串检查

下面就一一介绍他们的用法

name = "Iron Man"
message = 'Hello World'
age = 35


# in,检查是否是子字符串
print('He' in message)  # True
print('hello' in message) # False

# len(),获取长度
print(len(message))  #11

# encode(encoding='utf-8', errors='strict'),返回编码为bytes的字符串,默认utf-8
print(name.encode()) # b'Iron Man'
print(type(name.encode())) # <class 'bytes'>

# decode(encoding='utf-8', errors='strict'),返回解码为str的字符串,默认utf-8
name_encode = name.encode() # b'Iron Man'
print(name_encode.decode()) # Iron Man
print(type(name_encode.decode())) # <class 'str'>


# format,格式化字符串
formatted_string = "My name is {0} and I am {1} years old.".format(name,age)
print(formatted_string) # formatted_string = f"My name is {name} and I am {age} years old."


# f{}格式化,推荐使用下面这一种
formatted_string = f"My name is {name} and I am {age} years old."
print(formatted_string) # My name is Iron Man and I am 35 years old.


# count(str,start,end);返回子字符串str再[start,end]返回内出现的次数
print(message.count('o',1,5)) # 1,从e开始数

# [start,end]可以非必填
print(message.count('o'))  # 2

# 当不填写子字符串的时候,返回字符之间的空字符串书,即字符串的长度加1
print(len(message))  #11
print(message.count('')) # 12



# find(str,start,end);返回子字符串再[start,end]切片内被找到的最小索引
print(message.find('o',6,10)) # 7

# [start,end]可以非必填
print(message.find('o')) # 4,从0开始数,第4个就是o

# 如果没有找到则返回 -1
print(message.find('M')) # -1



# index(str,start,end),和find类似,但是找不到的时候会报错
print(message.index('o',6,10)) # 7

# [start,end]可以非必填
print(message.index('o')) # 4,从0开始数,第4个就是o

# 如果没有找到则返回 -1
# print(message.index('M')) # ValueError: substring not found




# upper(),转换为大写
print(message.upper()) # HELLO WORLD
# lower(),转换为小写
print(message.lower()) # hello world
# isupper(),检查是否都为大写
print(message.isupper()) # False
# islower(),检查是否都为小写
print(message.lower().islower()) # True
# title(),将每一个单词的首字母大写
print(message.lower().title()) # Hello World
# capitalize(),讲字符串的首字母大写
print(message.capitalize()) # Hello world


# join(iterable),返回一个iterable中的字符串拼接成的字符串,如果有非法字符则报错
words = ['Hello','World']
result = " ".join(words)
print(result) # Hello World




# 索引
# 从0开始数,正序查找,超出则报错
print(result[3]) # l
# print(result[13]) # IndexError: string index out of range
# 倒序查找,从-1开始,依次-2、-3,超出则报错
print(result[-3]) # r
# print(result[-13]) # IndexError: string index out of range


# 切片 message = 'Hello World'
print(message[1:4])  # 输出: ell (从索引 1 到 3)
print(message[:3])   # 输出: Hel (从开头到索引 2,不包括3)
print(message[3:])   # 输出: lo World (从索引 3 到末尾,包括3)
print(message[::2])  # 输出: HloWrd (步长为 2)
print(message[::-1]) # 特殊的切片,相当于翻转了字符串 dlroW olleH


# 字符串去除空白,strip去除两端空白,lstrip去除左边,rstrip去除右边
message = ' Hello World !!  '
print(message.strip()) # Hello World !!
print(message.lstrip()) # Hello World !!
print(message.rstrip()) #  Hello World !!



# replace(old,new,count=-1)。new替换为old字符串。
# 如果count有值,则只替换前面count次出现;如果没有值,则全部替换
s = "apple,banana,cherry,apple,cherry,apple"
new_s = s.replace('apple','banana')
print(new_s) # banana,banana,cherry,banana,cherry,banana
new_s1 = s.replace('apple','banana',count=2)
print(new_s1) # banana,banana,cherry,banana,cherry,apple


# split(sep=None, maxsplit=-1),返回一个由字符串内单词组成的列表,使用 sep 作为分隔字符串
# 如果给出了 maxsplit,则最多进行 maxsplit 次拆分(因此,列表最多会有 maxsplit+1 个元素)。
# 如果 maxsplit 未指定或为 -1,则不限制拆分次数(进行所有可能的拆分)。
s = "apple,banana,cherry"
fruits = s.split(",")
print(fruits)  # 输出: ['apple', 'banana', 'cherry']
fruits = s.split(",",maxsplit=1) # ['apple', 'banana,cherry']
print(fruits)


# 字符串检查
# startswith(str, start, end)。检查字符串是否以str开始,返回True;
# 如果有可选项 start,将从所指定位置开始检查。 如果有可选项 end,将在所指定位置停止比较
s = "Python123"
print(s.startswith("Py"))  # True
print(s.startswith("Py",3)) # False
print(s.startswith("Py",0,3)) # True



# endswith(str,start,end).检查字符串以指定的str结束,返回True;
# 如果有可选项 start,将从所指定位置开始检查。 如果有可选项 end,将在所指定位置停止比较
s = "Python123"
print(s.endswith("123"))  # True
print(s.endswith("123",3)) # True
print(s.endswith("123",3,6)) # False


# isalpha(),如果字符串中的所有字符都为字母类并且至少有一个字符则返回 True,否则返回 False
print(s.isalpha()) # False

# isdigit(),如果字符串中的所有字符都是数字,并且至少有一个字符,返回 True ,否则返回 False
print(s.isdigit()) # False

# isalnum(),如果字符串中的所有字符都是字母或数字且至少有一个字符,则返回 True
print(s.isalnum()) # True

posted @ 2025-03-13 11:34  小鑫仔  阅读(17)  评论(0)    收藏  举报