python学习笔记:python字符串

二、python字符串操作符

1. 对象标准类型操作符

Python对象的标准类型操作符一共就三种:对象值的比较对象身份的比较布尔类型。其中对象值的比较主要是大于、小于、不等于等的数学比较符;对象身份的比较主要是is和is not这两个符号;布尔类型主要是not、and、or等的逻辑运算符。

字符串标准类型操作符也是这些,在做比较操作的时候,字符串是按照ASCII值的大小来比较的。

2. 序列类型操作符

切片操作符

主要分为三种,分别是正向索引、反向索引、默认索引。下图中显示索引的编号:

注意:起始/结束索引都没有指定的话会返回整个字符串,索引值指定为None,也会返回到字符串的开始或者结尾。

成员操作符

in或者not in。成员操作符判断一个字符或者一个子串是否是另一个字符串的一部分,出现则返回True,否则返回False。

写一个脚本idcheck.py,用来检测python变量。提示一些知识点:

>>> import string
>>> string.uppercase
‘ABCDEFGHIJKLMNOPQRSTUVWXYZ‘
>>> string.lowercase
‘abcdefghijklmnopqrstuvwxyz‘
>>> string.letters
‘abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ‘
>>> string.digits
‘0123456789‘

这里假设python变量至少由两个字符组成。

代码实现:

#! /usr/bin/python

import string

alphas = string.letters + ‘_‘
nums = string.digits

print ‘Welcome to the Identifier Checker v1.0‘
print ‘Python variables must be at least 2 chars long‘

myInp = raw_input(‘Identifier to test? ‘)

if len(myInp) > 1:

	if myInp[0] not in alphas:
		print ‘invalid: first symbol must be alphabetic‘
	else:

		for otherChar in myInp[1:]:
			if otherChar not in alphas + nums:
				print ‘invalid: remaining symbols must be alphabetic‘
				break
		else:
			print ‘okay as an Identifier‘
else:
	print ‘invalid: python variables must be at least 2 chars long‘

这里每次在循环的时候,都要用加号(+)字符串连接符,要开辟新的存储空间,所以效率很低。好的改进方案:

alphanums = alphas + nums
for otherChar in myInp[1:]:
	if otherChar not in alphanums:

还有就是for-else循环语句,这个else语句只在for循环完整结束,没有遇到break时执行。

连接符(+)

通过连接操作符从原有字符串获得一个新的字符串。

>>> s = ‘Spanish Inquisition Made Easy‘
>>> import string
>>> string.upper(s[:3] + s[20])
‘SPAM‘

上面的方法存在性能上的问题,因为python必须为每一个参加连接操作的字符串分配新的内存,包括产生的新的字符串。所以这里推荐使用字符串格式化操作符(%),或者把所有的字符串放到一个类表中,然后用一个join()方法把他们连接在一起。

>>> ‘%s %s‘ % (‘Spanish‘, ‘Inquisition‘)
‘Spanish Inquisition‘
>>> s = ‘ ‘.join((‘Spanish‘, ‘Inquisition‘, ‘Made Easy‘))
>>> s
‘Spanish Inquisition Made Easy‘
>>> (‘%s%s‘ % (s[:3], s[20])).upper()
‘SPAM‘

普通字符串转化为Unicode字符串

如果把一个普通字符串和一个Unicode字符串做连接处理,python自动会在连接操作前把普通字符串转化为Unicode字符串。

>>> ‘Hello‘ + u‘ ‘ + ‘World‘ +u‘!‘
u‘Hello World!‘

3. 只适用于字符串的操作符

格式化操作符

python风格的字符串格式化操作符,只适用于字符串类型,非常类似C语言里面的printf函数的字符串格式化。

python支持两个格式的输入参数。第一种形式是元组,第二种形式是字典类型。

先看一些字符串格式化符号和格式化操作符辅助命令:

看一些具体的例子:

>>> ‘%x‘ % 108
‘6c‘
>>> ‘%X‘ % 108
‘6C‘
>>> ‘%#x‘ % 108
‘0x6c‘
>>> ‘%f‘ % 1234.567890
‘1234.567890‘
>>> ‘%.2f‘ % 1234.567890
‘1234.57‘
>>> ‘%e‘ % 1234.567890
‘1.234568e+03‘
>>>
>>> ‘%+d‘ % 4
‘+4‘
>>> ‘%+d‘ % -4
‘-4‘
>>> ‘we are at %d%%‘ % 100
‘we are at 100%‘
>>> ‘Host: %s Port: %d‘ % (‘mars‘,80)
‘Host: mars Port: 80‘
>>> ‘MM/DD/YY = %02d/%02d/%d‘ % (2, 15, 67)
‘MM/DD/YY = 02/15/67‘

上面的例子用到的是元组作为输入参数,下面看一个字典类型的输入参数:

>>> ‘There are %(howmany)d %(lang)s Quotation Symbols‘ % {‘lang‘:‘Python‘, ‘howmany‘:3}
‘There are 3 Python Quotation Symbols‘

  

  

  

  

  

  

  

  

时间: 2024-12-20 18:06:49

python学习笔记:python字符串的相关文章

Python学习笔记--Python字符串连接方法总结

声明: 这些总结的学习笔记,一部分是自己在工作学习中总结,一部分是收集网络中的知识点总结而成的,但不到原文链接.如果有侵权,请知会,多谢. python中有很多字符串连接方式,总结一下: 1)最原始的字符串连接方式:str1 + str2 这个估计是Python中最常用的方式,直接用 “+” 来连接两个字符串: 'Jim' + 'Green' = 'JimGreen' 2)python 新字符串连接语法:str1, str2 第二种比较特殊,如果两个字符串用“逗号”隔开,那么这两个字符串将被连接

python学习笔记之字符串

python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间. 字符串的输出格式: >>>name = "test" >>>print("my name is %s " %name) --输出结果:my name is test PS: 字符串是 %s;整数 %d;浮点数%f 字符串的函数: c

python学习笔记-python安装

我是在读的大四学生,小白一枚,想要学习人工智能.我会把我每天所学的分享出来,希望那些跟我志同道合的人,咱们一起学习和交流. 那咱们就从python开始学起.第一次写博客,心里还有点小激动..嘻嘻 本教程非常简单,如果有编程基础的人可以直接跳过.我主要是还考虑到什么都不懂的小白.虽然我也是个小白,嘻嘻. python有两个版本,一个2.x,一个3.x, 建议学python3,因为后面要学习的一些东西python2可能不支持. 首先打开度娘,百度python,进入python官网 点击下载 底下有各

Python学习笔记(字符串)

一变量 1创建变量:d=4   表示将整型对象‘4’赋值给变量d 记住:一切数据都是对象 记住:一切变量都是数据对象的一个引用 分析:Python内部的引用计数.sys.getrefcount 2变量命名规范: (1)只能用字母和下划线 (2)不能用关键字如if等 (3)大小写敏感 3赋值: 记住多态特性 多重赋值 删除:del 一个等号=是赋值,两个等号==是比较 注意:三内置必须用熟.type,help,dir 4常用基本数据类型: (1)    int整型 (2)    boolean布尔

python学习笔记:字符串

string类型由多个字符组成,可以把字符串看成一个整体,也可以取得字符串中的任何一个部分. 函数len() 返回字符串的长度 >>> address = 'www.baidu.com' >>> len(address) 13 用for语句遍历字符串 从第一个字符开始,按照顺序读取字符,然后在做相应的处理,直到最后一个字符,这个处理过程我们称为遍历. >>> for char in address : ... print char 字符串片断 字符串的

python 学习笔记day04-python字符串、列表、元组

字符串 序列 序列类型操作符 序列操作符 作用 seq[ind] 获得下标为ind的元素 seq[ind1:ind2] 获得下标从ind1到ind2间的元素结合 seq * expr 序列重复expr次 seq1 + seq2 连接序列seq1和seq2 obj in seq 判断obj元素是否包含在seq中 obj not in seq 判断obj元素是否不包含在seq中 内建函数 函数 含义 list(iter) 把可迭代对象转换为列表 str(obj) 把obj对象转换成字符串 tuple

python学习笔记一--字符串

一.字符串: (一)字符串里单个元素的操作 1. 单个字符(元素)的序列组合. 2. 序列:单个字符的位置 3. 序列的操作:内置函数len获取长度,加位置索引 4. 获取字符串的里的元素:正向索引+反向索引 (二)字符串里多个元素的操作:分片 1. X[I:J]:取出X中从偏移量为I,直到但不包括偏移量为J的元素. 2. 一个分片中,左边界默认为0,并且右边界默认为分片序列的长度. 3. 作为序列,字符串支持使用加号进行合并,或重复. (三)字符串的内置方法及函数的调用: 1. 查询字符串支持

Python学习笔记3—字符串

原始字符串 使用\转义或者r,这种方法在网站设置网站目录结构的时候非常管用. >>> dos="c:\news" >>> print dos c: ews >>> dos="c:\\news" >>> print dos c:\news >>> dos=r"c:\news" #r开头的字符串就是原始字符串 >>> print dos c:\

Python学习笔记-Python的字符串和格式化

因为Python的诞生比Unicode标准发布的时间还要早,所以最早的Python只支持ASCII编码,普通的字符串'ABC'在Python内部都是ASCII编码的.Python提供了ord()和chr()函数,可以把字母和对应的数字相互转换: >>> ord('A') 65 >>> chr(65) 'A' Python在后来添加了对Unicode的支持,以Unicode表示的字符串用u'...'表示,比如: >>> print u'中文' 中文 &g

Python学习笔记(3)-字符串

创建字符串 一对单引号或双引号 >>> 'hello world' 'hello world' >>> "hello world" 'hello world' 可以字符串开始的引号之前加上r,忽略所有转义字符 三元引号,创建多行字符串,所有引号.制表符.换行都是字符串的一部分,可以作多行注释 >>> print(''' 你好 蔡威 再见''') 你好 蔡威 再见 使用str()进行类型转换 可以将Python数据类型转换为字符串 拼