这一节,我们来学习一些对字符串的操作。
1、连接字符串
我们在PyCharm的编辑区中分别创建三个变量,并存入相应的值。
userName = '小楼' attribute = '身高' value = '182CM'
接下来,我们使用print()函数进行显示输出。
print(userName + attribute + value)
运行代码之后,显示的结果为:
除了加号这种连接方法之外,如果只是两段字符,大家还可以尝试下面这种方法。
str1 = '5月' str2 = '21日' str1 += str2 print(str1)
运行代码之后,显示的结果为:
上方代码中【str1 += str2】等同于【str1 = str1 + str2】。
其实,不仅仅字符串可以进行这样的运算,数字也可以。
例如:
num = 5 num += 1 print(num)
运行代码之后,显示的结果为:
上方代码中【num += 1】等同于【num = num + 1】。
2、获取字符串长度(字节数量)。
获取字符串长度的方法是:len()
例如,我们想知道“小楼是一个很帅的帅哥!”这句话一共多少个字节。
我们可以把这句话作为len函数的参数进行计算,然后保存到变量“l”中。
示例代码:
l = len('小楼是一个很帅的帅哥!') print (l)
运行代码之后,显示的结果为:
注意,当我们对中文进行编码,采用“UTF-8”编码类型时,一个汉字的字节数量是3。
示例代码:
l = len('小楼是一个很帅的帅哥!'.encode('UTF-8')) print (l)
运行代码之后,显示的结果为:
另外,如果对中文进行编码,采用“GBK”编码类型时,一个汉字的字节数量是2。
3、截取字符串
如果,我们需要对一个字符串进行截取,我们可以对字符串进行切片。
切片操作是将字符串赋值到一个变量,然后通过输入截取的起始位置、终止位置以及方向与间隔,对字符串进行不同方式的截取。
例如:
str[3:9:2]
这段代码表示对“str”这个变量中的字符串进行切片操作,“3”表示切片的起始位置为第4个字符(字符串中字符的索引位置从0开始),“9”表示切片的终止位置(终止位置不会被截取),“2”表示从左向右每隔1位进行截取(负数表示从右至左截取)。
接下来,为大家展示更详尽的切片操作。
我们为变量“str”赋值一个字符串“123456789”,然后切片操作的代码如下:
str = '123456789' print (str[:]) # 截取全部字符 print (str[2]) # 截取第3位字符 print (str[:3]) # 截取第1位到第4位之前的字符 print (str[2:5]) # 截取第3位到第6位之前的字符 print (str[5:]) # 截取第6个字符到末尾的字符 print (str[5::3]) # 从第6个字符开始每隔2个字符截取到末尾的字符 print (str[-1]) # 截取倒数第一个字符 print (str[:-3]) # 截取第1位到倒数第3位之前的字符 print (str[-3:-1]) # 截取倒数第3位到倒数第1位之前的字符 print (str[-3:]) # 截取倒数第3位到末尾的字符 print (str[::-1]) # 倒序截取全部字符 print (str[::-2]) # 倒序从倒数第1位开始每间隔1个字符截取字符 print (str[5::-1]) # 倒序截取第6位到开始的字符 print (str[5:2:-1]) # 倒序截取第6位到第3位之后的字符 print (str[:-6:-1]) # 倒序截取末尾到倒数第6位之后的字符 print (str[-1:-6:-1]) # 倒序截取末尾到倒数第6位之后的字符 print (str[-2:-8:-2]) # 倒序从倒数第2位开始间隔1位截取到倒数第8位之后的字符
提示:上方代码中“#”为单行注释标记符号,该符号右侧为注释内容,不会被程序执行。
运行代码之后,显示的结果为:
通过代码中的中文注释内容与运行结果进行对比,大家就能够理解切片操作的规则。
本节教程是字符串操作的一部分,在下一节教程中将继续讲解关于字符串的相关操作。
本节知识点:
1、连接字符串;
2、获取字符串长度(字节数量);
3、截取字符串。
本节英文单词与中文释义:
1、user:用户
2、name:姓名/名称
3、attribute:字段/属性
4、value:值
练习:
1、截取身份证号码“110421198403162021”中出生日期(第7位至第14位)的部分。
2、获取字符串“8A7B6C5D4E3F2G1”中所有小于7的奇数,并按从小到大的顺序显示。
答案:(见评论1楼)
转载请注明:魔力Python » Python3萌新入门笔记(3)
第二题: