Python数据类型-03.字符串
2018-07-25 13:12:25来源:博客园 阅读 ()
本文主要记录字符串的相关知识,包括字符串的定义特点,常用方法和
请知悉:
计算机中,一切皆为对象
世界万物,皆为对象,一切对象皆可分类
1.什么是字符串?
类似"hello world"就是一个字符串
定义:是一个有序的字符的集合,用于存储和表示基本的文字信息,一对单双或三引号中间包含的内容成为字符串
注意:变量声明中,不加引号的字符串表示变量,name=jack 会出错
2.字符串特点:
有序,不可变
字符串是特殊的元组,可以切片
3.字符串的格式化输出
字符串是 %s,整数 %d,浮点数%f
name = "Jack" print ("I am %s,how are you?" %name) --->I am Jack,how are you?
4.字符串的拼接和重复输出:
1) 字符串拼接("万恶的加号 +")
a = 'Helllo ' b = 'world ' print(a + b) --->'Hello world'
注意:
python中的字符串在C语言中体现为一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空间,一旦需要修改字符串,就需要再次开辟空间,会占用过多内存空间
原理:
使用加号连接2个字符串会调用静态函数string_concat(register PyStringObject *a ,register PyObject * b),在这个函数中会开辟一块大小是a+b的内存的和的存储单元,然后将a,b字符串拷贝进去。如果是n个字符串相连 那么会开辟n-1次内存,是非常耗费资源的。
2) 重复输出字符串(*)
name='jack ' print(name*5) -->jack jack jack jack jack
注意:“+”和“*”只能在字符串之间进行操作,不能跨数据类型
3)str.join()
连接2个字符串,可指定连接符号,常用
a='hello ' b='####' print(a.join(b)) --->#hello #hello #hello #
5.字符串常用方法:
1) str.count() # 字符数统计
字符串统计
s = 'Hello World' print(s.count('o')) --->2
2) str.strip() # 格式化输出
删除字符串两边的指定字符,默认为空格,\t为tab,\n为换行符
s = 'Hello World ' s.strip() --->'Hello World'
3) str.lstrip() # 格式化输出
删除字符串左边的指定字符,默认为空格
s = ' hello ' s.lstrip() --->'hello '
4) str.rstrip() # 格式化输出
删除字符串右边指定字符,默认为空格
s=' hello ' s.rstrip() --->' hello'
5) str.index 和str.find # 查找索引
功能相同,区别在于find()查找失败会返回-1,不会影响程序运行。
一般用find!=-1或者find>-1来作为判断条件。
str.find:检测字符串中是否包含子字符串str,可指定范围
s='hello world' print(s.find('l')) # 第一个索引为2 --->2 print(s.find('x')) # 找不到返回-1 --->-1
str.index:检测字符串中是否包含子字符串str,可指定范围
s='hello world' print(s.index('l')) -->2 print(s.index('x')) -----返回------ Traceback (most recent call last): File "D:/PyProjects/1.svndata/test.py", line 32, in <module> print(s.index('x')) ValueError: substring not found
6) str.len() #字符串长度
s = 'hello world' print(len(s)) --->11
7) "str" in | "str" not in # 测试是否包含
是否包含指定字符串
s = 'hello world' print('hello' in s) --->True print('123' not in s) --->True
8) 字符串中字母大小写转换
8.1) str.lower() # 转换为小写
s = 'Hello World' print(s.lower()) --->hello world
8.2) str.upper() # 转换为大写
s = 'Hello World' print(s.upper()) --->HELLO WORLD
8.3) str.swapcase() # 大小写互换
s = 'Hello World' print(s.swapcase()) --->hELLO wORLD
9) str.center() # 将字符串居中
可指定字符串长度以及两边填充的字符
s = 'hello world' print(s.center(40, '*')) --->**************hello world***************
10) 字符串的测试、判断函数
这类函数在string模块中没有,且返回的都是布尔值
str.isdigit() # 是否全是数字,并至少有一个字符 str.isalpha() # 是否全是字母,并至少有一个字符 str.isspace() # 是否全是空白字符,并至少有一个字符 str.isalnum() # 是否全是字母和数字,并至少有一个字符 str.islower() # Str中的字母是否全是小写 str.isupper() # Str中的字母是否全是大写 str.istitle() # Str是否是首字母大写的 str.startswith(prefix[ ,start[,end]]) # 是否以prefix开头 str.endswith(suffix[, start[, end]]) # 是否以suffix结尾
6. 字符串切片
str = '0123456789' print(str[0:3]) # 截取第一位到第三位的字符 print(str[:]) # 截取字符串的全部字符 print(str[6:]) # 截取第七个字符到结尾 print(str[:-3]) # 截取从头开始到倒数第三个字符之前 print(str[2]) # 截取第三个字符 print(str[-1]) # 截取倒数第一个字符 print(str[::-1]) # 创造一个与原字符串顺序相反的字符串 print(str[-3:-1]) # 截取倒数第三位与倒数第一位之前的字符 --->78 print(str[-3:]) # 截取倒数第三位到结尾 print(str[:-5:-3]) # 逆序截取,截取倒数第五位数与倒数第三位数之间 --->96
注意:
1)字符串对象是不可改变的,也就是说在python创建一个字符串后,你不能把这个字符中的某一部分改变。
2)任何上面的函数改变了字符串后,都会返回一个新的字符串,但是原字串并没有变。
3)字符串是可以通过下标来进行取值的,但是由于字符串是不可变变量,不能通过下标来修改它的值(形式如字符串[下标])
4)下标(索引值)从左边,从0开始,最大下标值是字符串长度减1,即len(string) - 1
完毕,呵呵呵呵
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash