Python第六章字符串精讲
python字符串实验总结

python字符串实验总结Python字符串实验总结引言:Python是一种非常流行的编程语言,它具有简洁易懂的语法和强大的功能。
字符串是Python中常用的数据类型之一,它在处理文本和字符相关的任务时非常重要。
本文将总结我在进行Python字符串实验过程中的一些经验和收获。
一、字符串的定义和基本操作:在Python中,字符串是用引号括起来的字符序列。
可以使用单引号或双引号来定义字符串,例如:```string1 = 'Hello, world!'string2 = "Python is awesome!"```字符串可以进行一些基本的操作,比如拼接、重复、索引和切片等。
拼接两个字符串可以使用加号运算符,例如:```string3 = string1 + " " + string2```这样就将两个字符串拼接在一起了。
字符串也可以重复多次,使用乘号运算符,例如:string4 = string1 * 3```这样就将字符串重复三次了。
通过索引和切片,可以获取字符串中的某个字符或子串,例如:```char = string1[0] # 获取第一个字符'H'substring = string1[7:12] # 获取子串'world'```二、字符串的常用方法:Python提供了许多内置方法来处理字符串,这些方法可以方便地进行字符串的操作和转换。
下面列举几个常用的字符串方法:1. len():返回字符串的长度;2. lower()和upper():将字符串转换为小写或大写;3. strip():去除字符串两端的空白字符;4. split():将字符串按照指定的分隔符分割成多个子串;5. join():将多个字符串拼接成一个字符串。
例如,可以使用len()方法获取字符串的长度:```length = len(string1)使用lower()方法将字符串转换为小写:```lowercase = string1.lower()```使用split()方法将字符串按照空格分割成多个子串:```words = string1.split(" ")```使用join()方法将多个字符串拼接成一个字符串:```joined_string = "-".join(words)```三、字符串的格式化输出:在实际应用中,经常需要将变量的值插入到字符串中,可以使用字符串的格式化输出来实现。
Python程序设计-第5章-字符串-第6章(2)-(第9次课)知识讲解

#Exp5_2.py s=raw_input('请输入几个数字,用逗号分隔:') li=s.split(',') print li sum=0 for x in li:
sum=sum+float(x) print 'sum=',sum 输入及程序运行结果: 请输入几个数字,用逗号分隔:23,2,5,12.3 ['23', '2', '5', '12.3'] sum= 42.3
Li2=Li[:]
print Li
Li.sort()
#列表元素按升序排序
print '升序:'
print Li
print Li2
print '降序:'
Li2.sort(reverse=True) #列表元素按降序排序
print Li2
程序运行结果:
['apple', 'peack', 'wps', 'word', 'access', 'excel', 'open', 'seek']
>>> s[1:3]
#取出位置为1到位置为2的字符,不包括3
'bc'
>>> s[:3]
#取出从头至位置为2的字符
'abc'
>>> s[4:]
#取出从位置4开始的所有字符
'ef'
>>> s[:]
#取出全部字符
python核心编程第二版课后题答案第六章

def idcheck():'''6-2 修改idcheck使之可以检测长度为一得标识符,并且可识别Python 关键字'''import stringimport keywordkeys = keyword.kwlistalphas = string.letters+'_'nums = string.digitsalphanums = alphas+numsprint 'Welcome to the Identifier Check V1.1'myInput = raw_input('identifier to test: ')isOne = False # 是否是一个字符if len(myInput) == 1:isOne = Falseif myInput in keys:print '''invalid:symbol has been defined'''return Falseelif myInput[0] not in alphas:print '''invalid:first symbol must be alphabetic'''return Falseelif not isOne:otherInput = myInput[1:]for otherChar in otherInput:if otherChar not in alphanums:print '''invalid:remainn symbols must be alphanumeric'''return Falseprint "okay as an Identifier"return Truedef order(nlist):'''6-3(a) 输入一串数字,从大到小排列注意:输入的是一个列表,其中的值为数字'''newlist = []for x in nlist:newlist.append(int(x))return sorted(newlist,reverse=True)def order2(nlist):'''6-3(b) 和a一样,不过要用字典序注意:字典序就是按字典的排列方式,比如21 就大于111 ,因为2大于1 方式就是把输入的数字变成字符串即可'''# 将里面的元素统统变成字符串先newlist = []for x in nlist:newlist.append(str(x))newlist = sorted(newlist,reverse=True)for i,x in enumerate(newlist):newlist[i] = int(x)return newlistdef avescore():'''输入测试得分,算出平均值'''scorelist = [] # 分数列表while True:myinput = raw_input('Input the score(if No number quite): ')try:scorelist.append(float(myinput))except:breakif not len(scorelist):return Falsereturn sum(scorelist)/len(scorelist)def showstr():'''6-5(a) 更新2-7 使之可以每次向前向后都显示一个字符串的一个字符'''istr = raw_input('Input string: ')lens = len(istr)if lens==0:return Falseif lens==1:print istrreturn Truefor i,j in enumerate(istr):if i ==0 and len(istr)!=1:print j,istr[i+1]elif i == len(istr)-1 and i != 0:print istr[i-1]else:print istr[i-1],j,istr[i+1]return Truedef mycmp():'''6-5(b)通过扫描判断两个字符串是否匹配,不能使用比较操作符或者cmp()''' str1 = raw_input('First string:')str2 = raw_input('Second string:')equal = len(str1) - len(str2)if not equal:return False # 表示长度不相等# 将字符串变成列表for i,j in enumerate(str1):if ord(j)-ord(str2[i]):#如果减下来不为0return Falsereturn Truedef isback():'''6-5(c)判断一个字符串是否是回文,忽略控制符号和空格[支持中文]'''import string# 控制符表示ASCII 码中0~31 以及127 这33个无法输出的字符denny = [chr(i) for i in xrange(0,32)]+list(string.whitespace)denny.append(chr(127))strs = raw_input('Please input string:')# 将输入的数据解码成unicode 因为在windows上默认是gbk,所以这里是gbk # 如果是在其他命令行中,应该以命令行输入的字符编码为主strs = strs.decode('gbk')new = []for i in strs:if i in denny:continuenew.append(i)lens = len(new)if lens%2:return Falseelse:half = lens/2if new[0:half] == new[-1:-half-1:-1]:return Truereturn Falsedef beback():'''6-5(d) 输入一个字符串在后面重复一个反向拷贝,构成回文'''strs = raw_input('Input string: ')# 将输入的数据解码成unicode 因为在windows上默认是gbk,所以这里是gbk # 如果是在其他命令行中,应该以命令行输入的字符编码为主strs = strs.decode('gbk') # 解码为unicodelens = len(strs)# 这里之所以是-1:-lens-1:-1# 分析如下:-1就是倒数第一个,-(lens+1) 就是长度,-1是步进# 就是说从倒数第一个开始-1(步进),一直减到倒数lens+1,由于切片里是[a:b] 是a<=x<b的,# 所以这里是lens+1 而不是lensreturn strs+strs[-1:-lens-1:-1]def strip():'''6-6 去掉输入的字符串的前面和后面的空格'''strs = raw_input('Input string: ').decode('gbk')new = u''# 由于只是去掉前面和后面的空格,所以不能遍历全部# 分析,从前面遍历到非空格停止,从后面遍历到非空格位置# 为了方便,我首先将字符串变成了列表strs = list(strs)lens = len(strs)for i in range(0,lens): # 从前面开始遍历if strs[i] == ' ':strs[i] =''else:breakfor i in range(-1,-lens-1,-1):if strs[i] == ' ':strs[i] = ''else:break# 将list 转成字符串nstrs = ''for i in range(0,lens):nstrs +=strs[i]return nstrsdef num2eng():'''6-8 输入一个整数,返回相应的英文,限定0~1000'''lists = ['zero','one','two','three','four','five','six','seven','eight','nine']new =''while True:try:iput = int(raw_input('Please input a int(0~1000): '))if iput <0 or iput >1000:continueexcept:continuebreakiput = str(iput)for j in iput:new += lists[int(j)]+'-'return new[0:-1]def minute2time():'''6-9 输入分钟,返回小时数和分钟'''minute = int(raw_input('Please input a minutes: '))hours = minute/60newminute = minute-hours*60return '%d:%02d' % (hours,newminute)def like():'''6-10 写一个函数,返回一个跟输入字符串相似的字符串,要求字符串的大小写反转例如:Mr.Ed 返回mR.eD'''import stringimport randomLetter = string.ascii_uppercase # 大写字母字符串letter = string.ascii_lowercase # 小写字母字符串name = raw_input('Input string: ')newname = ''for i in name:if i in Letter:newname += random.choice(letter)continueif i in letter:newname += random.choice(Letter)continuenewname +=ireturn newnamedef int2ip():'''6-11(a) 创建一个整数到IP地址的转换'''ints = raw_input('Input Int:')# 分析ip地址和整数的关系# ip地址是由4个字节组成,每个字节8位,换成16进制就是8 位# FF.FF.FF.FF ===> 11111111 11111111 11111111 11111111# 那么后面就是一个4位的二进制了# 我们要做的就是将十进制的长整数换成4个字节的二进制或者4个16进制,然后再将每个字节转成独立的十进制# 整数转成四个字节其实就是整数转16进制hexs = hex(int(ints))[2:] # hex转换后把最前面一个0x 先去掉,然后在前面填0 while len(hexs)<8:hexs = '0'+hexsip1 = int(hexs[0]+hexs[1], 16)ip2 = int(hexs[2]+hexs[3], 16)ip3 = int(hexs[4]+hexs[5], 16)ip4 = int(hexs[6]+hexs[7], 16)return '%03d.%03d.%03d.%03d' %(ip1,ip2,ip3,ip4)def ip2int():'''6-11(b) 将ip地址转成整数'''ip = raw_input('Input Ip:')# 分析:# 首先将ip转成列表# 然后变成十六进制,合并在一起# 然后将十六进制转成十进制ips = ip.split('.')ip = []for i in xrange(0,4):ip.append(int(ips[i]))ip[i] = hex(ip[i])[2:]if len(ip[i]) == 1:ip[i] = '0'+ip[i]return int(ip[0]+ip[1]+ip[2]+ip[3], 16)def findchr(string, char):'''6-12(a) 在string 中寻找char 找到返回索引,找不到返回-1不能使用find 或者index方法'''#strs = raw_input('Input string:')#char = raw_input('Input char:') # 书中并没有说是找一个字符还是多个,我们假设为多个lens = len(char) # 计算出char的长度# 我们可以用in 来指导是否存在if char not in string:return -1for i,j in enumerate(string):if j in char:# 找到一个首字母哦~~~if string[i:i+lens] == char: # 检查是否匹配return ireturn -1def rfindchr(string, char):'''6-12(b) 和findchr类似,不过是从后面往前面找'''lens = len(char)lenstr = len(string)if char not in string:return -1rstring = string[::-1] #倒置的stringfor i,j in enumerate(rstring):if j in char:# 索引比长度小1,所以lenstr -1# 因为i 是倒数的,所以整数就是# lenstr-1-iif string[lenstr-1-i:lenstr-1-i+lens] == char:return lenstr-1-ireturn -1def subchr(string, origchar, newchar):'''6-12(c) 和findchr类似只不过找到匹配的字符就用新字符替换掉原来的字符并且返回修改后字符串'''# 这里注意了,是要替换掉第一个,还是替换掉所有的呢?我这里默认是替换掉所有的lens = len(origchar)while True:index = string.find(origchar)if index >-1:# 我的做法是将字符串分割开两段,然后中间加入新字符串string = string[0:index] + newchar + string[index+lens:]else:breakreturn stringdef atoc(string):'''6-13 输入字符串返回复数,只能用complex不能用eval'''cindex = string.rfind('-')if cindex <= 0:cindex = string.rfind('+')if cindex >0 :real = float(string[0:cindex])compl = float(string[cindex:-1])return complex(real,compl)def rochambeau():'''6-14 石头剪子布,输入一个行为,计算机随即产生一个对应的行为,并进行比较看谁赢'''import randomselect = ['paper','shears','rock'] # 定个规则0>1>2cli = int(raw_input('Input your select[1.paper 2.shears 3.rock]: '))-1print ' --- You VS Computer ---'print '\nYou[ %s ]' % select[cli],cup = random.choice([0,1,2])print '\tComputer[ %s ]\n'% select[cup]youwin = ' --- You Win!!! ---'cupwin = ' --- Computer Win!!! ---'eq = ' --- Nobody Win ---'if cup == cli:print eqreturnif (cup-cli)==-2 or (cup > cli and (cli-cup != -2)):print cupwinelse:print youwindef date2date():'''6-15 计算两个日期间的天数'''# 由于现在已经是2000年后了,所以我这里不用DD/MM/YY 用DD/MM/YYYY 日/月/年# 这里用到了上面的isleapyear(year) 函数import datetimemonth = {1:31,2:28,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31} # 默认的月份和天数while True:# 这里做循环的目的是怕用户输入的日期不存在sdate = raw_input('Input Start Date[DD/MM/YYYY]: ').split('/')dd,mm,yyyy = 0,1,2sdate[dd],sdate[mm],sdate[yyyy] = int(sdate[0]),int(sdate[1]),int(sdate[2])if sdate[mm] > 12 or sdate[mm]<1:continueif isleapyear(sdate[yyyy]):month[2]=29if sdate[dd]<1 or sdate[dd] > month[sdate[mm]]:continuebreak;while True:edate = raw_input('Input End Date[DD/MM/YYYY]: ').split('/')edate[dd],edate[mm],edate[yyyy] = int(edate[0]),int(edate[1]),int(edate[2])if edate[mm] > 12 or edate[mm]<1:continueif isleapyear(sdate[yyyy]):month[2]=29if edate[dd]<1 or edate[dd] > month[edate[mm]]:continuebreak;# 挑简单的先解决,如果是同一天,返回0if sdate == edate:return 0# 如果是同年同月,直接相减if sdate[yyyy] == edate[yyyy] and sdate[mm]==edate[mm]:return edate[dd] - sdate[dd]# 如果是同一年,那么就要判断当年是不是闰年if sdate[yyyy] == edate[yyyy]:# 是闰年,则2月事29天if isleapyear(sdate[yyyy]):month[2] = 29# 然后开始计算月到月days = 0for i in xrange(sdate[mm]+1,edate[mm]): # 开始月到中止月之间的日期days+=month[i]# 最后加上开始日当月过了几天+结束月当月过了几天days += month[sdate[mm]]-sdate[dd] + edate[dd]return days# 如果不是同一年,先计算年与年之间的日期days = 0for year in xrange(sdate[yyyy]+1,edate[yyyy]):if isleapyear(year):days+=366else:days+=365# 然后计算起始年到年终的日期if isleapyear(sdate[yyyy]):month[2] = 29sdays = 0for i in xrange(sdate[mm]+1, 13):sdays+=month[i]sdays += month[sdate[mm]]-sdate[dd]# 最后计算终止年年头到结束日期if isleapyear(sdate[yyyy]):month[2]=29else:month[2] = 28edays = 0for i in xrange(1,edate[mm]):edays+=month[i]edays += edate[dd]return edays+sdays+daysclass matrix:'''6-16 矩阵东西比较多,我在这里做成了类来处理'''# 我用一个列表来表示初始矩阵# 这个矩阵式一个平面,包括纵向和横向# 我这里用横向表示二级# 例如# matrix = [[1,2,3],[2,3,4],[3,5,6]] 转成矩阵就是这样## | 1 2 3 |# | 2 3 4 |# | 3 5 6 |#matrix = []def __init__(self, matrix):self.matrix = matrixself.ylens = len(matrix)self.xlens = len(matrix[0])def ji(self,matrix2):'''6-16 求两个矩阵的积'''import copyif len(matrix2) != self.xlens:return Falseif len(matrix2[0]) != self.ylens:return Falsenew = copy.deepcopy(self.matrix) # 这里主要是复制格式for i in xrange(0, self.ylens):for j in xrange(0, self.xlens):new[i][j] += self.matrix[i][j]*matrix2[j][i]self.matrix = newreturn self.matrixdef add(self,matrix2):'''6-16 求两个矩阵的和'''if len(matrix2) != self.ylens:return Falseif len(matrix2[0])!=self.xlens:return Falsefor i in xrange(0, self.ylens):for j in xrange(0, self.xlens):self.matrix[i][j] += matrix2[i][j]return self.matrixdef sub(self,matrix2):'''矩阵减法'''if len(matrix2) != self.ylens:return Falseif len(matrix2[0]) != self.xlens:return Falsefor i in xrange(0, self.ylens):for j in xrange(0, self.xlens):self.matrix[i][j] -= matrix2[i][j]return self.matrixdef change(self):'''6-16 转置矩阵'''# 所谓转置就是将横和纵交换new_matrix = []for i in xrange(0,self.xlens):new_matrix.append([])for j in xrange(0,self.ylens):new_matrix[i].append([])new_matrix[i][j] = self.matrix[j][i]self.matrix = new_matrixreturn self.matrixdef mypop(inlist):'''6-17 功能类似pop'''del inlist[len(inlist)-1]return inlistdef showlist(inlist,row,xorder=True):'''6-19 输入任意项序列,把它们等距离分列显示,由调用者提供数据和输出格式以及排序方式是水平还是垂直''' numl = len(inlist)*1./rowif numl.is_integer : numl = int(numl)else:numl = int(numl)+1outlist = []x=0# 建立一个list,用来格式化输出col,row = numl,rowfor i in xrange(0, col):outlist.append([])for j in xrange(0, row):outlist[i].append([])outlist[i][j] = inlist[x]x+=1if xorder:outlist[i] = sorted(outlist[i])line =[x for x in xrange(0,col)]if not xorder: # 如果是垂直排序,处理一下for i in xrange(0, row):for j in xrange(0,col):line[j] = outlist[j][i]line = sorted(line)for x in xrange(0, col):outlist[x][i] = line[x]o = ''for i in xrange(0, col):for j in xrange(0,row):if j == row-1:o = '%d' % outlist[i][j]else: o='%d\t' %outlist[i][j]print o,if i!=col-1:print '\n'。
python 字符串的定义

python 字符串的定义
Python 字符串是一种用于表示文本数据的数据类型。
它可以包
含字母、数字、符号和空格等字符,并且可以使用单引号、双引号
或三引号来定义。
字符串在Python中是不可变的,这意味着一旦创建,它们的值就不能被改变。
Python提供了许多内置的方法和函数
来操作字符串,包括连接、分割、替换、大小写转换等。
在Python中,字符串可以通过以下方式定义:
使用单引号,'Hello, World!'。
使用双引号,"Hello, World!"
使用三引号,'''Hello, World!''' 或者 """Hello,
World!"""
字符串在Python中非常常见,因为它们被广泛用于存储和处理
文本数据。
无论是在数据处理、文本分析、网页开发还是其他领域,字符串都扮演着重要的角色。
在Python中,我们可以使用字符串来
表示文本信息、文件内容、用户输入等等。
同时,Python还提供了
丰富的字符串处理功能,使得我们可以轻松地对字符串进行各种操
作和处理。
总之,Python字符串是一种非常重要且灵活的数据类型,它为
我们处理文本数据提供了便利。
通过灵活运用字符串的方法和函数,我们可以轻松地实现各种文本处理需求,从而更高效地完成我们的
编程任务。
《python培训》字符串PPT课件

Python的控制结构
1 条件语句
根据条件判断执行不同 的代码块,如if语句和 switch语句。
2 循环结构
3 异常处理
重复执行相同的代码块, 如for循环和while循环。
捕获并处理程序运行时 出现的异常,保证程序 稳定运行。
Python的函数和模块
数据分析
利用Python处理和分析数据、生成可视化图 表。
人工智能
使用Python构建机器学习和深度学习模型, 实现智能功能。
自动化测试
通过Python编写测试脚本,自动化执行软件 测试。
Python的安装和配置
1
配置环境变量
2
设置系统环境变量,使Python可在载Python
类似于列表,但元素不能修改。
字典(Dictionary)
存储键-值对的无序集合,以键来访问值。
集合(Set)
存储无序唯一元素的集合。
Python的运算符
1 算术运算符
用于对数值进行基本的 算术运算,如加法、减 法、乘法等。
2 条件运算符
用于比较两个值之间的 关系,如等于、大于、 小于等。
3 逻辑运算符
1
函数
使用def关键字定义函数,封装可复用的代码块。
2
模块
将相关的函数和变量封装到模块中,提高代码的可维护性。
3
库
利用第三方库扩展Python的功能,解决更复杂的问题。
Python的文件操作
学习使用Python读取和写入文件,处理文件路径、文件属性以及文件内容的操作。
Python的面向对象编程
理解面向对象编程的概念,学习利用类和对象构建复杂的程序。
pythonstring 参数

pythonstring 参数
Python字符串参数指的是在Python编程中用于处理字符串的参数。
字符串是Python编程中最常用的数据类型之一,因此Python提供了丰富的字符串参数来满足不同的需求。
其中,Python字符串参数包括以下几种:
1. 字符串格式化参数:用于将变量以指定的格式插入到字符串中,常用的格式化参数包括%s、%d、%f等。
2. 字符串截取参数:用于获取字符串的一部分,常用的字符串截取参数包括[start:end]、[:end]、[start:]等。
3. 字符串查找参数:用于查找字符串中是否包含指定的子串,常用的字符串查找参数包括find()、index()、in等。
4. 字符串替换参数:用于将字符串中的指定子串替换为指定的字符串,常用的字符串替换参数包括replace()、translate()等。
5. 字符串分割参数:用于将字符串按照指定的分隔符进行分割,常用的字符串分割参数包括split()、rsplit()等。
总之,Python字符串参数是Python编程中非常重要的一部分,掌握了这些参数的使用方法,可以大大提高字符串处理的效率。
- 1 -。
python字符串的使用方法

python字符串的使用方法Python是一种高级编程语言,其中字符串是其中最重要的数据类型之一。
Python字符串是一系列字符,它们以一定顺序组成,是不可改变的。
在Python中规定一对单引号或者双引号中的一系列字符为字符串,即'Alice'和"Alice"都是字符串。
本文将会介绍Python字符串的一些基本操作。
1. 字符串的输出要输出一个字符串,可以使用print()函数。
例如,下面的代码将输出Hello World。
```print("Hello World")```2. 字符串的拼接字符串拼接就是将多个字符串连接起来组成一个新的字符串。
在Python中,字符串拼接有两种方式:使用+号或者使用join()方法。
例如:```#使用+号str1 = "Hello "str2 = "World"print(str1 + str2)#使用join()方法str1 = "Hello "str2 = "World"str3 = "!"print("".join([str1, str2, str3]))```两种方式的结果是相同的。
需要注意的是,使用join()方法时需要将待拼接的字符放在一个列表中。
3. 字符串的长度要获取一个字符串的长度,可以使用len()函数。
例如:```str = "Hello World"print(len(str))```输出结果为11,因为该字符串中包含11个字符。
4. 字符串的切片切片操作是指从一个字符串中截取部分字符。
可以使用字符串的下标(索引)来获取一个字符,也可以使用切片操作来获取字符串中的一段子串。
例如:```s = "Hello World"print(s[0]) #输出Hprint(s[2:8]) #输出llo Wo```上面的代码中,s[0]获取了字符串中的第一个字符,而s[2:8]则截取了索引为2到索引为8的字符。
Python字符串处理方法总结

Python字符串处理方法总结•目录•一、前言•二、字符串截取•三、字符串格式化•四、字符串填充•五、字母大小写转换•六、字符串判断•七、string模块常量•八、字符串查找•九、字符串替换•十、字符串分割和组合•十一、字符串转数字一、前言字符串处理是每一门编程语言的基本功。
我总结了一下字符串常用的处理方法。
python由于早期专门编写了一个string模块,后面又整合到字符串对象中。
所以python字符串处理有两种:一种是直接处理,一种是导入string模块处理。
为了向后兼容,python一直保留着string模块。
为了方便,先声明一下。
以下已经用 import string 导入string模块;用变量str代表字符串变量或字符串;三个>代表在控制台输入。
我整理了一个目录,可以直接点击跳转。
二、字符串截取这个字符串截取在python相当方便,因为python有切片器这个神奇的东西,而且字符串实际是一个字符数组。
注意切片器是从0开始的,需要两个参数指定起始位置(类似于C#或Java的substring方法),其中len函数是获取字符串的长度。
1、左截取3个字符:str[:3]2、右截取3个字符:str[len(str)-3:]3、从中间第2个字符开始截取3个字符:str[1:4]三、字符串格式化这个字符串格式化也是相当重要的一个功能。
python中用%s和元组来搭配使用。
例如:>>>"你好,我是%s。
来自%s" % ('杨仕航','地球')可以得到输出'你好,我是杨仕航。
来自地球'当然,还有其他格式化符号,这个比较简单。
大家可以百度搜索一下。
我一般会偷懒直接用%s万能代替。
四、字符串填充其实字符串填充是把不足位数的用指定字符填充进去。
严格来说,也可以归入到格式化里面。
为了系统化,我还是单独把这一部分独立出来。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
例6-5:格式化字符串
执行结果:
2018/10/10
17
例6-6:带精度的格式化
执行结果:
2018/10/10
18
Python格式化字符串的替代符及含义:
符号 %c 描述 格式化字符及其ASCII码 符号 %f 描述 格式化浮点数字,可指定小数 点后的精度
%s
%d %u %o %x
2018/10/10
22
例6-8:转义字符应用
执行结果:
2018/10/10
23
四、字符串函数(方法)
• Python字符串自带了大量很有用的函数,要查 看这些函数,可调用dir并将参数指定为任何字符 串(如:dir(' '))。 • 虽无必要准确记住所有函数功能,但最好有个大 致了解,这样有益于需要时去查询具体使用。 • 字符串函数的详细介绍可参阅其文档字符串或 Python在线文档( https:///3/)。 • 此处介绍常用的字符串函数。
2018/10/10
21
Python常用的转义字符及其含义:
符号 \\ 反斜线 描述 符号 \v 纵向制表符 描述
\’ \”
\a \b \n \t
单引号 双引号
发出系统响铃声 退格符 换行符 横向制表符
\r \f
\o \x \000
回车符 换页符
八进制数代表的字符 十六进制数代表的字符 终止符,其后的字符串全部忽略
2018/10/10 24
1、测试函数
• 用于检测字符串是否为特定格式的函数, 它们组成了一个最大的字符串函数组。 • 测试函数都返回True或False,因此也称 为布尔函数或谓词。
2018/10/10 3
二、通用序列操作
• Python中,字符串、列表和元组都属于 序列。 • 序列有一些通用的操作。包括:索引( indexing)、分片(slicing)、加( adding)、乘(multiplying)、检查 某个元素是否属于序列的成员(成员资格 )、计算序列长度、找出最大元素和最小 元素等。
2018/10/10 4
1、索引
• 序列中的所有元素都是有编号的—从0开始 递增。这些元素可以通过编号分别访问。 索引有正索引和负索引,可根据实际情况 选用。 • 字符串就是一个由字符组成的序列,处理 字符串时,经常需要访问其中的各个字符 。索引0指向第1个字符。
2018/10/10
5
例如:字符串’apple’的正索引和负索引
4、乘法
• 用数字x乘以一个序列会生成新的序列,在新的 序列中,原来的序列被重复x次。 • 如:
2018/10/10 12
5、成员资格
• 为了检查一个值是否在序列中,可以使用 in运算符。该运算符检查某个条件是否为 真,若为真返回True,否则返回False。 • 例如:
2018/10/10
13
6、长度、最小值和最大值
Python语言编程导论
第六章 字符串
2018/10/10
1
内容提要
• 概述 • 通用序列操作 • 字符串格式化 • 字符串方法 • 正则表达式简介
2018/10/10
2
一、概述
• 在Python中,字符串是除数字外最重要的 数据类型。字符串无处不在:将字符串输出 到屏幕上;从用户的键盘输入读取字符串; 文件通常被视为大型字符串;网页大部分是 由文本组成的。 • 字符串是一种聚合数据结构,可充分利用索 引和切片—用于从字符串中提取子串。 • 而Python正则表达式库,是一种用来处理 字符串的微型语言,但功能强大。
2018/10/10
19
例6-7:符号、对齐和用0填充
• 在字段宽度和精度之间还可以放置一个“标志”,该标志 可以是零、加号、减号或空格。零表示数字将会用0填充。
执行结果:
2018/10/10
20
2、字符串的转义字符
• 计算机中存在可见字符与不可见字符。可见 字符指键盘上的字母、数字和符号。不可见 字符是指换行、回车、制表符等字符。 • 对于不可见字符,Python使用的方法类似 于C语言,都是使用“\”作为转义字符。 • Python还提供了函数strip()、lstrip() 、rstrip()去除字符串中的转义字符。
格式化字符串
格式化整数 格式化无符号整数 格式化无符号八进制数 格式化无符号十六进制数
%e
%E %g %G %p
用科学计数法格式化浮点数
作用同%e 根据值的大小决定使用%f或 %e 作用同%g 用十六进制数格式化变量的地 址
%X
格式化无符号输出“%”,需 要使用“%%”
2018/10/10 9
例6-3:字符串分片
执行结果:
2018/10/10
10
例6-4:返回文件名中的扩展名
执行结果:
2018/10/10
11
3、序列相加(字符串连接、合并)
• 之前介绍过,使用“+”完成。除此之外,还可 以使用join函数和reduce函数实现字符串的合 并。注意:不同类型的数据不能相加。 • 如:
2018/10/10
6
例6-1:字符串索引应用
执行结果:
2018/10/10
7
例6-2:计算给定字符串的编码总和
执行结果:
2018/10/10
8
2、分片
• 与使用索引访问单个元素类似,可以使用分片操作 来访问一定范围内的元素。分片是实际应用中经常 使用的技术,被截取的部分称为“子串” • Python 3支持的分片格式为:S[i:j:k] • 表示:索引S对象中的元素,从索引为i直到索引为 j-1,每隔k个元素索引一次,第三个限制k为步长 ,默认为1,也可以使用负数作为步长,步长-1表 示分片将会从右至左进行而不是通常的从左至右, 实际效果主是将序列反转。 • 在Python中,还可以使用split()函数来截取字 符串。
• • • • • len、min和max都是内置函数。 len—返回序列中包含的元素个数。 min—返回序列中的最小值。 max—返回序列中的最大值。 例如:
2018/10/10
14
课堂练习一:
• 课堂练习一
2018/10/10
15
三、字符串格式化
1、字符串格式化
• C语言使用函数printf()格式化输出结果, Python也提供了类似功能。 • Python将若干值插入带有“%”标记的字符串 中,从而可以按照指定格式输出字符串。 • 语法: "%s" % str1 "%s %s" % (str1, str2)