字符串
定义字符串
python
# 1. 单引号
name = 'tom'
# 2. 双引号
name = "jerry"
# 3. 多行字符串(注意这不是多行注释)
name = """
hello tom,
i am jerry
"""
字符串拼接
注意: python 中是使用 +
来拼接字符串的, 但是与 js 中不同的是, 无法自动转换类型, 只能是字符串拼接字符串, 或者数字与数字进行运算
python
print("hello " + "world")
print(11 + 22)
# print("hello" + 15) # 这样是不行的, 需要先转换类型
print("hello" + str(15)) # 这样才可以拼接
字符串格式化
占位符
占位符了解:
%s: 将内容转字符串并且放入占位符 %d: 将内容转整数并且放入占位符 %f: 将内容转浮点数并且放入占位符
python
# 注意这种方式会自动将变量的数据类型转换成字符串
name = "tom"
age = 11
msg = "hi, my name is %s, i'm %s years old" % (name, age)
print(msg) # hi, i am 11
f 模板
python
name = "tom"
age = 10
intro = f"hi, my nam is {name}, i'm {age} years old"
print(intro) # hi, my nam is tom, i'm 10 years old
print(f"1+1={1+1}") # 1+1=2
input 获取输入
input 方法返回一个字符串
, input 方法会让代码停止执行, 等待用户输入, 按下 enter 结束, 然后执行后续代码
python
password = input("请输入密码:")
print(f"你的密码是:{password}")
常用方法
正则表达式
创建正则
python
reg = r"^\d+$"
匹配字符串
python
import re
# 从头到尾必须是数字
reg = r"^\d+$"
# 无法匹配到就返回 None
print(re.match(reg, "12345")) # re.Match object
print(re.match(reg, "abc12")) # None
print(re.match(reg, "123ab")) # None
分组匹配
python
import re
matched = re.match(r'^(\d{3})-(\d{3,8})$', '010-12345')
if matched:
print(matched.groups()) # 返回一个所有分组匹配结果的元组 ('010', '12345')
print(matched.group(1)) # 返回第 1 个分组匹配的内容 010
print(matched.group(2)) # 返回第 2 个分组匹配的内容 12345
查找子字符串
python
import re
str1 = "hello world, hi python, hahaha"
regex = re.compile('h\\w+')
data = regex.findall(str1)
print(f"data: {data}")
print(f"type: {type(data)}")
# data: ['hello', 'hi', 'hon', 'hahaha']
# type: <class 'list'>
分割字符串
python
import re
str1 = "abc_123-asf=345@kds"
chunks = re.split(r"[\_\-\=\@]", str1)
print(f"chunks: {chunks}")
print(f"type : {type(chunks)}")
# console output:
# chunks: ['abc', '123', 'asf', '345', 'kds']
# type : <class 'list'>
替换字符串
python
import re
str1 = "hello world, hello python"
str2 = re.sub(r"hello", "hi", str1)
print(str2) # hi world, hi python