Python不难学只要肯用心。
【Python从入门到精通】专栏课程:
一、字符串使用
在Python中,字符串是由n个(n>=0)字符组成的有序序列,它可以通过英文单引号('')或者英文双引号去创建。
下面我们将通过多种方式来创建字符串。
1.1 创建方式一
my_str = 'hello world'
print(my_str)
# 查看类型
print(type(my_str))
# 查看字符个数
print(len(my_str))
1.2 创建方式二
my_str = "hello world"
print(my_str)
# 查看类型
print(type(my_str))
# 查看字符个数
print(len(my_str))
这两种方式定义字符串是等效的,你可以根据个人喜好选择其中一种。这里的字符串可以包含任何字符,包括字母、数字、空格、标点符号等。
如果字符串本身包含引号字符,可以在字符串内使用不同类型的引号进行定义,或者使用转义字符 \
来表示引号。
补充:转义字符
在Python中,转义字符是以反斜线(\)开头的字符,可用于表示特殊字符或具有特殊含义的字符,例如n只是表示一个英文字母,若我们加上转义字符即\n那么此时就表示换行。常见的转义字符如下所示:
- \n:换行符
- \t:制表符
- \\:表示一个反斜线
- \": 表示双引号
- \': 表示单引号
- \r:回车,将光标移到行首
print('hello nTom')
print('-----------------')
print('hello \nTom')
通过使用转义字符,我们可以在字符串中插入特殊字符或避免字符的歧义,使字符串的表达更为灵活和准确。
1.3 创建方式三
在Python中还有一个比较特殊的用法那就是 多行注释可以用于充当字符串。
my_str = '''
我是一个多行注释字符串
'''
print(my_str)
# 查看类型
print(type(my_str))
# 查看字符个数
print(len(my_str))
二、切片
在Python中,切片是一种从可迭代对象(如字符串、列表、元组等)中获取子序列的操作。
在前面的列表教程中我们没有去讲解切片的知识点,这里我们将切片知识点放于字符串中进行讲解。
序列对象[start:end:step]
所谓的切片就是在序列对象中[start,end)的一个左闭右开的一个区间范围内按照按照指定的step步长去获取元素,并将获取得到的元素放置于新的列表中返回。
在上述切片语法中:start的默认值是0,end的默认值是len(序列对象)-1,step的默认值为1。
下面我们将通过案例逐步的去了解切片的知识点。
my_str = "在Python中,切片是一种从可迭代对象(如字符串、列表、元组等)中获取子序列的操作。"
# start和step使用默认值
section_list1 = my_str[:6]
print(section_list1)
my_str = "在Python中,切片是一种从可迭代对象(如字符串、列表、元组等)中获取子序列的操作。"
# step和end使用默认值
section_list1 = my_str[2:]
print(section_list1)
my_str = "在Python中,切片是一种从可迭代对象(如字符串、列表、元组等)中获取子序列的操作。"
# start和end使用默认值
section_list1 = my_str[::2]
print(section_list1)
my_str = "在Python中,切片是一种从可迭代对象(如字符串、列表、元组等)中获取子序列的操作。"
# 都使用默认值
section_list1 = my_str[::]
print(section_list1)
my_str = "在Python中,切片是一种从可迭代对象(如字符串、列表、元组等)中获取子序列的操作。"
# start和end使用负数
section_list1 = my_str[-12:-2:]
print(section_list1)
注意:切片操作中若start和end使用的是正数则表示start和end的范围是从前往后数,若为负数则表示从后往前数。
my_str = "在Python中,切片是一种从可迭代对象(如字符串、列表、元组等)中获取子序列的操作。"
# 都不使用默认值
section_list1 = my_str[1:-2:3]
print(section_list1)
三、API使用
在Python中,字符串是不可变类型的对象,它具有许多内置的方法和函数来进行字符串的操作和处理。
3.1 len()
该函数可以用于获取序列的元素个数,那么用在字符串身上就是用于获取字符串中字符个数。
my_string = "Hello, World!"
length = len(my_string)
print(length)
3.2 upper()&lower()
这两个方法可以实现字符串转换为全大写或全小写。
my_string = "Hello, World!"
uppercase_string = my_string.upper()
lowercase_string = my_string.lower()
print(uppercase_string)
print(lowercase_string)
3.3 find()& index()
这两个方法可以实现查找子字符串在原始字符串中的位置。
my_string = "Hello, World!"
index = my_string.find("World")
print(index)
index = my_string.index("World")
print(index)
在Python中,find()
和index()
是用于查找子字符串在原始字符串中的位置的方法,但它们之间有一些区别。
- 返回值:
find()
方法返回子字符串在原始字符串中第一次出现的索引值,如果子字符串不存在,则返回-1。而index()
方法也返回子字符串在原始字符串中第一次出现的索引值,但如果子字符串不存在,会抛出ValueError
异常。 - 错误处理:
find()
方法在子字符串不存在时,返回-1作为指示,不会引发任何异常。相反,index()
方法在子字符串不存在时,会引发ValueError
异常。因此,在使用index()
方法时,需要注意处理异常。 - 用法上的差异:
find()
方法是字符串对象的方法,可以直接调用。而index()
方法既可以作为字符串对象的方法调用,也可以作为str
类的静态方法调用,传入字符串作为第一个参数。
my_string = "Hello, World!"
# 使用find()方法
index1 = my_string.find("World")
print(index1)
index2 = my_string.find("Python")
print(index2)
# 使用index()方法
index3 = my_string.index("World")
print(index3)
index4 = my_string.index("Java")
print(index4)
3.4 replace()
在Python中该方法可以用来替换字符串中的特定子字符串。
my_string = "Hello, World!"
new_string = my_string.replace("Hello", "Hi")
print(new_string)
3.5 split()
Python可以通过该方法按照指定条件去分割字符串,并且将符合条件的字符串存于列表中返回。
my_string = "Hello, World!"
new_string = my_string.split(",")
print(new_string)
注意:对于替换和分割我们可以结合正则表达式来使用,对于正则表达式的使用将在下一期的教程中讲解。
3.6 join()
该方法用于将可迭代对象中的元素以指定的字符串作为分隔符连接起来,生成一个新的字符串。
separator = "<separator_string>"
joined_string = separator.join(iterable)
在上述语法中separator_string
是作为分隔符的字符串,iterable
是可迭代对象,例如列表、元组或字符串列表等。
# 使用join()方法将元组中的字符串连接起来
my_tuple = ("Python", "is", "awesome!")
joined_string = "-".join(my_tuple)
print(joined_string)
print('---------------')
# 使用join()方法将字符串列表连接起来
my_string_list = ["This", "is", "a", "sentence."]
joined_string = " ".join(my_string_list)
print(joined_string)
print('---------------')
# 使用join()方法将字符串连接起来
my_string = "Hello, World!"
joined_string = "-".join(my_string)
print(joined_string)
3.7 startWidth()&endWidth()
这两个方法用于检查字符串是否以指定的子字符串开头或者结尾,返回值为布尔值,若返回True则表示字符串确实是以子字符串作为开头或者结尾。
my_string = "Hello, World!"
result = my_string.startswith("Hello")
print(result)
print('-------------------------')
result = my_string.startswith("World")
print(result)
print('-------------------------')
result = my_string.startswith("Hello", 2)
print(result)
print('-------------------------')
result = my_string.startswith("Hello", 0, 5)
print(result)
print('-------------------------')
result = my_string.endswith("Hello")
print(result)
print('------------------------')
result = my_string.endswith("hello")
print(result)
当然Python中的字符串对象提供的方法还有很多,但是这里就不一一列举。
四、字符串格式化
我们在开发程序的时候可能会遇到一些将字符串和Python表达式混合使用的场景,当然我们可以直直接使用”+“进行字符串拼接也是可以的。
my_str1 = "我是"
my_str2 = ",今年"
my_str3 = "岁了。"
my_str4 = my_str1 + '张三' + my_str2 + str(29) + my_str3
print(my_str4)
上述的场景虽说可以使用字符串拼接的方式来完成,但是这样做还是比较麻烦的,对此我们可以使用字符串格式化操作来完成。
在Python中,字符串格式化是指将变量或值插入到字符串中的特定位置,以便形成最终的字符串。Python提供了多种方式来进行字符串格式化。
4. 1 占位符
我们可以通过使用占位符(如%s
、%d
)作为格式化标记,然后使用元组或字典提供对应的值。
name = "张三"
age = 29
my_str = "我是%s,今年%d岁了。"%(name,age)
print(my_str)
在上述代码中%s表示字符串占位符,%d则表示整数占位符 ,如果我们要使用浮点数,那么我们可以使用%f作为占位符。
name = "张三"
age = 29
my_str = "我是%s,今年%f岁了。"%(name,age)
print(my_str)
当然我们在进行字符串格式化时还可以控制精度和填充方式,所谓的精度我们可以理解为在字符串中指定为空出多个个字符位置用于字符串格式化,而填充方式则是指当精度高于格式化的字符数量那么使用什么字符去填充剩下的空位置。
name = "张三"
age = 29
# 控制精度
my_str = "我是%6s,今年%d岁了。"%(name,age)
print(my_str)
print('-----------------------')
# 控制填充格式
my_str = "我是%6s,今年%07d岁了。"%(name,age)
print(my_str)
print('------------------------')
my_str = "我是%-6s,今年%d岁了。"%(name,age)
print(my_str)
在上述代码中第一个输出name所对应的位置那里字段宽度设置为了6,由于name的长度小于6,所以默认使用空格进行填充;第二个输出中在age所对应的位置那里设置字段宽度为7,而age长度是2,对此剩下的5个空格使用指定的0进行填充;滴三个输出则是age对应的字段那里字段宽度设置为6,由于name长度只有2,对此使用空格填充,但是“-”却改变了对齐方式,也就是说将name字段所在位置由原来的右对齐改为左对齐。
4.2 format()
这是一种更灵活和推荐的字符串格式化方法。在字符串中使用占位符 {}
,并通过format()
方法提供对应的值。
name = "张三"
age = 29
# key-value的形式一一对应
my_str = "我是{name},今年{age}岁了。".format(name=name, age=age)
print(my_str)
print('---------------------------')
# 索引index的形式进行对应
my_str = "我是{0},今年{1}岁了。".format(name,age)
print(my_str)
print('---------------------------')
# 索引和key-value混合着使用
my_str = "我是{name},今年{0}岁了。".format(age,name=name)
print(my_str)
当然format也可以用于指定精度和填充方式。
首先我们来看format对应精度的指定。
name = "张三"
age = 29
# 指定精度
my_str = "我是{name:4},今年{age}岁了。".format(name=name, age=age)
print(my_str)
在上述代码中name字段后面的花括号4指的是在该字段位置将字段宽度设置为4。
接着我们再来看一下format对于填充方式的处理。
name = "张三"
age = 29
# 指定精度
my_str = "我是{name:a^6},今年{age}岁了。".format(name=name, age=age)
print(my_str)
在上述代码中6表示字段宽度,“^”表示居中对齐(这个位置用于规定字段的对齐方式),a则表示填充方式(这个位置用于规定填充空格的字符)。
我们在设置字段的对齐方式时可以以下选择:
- ^:居中对齐
- <:左对齐
- >:右对齐
name = "张三"
age = 29
# 指定精度
my_str = "我是{name:k>6},今年{age}岁了。".format(name=name, age=age)
print(my_str)
4.3 f-string
这是一种新的字符串格式化语法,用于Python 3.6及更高版本。它使用以f
开头的字符串,并使用花括号 {}
插入变量或表达式。
name = "张三"
age = 29
# 指定精度
my_str = f"我是{name:k>6},今年{age}岁了。"
print(my_str)
f-string提供了一种简洁、直观的方式来格式化字符串,特别适合格式化复杂的表达式或多个变量。
本期教程就到这里为止了,对于正则化将在后面的教程中进行讲解。
标签:入门,Python,name,字符串,详解,str,print,my,string From: https://blog.csdn.net/diamond_5446/article/details/136836079