1、Python3 程序设计 主讲教师:3 Python中的字符串软件工程师系列Python3程序设计程序设计第3章 Python中的字符串 本章内容本章内容 字符串的表示 字符串的格式化 用%操作符格式化字符串 format()方法 字符串的操作符 字符串处理函数 输入/输出语句软件工程师系列Python3程序设计程序设计3.1 字符串的表示 字符串字符串的的定义定义 str,字符集合,被引号包含。引号可以是单引号、双引号或者三引号 单引号和双引号包含的是单行字符 三引号可以包含多行字符串三个引号能包含多行字符串,经常出现在函数声明的下一行,用来注释函数的功能。转义字符转义字符用于表示一些在某些
2、场合不能直接输入的特殊字符。符符号号含义含义符符号号含义描述含义描述续行符n换行反斜杠符号t横向制表符单引号r回车双引号f换页a响铃ooo八进制b退格xhh十六进制0空other 其它的字符软件工程师系列Python3程序设计程序设计3.2 字符串的格式化 用用%操作符格式化操作符格式化字符字符 使用一个字符串作为模板。模板中的格式符用作显示值预留位置,并说明显示数值应该呈现的格式。Python用一个元组(tuple)将多个值传递给模板。%(name)flagswidth.precisiontypecode#显示十进制数%d%d%(12,12.3)12 12#设定十进制数显示宽度%6d%6d%
3、(12,12.3)12 12#显示字符串和整数,分别设置宽度%10s is%-3d years old%(Rose,18)Rose is 18 years old软件工程师系列Python3程序设计程序设计3.2 字符串的格式化 字符串输出的字符串输出的格式格式化化 format()方法方法str.format()方法,更方便字符串格式化。(1)模板字符串与format()方法中参数的对应关系 位置参数匹配 如果占位符为空(没有表示顺序的序号),按照参数出现的先后次序匹配。如果占位符指定参数的序号,按照序号对应参数替换。使用键值对的关键字参数匹配 format()方法中的参数用键值对形式表示时
4、,在模板字符串中用“键”来表示。使用序列的索引作为参数匹配软件工程师系列Python3程序设计程序设计3.2 字符串的格式化 字符串输出的字符串输出的格式格式化化 例2-10 模板字符串与format()方法中参数的关系。#位置参数 is years old.format(Rose,18)Rose is 18 years old 0 is 1 years old.format(Rose,18)Rose is 18 years old Hi,0!0 is 1 years old.format(Rose,18)Hi,Rose!Rose is 18 years old#关键字参数 name was
5、born in year,He is age years old.format(name=Rose,age=18,year=2000)Rose was born in 200,He is 18 years old 软件工程师系列Python3程序设计程序设计3.2 字符串的格式化 字符串输出的字符串输出的格式格式化化 (2)模板字符串str的格式控制 fillalignsignwidth,.precisiontype 例:例:print(:*8.format(3.14)#宽度8位,右对齐*3.14 print(:*print(0:8,0:*8.format(3.14)#宽度8位,居中对齐 3.
6、14 ,*3.14*软件工程师系列Python3程序设计程序设计3.3 字符串的操作符 实现字符串的连接、子串的选择、子串的包含判断等操作。操作符操作符描述描述+连接字符串*重复输出字符串i切片操作。通过索引获取字符串中字符,i是字符的索引:切片操作。截取字符串中的一部分in如果字符串中包含给定的字符返回 Truenot in如果字符串中不包含给定的字符返回 Truer/R原始字符串。原始字符串用来替代转义符表示的特殊字符,在原字符串的第一个引号前加上字母 r(R),与普通字符串操作相同。b返回二进制字符串,在原字符串的第一个引号前加上字母b,可用于写二进制文件,例如 b123。%格式化字符串
7、操作符软件工程师系列Python3程序设计程序设计3.3 字符串的操作符 例例3-5 字符串操作符的应用。str1=Hi,Python!str1*2#str1重复显示2次,str1未发生改变Hi,Python!Hi,Python!id(str1)#str1在内存中标识#54364264 str1+=Hi,Java!id(str1)#str1连接字符串后,id发生改变54338768 str1#Hi,Python!Hi,Java!#字符串切片操作 str13:9#Python软件工程师系列Python3程序设计程序设计3.4 字符串处理函数 内置的字符串处理函数1.大小写转换函数大小写转换函数2
8、.查找替换函数查找替换函数3.字符判断函数字符判断函数.字符串头尾判断函数字符串头尾判断函数5.计算函数计算函数6.字符串拆分与合并字符串拆分与合并type()函数,用于测试变量类型id()函数,用于测试变量的id值format()函数软件工程师系列Python3程序设计程序设计3.4 字符串处理函数 内置的字符串处理函数1.大小写转换函数大小写转换函数函数名lower()upper()capitalize()swapcase()例例3-6 大小写转换函数的应用。str1=hi,Python str1.lower()hi,python str1.upper()HI,PYTHON str1.ca
9、pitalize()Hi,python str1.swapcase()HI,pYTHON软件工程师系列Python3程序设计程序设计3.4 字符串处理函数 内置的字符串处理函数2.查找替换查找替换函数函数 例例3-7 查找替换函数的应用。str1=hi,Python!hi,Java!str1.find(hi)#0 str1.rfind(hi)#10 str1.index(a)str1.rindex(a)函数名功能描述find(str,strat,end)检测str是否包含在字符串中,如果指定范围start和end,则检查是否包含在指定范围内。如果包含,返回str的索引值,否则返回1软件工程师系
10、列Python3程序设计程序设计3.4 字符串处理函数 内置的字符串处理函数6.字符串拆分与字符串拆分与合并合并 str1=hi,Python,hi,Java!str1.split(,)#使用逗号做分配符,3个逗号,分隔3次 hi,Python,hi,Java!lst=hi,Python!,hi,Java!s=s.join(lst)#将列表连接为字符串,#hiPython!hiJava!函数名功能描述split(sep,num)以sep为分隔符分隔字符串,如果num有指定值,则仅截取num个子字符串join(seq)以指定字符串作为分隔符,将seq中所有的元素合并为一个新的字符串软件工程师系列
11、Python3程序设计程序设计3.5 输入/输出语句 输入语句输入语句 input()函数用于取得用户的输入数据。varname=input(promptMessage)varname是input()函数返回的字符串数据 promptMessage是提示信息,其参数可以省略 当程序执行到input()函数时,会暂停执行,等待用户输入,用户输入的全部数据均作为输入内容 使用eval()函数得到表达式的数值,int()或float()函数也可以使用。软件工程师系列Python3程序设计程序设计3.5 输入/输出语句 输输出出语句语句 print()函数完成基本的输出操作。print(objl,se
12、p=,end=n,file=sys.stdout)同时输出一个或多个对象,在输出多个对象时,对象之间默认用逗号分隔。指定输出分隔符,使用sep参数指定分隔符号。end参数指定输出结尾符号,默认以回车换行符作为输出结尾符号。使用file参数可指定输出到特定文件。软件工程师系列Python3程序设计程序设计3.5 输入/输出语句 输输出出语句语句例例3-13 print()函数的使用。x,y,z=100,200,300 print(x,y,z)#print()函数中的多个参数用逗号分隔100 200 300 print(x,y,z,sep=#)#设置print()函数的输出分隔符为#100#200
13、#300 print(x);print(y);print(z)#3个print()语句,默认分行显示#print()设置end参数,用空格分隔,不换行 print(x,end=);print(y,end=);print(z)100 200 300软件工程师系列Python3程序设计程序设计小结 Python中的字符串是字符的集合,它被单引号、双引号或者三引号包围。可以使用%操作符格式化字符串,又可以使用str.format()方法格式化字符串,第2种方法更为常用。使用+、*、等运算符可以实现字符串的运算和切片操作。字符串的函数包括大小写转换函数、查找替换函数、判断函数、计算函数、拆分合并函数等类型,必要时请读者查阅Python帮助文档。id()函数,主要用于数据测试。Python的内置函数input()用于取得用户输入的数据,print()函数用于基本的输出操作。软件工程师系列Python3程序设计程序设计作业:(1)编写程序,给出一个英文句子,统计单词个数。(2)编写程序,给出一个字符串,将其中的字符“E”用空格替换后输出。(3)从键盘交互式输入一个人的18位的身份证号,以类似于“2001年09月12日”的形式输出该人的出生日期。软件工程师系列Python3程序设计程序设计