python数据类型之String(字符串)
String(字符串)
1、概述
字符串是以单引号或双引号括起来的任意文本,比如“abc”,‘xy’等等,请注意‘’或者“”本身只是一种表示方式,并不是字符串的一部分。
a.若字符串内部包含单引号又包含双引号怎么办?
print('I\'m \"ok\"')
表示的字符串内容是:
I'm "ok"
注意:转义字符\可以转义很多字符,比如\n表示换行,\t表示制表符,字符\本身也需要转义,所以\\表示的字符就是\等等
>>>print('I\'m ok.')
I'm ok.
>>>print('I\'m learning\n python.')
I'm leanring
Python.
>>> print('\\\n\\')
\
\
但是,如果字符串里面很多字符串需要转义,就需要添加很多,为了简化,python还允许用r’’“(或者R"")表示内部的字符串默认不转义。
>>> print('\\\t\\')
\ \
>>>print(r'\\\t\\')
\\\t\\
如果字符串内部很多换行,用\n写在一行里不好阅读,为了简化,python允许用’’’…’’'的格式表示多行内容:
>>> print('''line1
line2
line3''')
line1
line2
line3
2.创建字符串
str1 = "hello world"
str2 = 'you are good'
3.字符串运算
3.1字符串连接
3.1.1 使用加号进行连接
#字符串的连接,通过“+”进行连接
s1 = 'welcome '
s2 = 'to guangzhou'
print(s1 + s2)
输出:
welcome to guangzhou
注意:字符串 + 数字,这样会报错,不同类型的不能相加
3.1.2 使用“,”进行连接【tuple类型】
s1 = 'hello'
s2 = 'world'
print(s1, s2)
#使用“,”连接的时候,在“,”的位置会产生一个空格
输出:
hello world
3.1.3 使用%格式化连接
s1 = 'hello'
s2 = 'world'
print("%s %s"%(s1, s2))
输出:
hello world
3.1.4 使用join函数进行连接
s1 = ['hello', 'world']
print("".join(s1))
print("*".join(s1))
输出:
helloworld
hello*world
注意:"".join()函数只需要传递一个参数【字符串、列表、元组、字典(输出无序)、集合(输出无序),其中的元素应该是字符串类型】。
3.2 重复输出字符串
#重复输出字符串,通过乘法的方式实现
s3 = 'good'
print(s3 * 3)
输出:
goodgoodgood
3.3 获取字符串中的字符
#通过索引的方式实现
#索引:给一个字符串中的字符从0开始编号,也称为下标
#索引的取值范围:[0,len(str)-1]
#访问方式: 变量名称[索引]
str3 = 'good'
print(str3[0])
#索引值还可以从-1开始,-1代表倒数第一个字符
print(str3[-1])
输出:
g
d
3.3 截取字符串
# 通过下标截取字符串
str1 = "hello world"
print(str1[3:6])
#注意:截取字符串的范围是str[start : end] 它是一个前闭后开的区间[start,end)
#如果n的值超过了字符串的最大长度,则仍然截取原下标的长度
#从开头截取到指定索引之前[0,5)
print(str1[:5])
#从指定截取到结尾[4,len(str1))
print(str1[4:])
#注意在使用str[start : end]来截取字符串的时候,若start不写默认从第一个字符开始
#若end不写,则默认到最后一个字符结束。取头去尾。
print("012345"[1:-1])
输出:
lo
hello
o world
1234
3.5 判断是否包含指定字符
#判断字符串中是否包含某指定字符串
str4 = "you are a good boy"
print("good" in str4)
#若包含有则返回True否则为False
输出:
True
3.6 格式化输出
#通过%来改变后面的字母或者是符号的含义,%被称为占位符
# %s:格式化字符串
# %d:格式化整数
# %f:格式化浮点数,可指定小数点后的精度
age = 18
name = "丽丽"
weight = 45.5
print("my name is %s , I am %d year old and my weight is %.2f kg"%(name, age, weight))
#注意:%.nf表示精确到小数点后n位,会四舍五入
输出:
my name is 丽丽 , I am 18 year old and my weight is 45.50 kg
4.关于字符串常用函数
4.1 eval(str)
功能:将字符串str当成有效的表达式来求值并返回计算结果。
可以把list,tuple,dict和string相互转化
>>>num1 = eval('123')
>>>print(num1)
123
>>>num2 = eval("[1, 2, 3]")
>>>print(num2)
[1, 2, 3]
>>> num3 = eval("12-3")
>>> print(num3)
9
4.2 len(str)
功能:返回当前字符串的长度(字符的个数)
>>> len("you are good")
12
4.3 str.lower()
功能:返回一个把字符串中的大写字母转换为小写字母 的字符串
>>> str = "Hello World"
>>> print(str.lower())
hello world
注意:此方法不改变原本的字符
4.4 str.upper()
功能:返回一个把字符串中的小写字母转换为大写字母的字符串
>>> str = "Hello World"
>>> print(str.upper())
HELLO WORLD
4.5 str.swapcase()
功能:返回一个把字符串中的大写字母转为小写字母,小写字母转换为大写字母的字符串
>>> str = "Hello World"
>>> print(str.swapcase())
hELLO wORLD
4.6 str.capitalize()
返回一个首字母大写,其他小写的字符串
>>> str = "Hello World"
>>> print(str.capitalize())
Hello world
4.7 str.title()
返回一个每个单词首字母大写的字符串
>>> str = "Hello World"
>>> print(str.title())
Hello World
4.8 str.center(width[, fillchar])
功能:返回一个指定宽度的居中字符串,fillchar为填充的字符串,默认使用空格
>>> str = "Hello World"
>>> print(str.center(50,"*"))
*******************Hello World********************
4.9 str.ljust(width[, fillchar])
功能:返回一个指定宽度的左对齐字符串,fillchar为填充字符。默认使用空格填充
>>> str = "Hello World"
>>> print(str.ljust(50,"*"))
Hello World***************************************
4.10 str.rjust(width[, fillchar])
功能:返回一个指定宽度右对齐字符串,fillchar为填充字符,默认使用空格填充
>>> str = "Hello World"
>>> print(str.rjust(50,"*"))
***************************************Hello World
4.11 str.zfill(width)
功能:返回一个长度为width字符串,原字符串右对齐,前面补0
>>> str = "Hello World"
>>> print(str.zfill(50))
000000000000000000000000000000000000000Hello World
4.12 str.count(str 【,start】【, end】)
功能:返回字符串中str出现的次数,可以指定一个范围,若不指定则默认从头到尾,匹配的时候是区分大小写的。
>>> str = "Hello World"
>>> print(str.count("hello", 0 , 10))
0
4.13 str.find(str1【, start】【, end】)
功能:从左到右检测str1字符串是否包含在字符串中,可以指定范围,默认从头到尾。
返回的是第一次出现的开始的下标,若未查询到,则返回-1
>>> str = "Hello World"
>>> str1 = "llo"
>>> print(str.find(str1, 0 , 10))
2
4.14 str.rfind(str1【, start】【, end】)
功能:类似于str.find(),不过是从右边开始查找
>>> str = "Hello World"
>>> str1 = "llo"
>>> print(str.rfind(str1, 0 , 10))
2
4.15 str.index(str1[, start = 0] ,[ end = len(str)])
功能:类似于find(),与find() 不同的是,如果str1不存在的时候会报一个异常
>>> str2 = "Hello World"
>>> str1 = "hello"
>>> print(str2.index(str1, 0 , 10))
ValueError: substring not found
4.16 str.lstrip()
功能:截掉字符串左侧指定的字符串,默认为空格
>>> str = '**** you are very good'
>>> print(str.lstrip())
>>> print(str.lstrip())
**** you are very good
>>> print(str.lstrip("*"))
you are very good
4.17 str.rstrip()
功能:截掉字符串右侧指定的字符串,默认为空格
>>> str = '**** you are good****'
>>> print(str.rstrip())
**** you are good****
>>> print(str.rstrip("*"))
**** you are good
str1 = "*nih*a*o*"
print(str1.strip('*'))
输出:
nih*a*o
4.18 string.split(str="", num=string.count(str))
功能:以 str 为分隔符切片 string,如果 num有指定值,则仅分隔 num 个子字符串
str – 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。 num – 分割次数
>>> str1 = "hello you are good"
>>> str1.split()
['hello', 'you', 'are', 'good']
>>> str1.split(" ",2)
['hello', 'you', 'are good ']
4.19 str1.splitlines([keepends])
功能:字符串会按照行(’\r’,’\r\n’,’\n’)进行分割,返回一个包含各行作为元素的列表,如果参数keepends的值为False,不包含换行符,如果为True,则保留换行符。参数keepends默认为False。
str2 = '''how are
you ?
i am
fine
!
'''
list2 = str2.splitlines()
print(list2)
输出:
['how are', 'you ?', 'i am', 'fine', '!']
str2 = '''how are
you ?
i am
fine
!
'''
list2 = str2.splitlines(keepends=True)
print(list2)
输出:
['how are\n', 'you ?\n', 'i am\n', 'fine\n', '!\n']
4.20 str1.join(seq)
功能:以指定字符串作为分隔符,将seq中的所有元素合并成为一个新的字符串。
list2 = ['you', 'are', 'very', 'great', '!']
str3 = ' '.join(list2)
print(str3)
输出:
you are very great !
str1 = "how are you , i am fine thank you"
str3 = "*".join(str1)
print(str3)
输出:
h*o*w* *a*r*e* *y*o*u* *,* *i* *a*m* *f*i*n*e* *t*h*a*n*k* *y*o*u
注意:如果连接的是字符串,则它会把字符串中的每个字符使用指定字符连接。
4.21 获取最大最小字符
max(str):功能: 返回字符串str中最大的字母
str1 = "how are you , i am fine thank you"
print(max(str1))
输出:
y
min(str):功能:返回字符串str中最小字母
str1 = "how are you , i am fine thank you"
print(min(str1))
输出:
' '
注意:比较的是ASCII码值
4.22字符串的替换
str.replace(old , new [, count])
功能:将字符串中的old替换成new,若不指定count,则默认全部替换,若指定count,则替换前count个
str1 = "how are you , i am fine thank you"
str2 = str1.replace("you" ,'me')
print(str2)
输出:
how are me , i am fine thank me
4.23字符串的映射替换
dic = str.maketrans(oldstr, newstr)
str2.translate(dic)
参数一:要转换的字符 参数二:目标字符
str5 = ""
dic = str5.maketrans("ac", "21")
# a--2 c--1
str7 = "how are you ,u ewe c "
print(str7.translate(dic))
输出:
how 2re you ,u ewe 1
注意:很少用。
4.24 判断字符串的开头结尾
str.startswith(str1, start=0, end=len(str))
功能:在给定的范围内判断字符串是否以给定的字符串开头,如果没有指定范围,默认整个字符串。
str1 = "aaa bbb ccc deee"
print(str1.startswith("aa"))
str1 = "aaa bbb ccc deee"
print(str1.startswith("aa", 3, 9))
输出:
True
False
str.endswith(str, start=0, end=len(str))
功能:在给定的范围内判断字符串是否以指定的字符串结尾,若没有指定范围,默认为整个字符串。
str1 = "aaa bbb ccc deee"
print(str1.endswith("deee"))
str1 = "aaa bbb ccc deee"
print(str1.endswith("e", 3 ,9))
输出:
True
False
4.25 编码与解码
str.encode(encoding=“utf-8”, errors=“scrict”)
功能:字符串的编码,若不指定encoding则默认选择utf-8。
str1 = "你好吗?"
data = str1.encode()
print(data)
print(type(data))
输出:
b'\xe4\xbd\xa0\xe5\xa5\xbd\xe5\x90\x97\xef\xbc\x9f'
<class 'bytes'>
str.decode(encoding=“utf-8”)
"hello".encode(“utf-8”).decode()
功能:对字符进行解码,若不指定编码格式,则默认选择utf-8
str1 = "你好吗?"
data = str1.encode()
print(data)
print(type(data))
data2 = data.decode()
print(data2)
print(type(data2))
输出:
b'\xe4\xbd\xa0\xe5\xa5\xbd\xe5\x90\x97\xef\xbc\x9f'
<class 'bytes'>
你好吗?
<class 'str'>
注意:解码时的编码格式要与编码时的保持一致
拓展:errors = ignore 的时候,忽略错误
4.26 判断是否为字母或数字
str.isalpha()
功能:判断字符串至少有一个字符,并且所有的字符都是字母(或者包含汉字),若为真则返回True,否则返回False
str8 = "hello ni hao "
print(str8.isalpha())
str9 = "你好"
print(str9.isalpha())
输出:
False
True
str.isalnum()
功能:判断一个字符串至少有一个字符,并且所有的字符都是字母或数字(或者包含汉字)则返回True否则返回False
str9 = '1234你好'
str10 = "sc22xdcd"
str11 = "ss1 2dd"
print(str9.isalnum())
print(str10.isalpha())
print(str11.isalnum())
输出:
True
True
False
4.27 判断大小写
str.isupper()
功能:若字符串中包含至少一个字母的字符,并且这些字母都是大写,则返回True,否则返回False
str10 = "AA2221 你111"
print(str10.isupper())
str10 = "AAaaa"
print(str10.isupper())
输出:
True
False
str.islower()
功能:若字符串中包含至少一个字母的字符,并且这所有的字母都是小写,则返回True,否则返回False。
str10 = "aa2221 你111"
print(str10.islower())
输出:
True
4.28 判断是否包含特殊字符
1、str.istitle()
功能:如果一个字符串是标题化的则返回True,否则返回False
【标题化】每个首字母大写。
str1 = "Hello World"
print(str1.istitle())
输出:
True
2、str.isdigit()
功能:判断字符是否全为数字。
isdigit()
True: Unicode数字,byte数字(单字节),全角数字(双字节)
False: 汉字数字, ,罗马数字
Error: 无
print("123".isdigit())
print("123a".isdigit())
输出:
True
Fals
3、str.isnumeric()
功能:若字符串中只包含数字字符,则返回True,否则返回False。
isnumeric()
True: Unicode数字,全角数字(双字节),汉字数字
False: 罗马数字,
Error: byte数字(单字节)
print("123一".isnumeric())
print("123a".isnumeric())
输出:
True
False
4、str.isdecimal()
功能:检查字符串是否只包含十进制字符【0,9】,如果是返回True,否则返回False。
isdecimal()
True: Unicode数字,,全角数字(双字节),
False: 罗马数字,汉字数字
Error: byte数字(单字节)
print("123".isdecimal())
print("123z".isdecimal())
输出:
True
False
5、str.isspace()
功能:如果字符串只包含空格,则返回True,否则返回False。
print(" ".isspace())
print("\t".isspace())
print("\n".isspace())
print("\r".isspace())
print(" qq".isspace())
输出:
True
True
True
True
False
4.29 ASCII码转换
1、ord(str)
功能:获取字符串的整数表示 ASCII码值。
print(ord("A"))
print(ord("你"))
输出:
65
20320
2、chr(str)
功能:把编码转成对应的字符。
print(chr(68))
print(chr(20190))
输出:
D
仞
后记
【后记】为了让大家能够轻松学编程,我创建了一个公众号【轻松学编程】,里面有让你快速学会编程的文章,当然也有一些干货提高你的编程水平,也有一些编程项目适合做一些课程设计等课题。
也可加我微信【1257309054】,拉你进群,大家一起交流学习。
如果文章对您有帮助,请我喝杯咖啡吧!
公众号
关注我,我们一起成长~~
python数据类型之String(字符串)的更多相关文章
- 数据类型总结——String(字符串类型)
相关文章 简书原文:https://www.jianshu.com/p/546a755c3eb6 数据类型总结——概述:https://www.cnblogs.com/shcrk/p/9266015. ...
- Python学习笔记(五)--Python数据类型-数字及字符串
Python数据类型:123和'123'一样吗?>>> 123=='123'False>>> type(123)<type 'int'>>> ...
- python 数据类型---布尔型& 字符串
python数据类型-----布尔型 真或假=>1或0 >>> 1==True True >>> 0==False True python 数据类型----- ...
- python数据类型一:字符串
Python 字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号('或")来创建字符串. 创建字符串很简单,只要为变量分配一个值即可.例如: var1 = 'Hello W ...
- python初步学习-python数据类型之strings(字符串)
数据类型-字符串 字符串是 Python 中最常用的数据类型.我们可以使用引号(''或者"")来创建字符串 var1 = 'Hello World!' var2 = "P ...
- Python数据类型中的字符串类型
1.换行字符:\n print ('I love python.\nAnd you?') 2.转义字符(\):\\ print ('\\\n\\') 3.制表字符(对齐表格的各列):\t print ...
- 2、Python 基础类型 -- String 字符串类型
字符串常用的方法: 1.分割:string.split(str="", num=string.count(str)) 以 str 为分隔符切片 string,如果 num 有指 ...
- Python数据类型-布尔/数字/字符串/列表/元组/字典/集合
代码 bol = True # 布尔 num = 100000000; # 数字 str = "fangbei"; # 字符串 str_cn = u"你好,方倍" ...
- Python 数据类型及其用法
本文总结一下Python中用到的各种数据类型,以及如何使用可以使得我们的代码变得简洁. 基本结构 我们首先要看的是几乎任何语言都具有的数据类型,包括字符串.整型.浮点型以及布尔类型.这些基本数据类型组 ...
随机推荐
- 坐标下降(Coordinate descent)
坐标下降法属于一种非梯度优化的方法,它在每步迭代中沿一个坐标的方向进行线性搜索(线性搜索是不需要求导数的),通过循环使用不同的坐标方法来达到目标函数的局部极小值.
- Leetcode-dfs & bfs
102. 二叉树的层次遍历 https://leetcode-cn.com/problems/binary-tree-level-order-traversal/ 给定一个二叉树,返回其按层次遍历的节 ...
- MySQL数据库入侵及防御方法
来自:http://blog.51cto.com/simeon/1981572 作者介绍 陈小兵,高级工程师,具有丰富的信息系统项目经验及18年以上网络安全经验,现主要从事网络安全及数据库技术研究工作 ...
- 启动你的Android应用:运行设备模拟器和调试代码(第3部分)
下载all source for Test Proj: Test.zip - 306 KB 文章指出 本文包含了我即将出版的新书<启动Android应用程序>中的第三章. 在我完成这本书之 ...
- MySQL - 常用三种数据库存储引擎
数据库存储引擎:是数据库底层软件组织,数据库管理系统(DBMS)使用数据引擎进行创建.查询.更新和删除数据.不同的存储引擎提供不同的存储机制.索引技巧.锁定水平等功能,使用不同的存储引擎,还可以获得特 ...
- 汕尾6397.7539(薇)xiaojie:汕尾哪里有xiaomei
汕尾哪里有小姐服务大保健[微信:6397.7539倩儿小妹[汕尾叫小姐服务√o服务微信:6397.7539倩儿小妹[汕尾叫小姐服务][十微信:6397.7539倩儿小妹][汕尾叫小姐包夜服务][十微信 ...
- python 产生随机函数random
random是内建(built-in)函数,作用是产生随机数 导入模块: 接着就可以调用random模块下的函数了使用 dir(random)可以查看random模块下有哪些函数,结果如下: 最常用的 ...
- selenium等待机制学习笔记
转载至: https://blog.csdn.net/huilan_same/article/details/52544521 1. 强制等待 第一种也是最简单粗暴的一种办法就是强制等待sleep(x ...
- 【原创】有利于提高xenomai 实时性的一些配置建议
版权声明:本文为本文为博主原创文章,转载请注明出处.如有错误,欢迎指正. @ 目录 一.影响因素 1.硬件 2.BISO(X86平台) 3.软件 4. 缓存使用策略与GPU 二.优化措施 1. BIO ...
- from lxml import etree报错
使用的是python3.7的环境,解析数据要用xpath,系统是mac pip install lxml一分钟后...下载成功 开始写代码, from lxml import etree挂了-,lxm ...