python数据类型_字符串常用操作(详解)


Posted in Python onMay 30, 2017

这次主要介绍字符串常用操作方法及例子

1.python字符串

在python中声明一个字符串,通常有三种方法:在它的两边加上单引号、双引号或者三引号,如下:

name = 'hello'
name1 = "hello bei jing "
name2 = '''hello shang hai haha'''

python中的字符串一旦声明,是不能进行更改的,如下:

#字符串为不可变变量,即不能通过对某一位置重新赋值改变内容

name = 'hello'
name[0] = 'k' #通过下标来修改字符串的值,报错信息:TypeError: 'str' object does not support item assignment

python 字符串常用的内置方法,对字符串进行操作,如下:

in方法:

#in方法:判断内容是否存在字符串中
name = 'hello bei jing zao an '
print('hello' in name)  #判断hello 是否存在name里,执行结果为True
print('shang hai ' in name) #判断 shanghai 是否存在name里,执行结果为False

not方法:

name = 'hello bei jing zao an ' #定义字符串
#not方法:返回表达式结果的'相反值'。如果表达式结果为真,则返回False
print('hello' not in name) #判断hello 不存在name里,执行结果为False
print('abc' not in name) #判断abc 不存在name里,执行结果为True

is方法:

#is 判断的是 内存地址是否相同
a = 'xiaoming'
b = 'xiaoming'
print(a is b ) #a和b的值相同,内存里存放时,指向的内存地址相同,指向结果为True
print(id(a))
print(id(b)) #可以通过id(变量名)这个方法,查看变量的内存地址

字符串取值操作方法,如下:

names = 'hello bei jing one day'
print(names[0:10]) # 1.可以通过下标进行取值,切片,顾头不含尾,执行结果是:hello bei
for name in names:
  print(name)   #2.通过for循环取值,循环的是循环对象(names)里面的每一个元素
for k in range(len(names)):
  print(names[k]) #3.循环names的长度,进行取值,k的值是数字,相当于字符串的下标

字符串的endswith、isalnum、isalpha方法:

name = 'hello world is world'
print(name.endswith('d')) #判断是否以u结尾,执行结果为布尔值,工作中的例子:可以判断图片是否以jpg结尾
print('ab123'.isalnum())  #判断输入的字符串是否包含数字和字母,判断密码是否包含数字和字母时,可以使用,返回结果为布尔值
print('abcdA'.isalpha())  #判断输入的字符串是否是英文字母,返回结果为布尔值

判断输入的字符串是否为数字,如下:

name = ' abcdERF123'
print('123'.isdigit()) #判断输入的字符串是否为数字,返回结果为布尔值

去除字符串的空格,如下:

#去除空格
print('  ab fs'.lstrip())   #默认去掉字符串左边的空格和换行,执行结果:ab fs
print('hello  '.rstrip())   #默认去掉字符串右边的空格和换行,执行结果:hello
print('\nmysql abcd'.strip()) #默认去掉两边的空格和换行,执行结果:mysql abcd,中间的空格不可去除
print('mysqlmy'.strip('m'))  #去除指定的字符串,例如:去除两边的m元素,执行结果:ysqlm   y

字符串的join方法,如下:

#join是用来通过 某个字符串 拼接 一个可迭代对象的每个元素--->join(可迭代对象参数类型)
print('*'.join(name))   #将字符串中的每个元素都使用*号连接,执行结果:a*b*c*d*E*R*F*1*2*3,返回一个新的变量值
print('使用*号拼接后的name值:', name) #name字符串的内容未进行更改,执行结果:abcdERF123
nums = ['ybq', 'lhl', 'lsh']
print(','.join(nums))   #将列表转换为字符串,每个元素之间使用逗号连接,执行结果为:ybq,lhl,lsh
#另一种方法将列表转换为字符串
# nums = ['ybq', 'lhl', 'lsh']
# temp = ''
# for i in nums:
#   temp = temp+i+','   #列表转换为字符串,强制类型转换,执行结果为:ybq,lhl,lsh
# print(temp.strip(','))

替换replace字符串,如下:

st = 'mysql is db mysql mysql mysql'
print(st.replace('mysql', 'oracle'))  #将字符串中的mysql替换为oracle
print(st.replace('mysql', 'oracle', 1))  #替换的元素存在较多时,可以输入想替换的次数

查找find字符串,如下:

name = 'hello world is world'
print(name.find('world'))  #查找字符串的索引
print(name.find('world', 3, 10)) #可以指定查找字符串的范围,3,15 是开始、结束的下标值,下标值顾头不顾尾
print(name.find('xxx')) #查找的字符串不存在时,返回结果为-1
print(name.rfind('world')) #查找字符串,从后往前查找,执行结果为:15

切割字符串spilt,返回结果类型为list,如下:

#切割字符串,返回的类型是list
name1 = 'zcl,py,zyz,ywq' #将字符串切割成list
name1_list = name1.split(',') #按照逗号分割字符串,返回结果为list,name1的值未改变
print(name1_list)   #执行结果为list类型:['zcl', 'py', 'zyz', 'ywq']
print(name1.split()) #按照空格分割字符串,返回结果是list,只有一个元素,执行结果:['zcl,py,zyz,ywq']
print(name1.spilt('\n')) #按照换行符分割字符串

按照换行符分割字符串,不常用,如下:

print('1+2+3\n1+3+4'.splitlines())  #按照换行符分割,分割的是每一行文件的内容作为list的一个元素,执行结果:['1+2+3', '1+3+4']

字符串随机生成大小写字母、数字,用法如下:

import string
print(string.ascii_letters + string.digits) #输出所有的大小写字母+(0-9)的数字
print(string.ascii_letters)  #输出大小写的英文字母,执行结果:abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ
print(string.ascii_lowercase) #输出小写英文字母,执行结果:abcdefghijklmnopqrstuvwxyz
print(string.ascii_uppercase) #输出小写英文字母,执行结果:ABCDEFGHIJKLMNOPQRSTUVWXYZ

格式字符串,如下:

print(name.format(name='byz', age=18)) #格式化字符串显示
print(name.format_map({'name': 'zhangsan', 'age': 18})) #格式化字典

字符串不常用的方法,了解即可:

字符串中大小写字母的判断与转换,如下:

name = ' abcdERF123'
print('aa'.islower())  #判断输入的字符串是否为小写字母,返回结果为布尔值
print('ASD'.isupper()) #判断输入的字符串是否为大写字母
print(name.lower())   #将字符串中的大写字母变成小写,执行结果:abcderf123
print(name.upper())   #将字符串中的小写字母变成大写,执行结果:ABCDERF123
print('ABCdef'.swapcase()) #大小写字母反转,执行结果:abcDEF

字符串的映射,可以做密码加密使用,如下:

#映射
p = str.maketrans('abcdefg', '1234567') #前面的字符串和后面的字符串进行映射,a-->1,c-->3
print('ccaegg'.translate(p)) #输出结果按照上面的maketrans做映射后的字符串,执行结果为:331577
#反解映射
new_p = str.translate('1234567', 'abcdefg')
print('ccaegg'.translate(new_p)) #输出结果按照上面的maketrans做映射后的字符串,执行结果为:ccaegg

对字符串的首字母进行大写

name = 'hello world is world'
print(name.capitalize()) #首字母大写,执行结果:Hello world
print(name.center(50, '*')) #长度总共为50,将name字符串的值放在中间,两边补充*号显示

欢迎各位大牛进行补充~~~

以上这篇python数据类型_字符串常用操作(详解)就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持三水点靠木。

Python 相关文章推荐
python中二维阵列的变换实例
Oct 09 Python
python编辑用户登入界面的实现代码
Jul 16 Python
Python走楼梯问题解决方法示例
Jul 25 Python
利用Python如何批量更新服务器文件
Jul 29 Python
python3+django2开发一个简单的人员管理系统过程详解
Jul 23 Python
Python操作qml对象过程详解
Sep 26 Python
Pytorch之保存读取模型实例
Dec 30 Python
postman和python mock测试过程图解
Feb 22 Python
django admin 根据choice字段选择的不同来显示不同的页面方式
May 13 Python
详解Python yaml模块
Sep 23 Python
pytorch学习教程之自定义数据集
Nov 10 Python
Django与数据库交互的实现
Jun 03 Python
python数据类型_元组、字典常用操作方法(介绍)
May 30 #Python
node.js获取参数的常用方法(总结)
May 29 #Python
老生常谈python函数参数的区别(必看篇)
May 29 #Python
Python进阶_关于命名空间与作用域(详解)
May 29 #Python
浅谈对yield的初步理解
May 29 #Python
python多进程和多线程究竟谁更快(详解)
May 29 #Python
python 3利用BeautifulSoup抓取div标签的方法示例
May 28 #Python
You might like
玩转图像函数库―常见图形操作
2006/09/03 PHP
php目录操作函数之获取目录与文件的类型
2010/12/29 PHP
php中设置index.php文件为只读的方法
2013/02/06 PHP
php PDO异常处理详解
2016/11/20 PHP
php实现小程序支付完整版
2018/10/09 PHP
YII2框架中使用RBAC对模块,控制器,方法的权限控制及规则的使用示例
2020/03/18 PHP
ExtJs事件机制基本代码模型和流程解析
2010/10/24 Javascript
JS传值出现中文参数乱码的解决方法
2016/06/30 Javascript
jQuery图片切换动画特效
2016/11/02 Javascript
基于jPlayer三分屏的制作方法
2016/12/21 Javascript
jQuery实现加入收藏夹功能(主流浏览器兼职)
2016/12/24 Javascript
jQuery中绑定事件bind() on() live() one()的异同
2017/02/23 Javascript
浅谈Vue.js中ref ($refs)用法举例总结
2017/12/19 Javascript
微信小程序实现流程进度的图样式功能
2018/01/16 Javascript
vue-router 组件复用问题详解
2018/01/22 Javascript
vuex 的简单使用
2018/03/22 Javascript
vue通信方式EventBus的实现代码详解
2019/06/10 Javascript
Vue项目打包部署到iis服务器的配置方法
2019/10/14 Javascript
python数据清洗系列之字符串处理详解
2017/02/12 Python
python字典操作实例详解
2017/11/16 Python
磁盘垃圾文件清理器python代码实现
2020/08/24 Python
python版本五子棋的实现代码
2018/12/11 Python
VPS CENTOS 上配置python,mysql,nginx,uwsgi,django的方法详解
2019/07/01 Python
Python3实现发送邮件和发送短信验证码功能
2020/01/07 Python
HTML5如何实现元素拖拽
2016/03/11 HTML / CSS
美国著名珠宝品牌之一:Jared The Galleria Of Jewelry
2016/10/01 全球购物
大二自我鉴定范文
2013/10/05 职场文书
行政办公员自我评价分享
2013/12/14 职场文书
经贸韩语专业大学生职业规划
2014/02/14 职场文书
2014年教师节寄语
2014/04/03 职场文书
关于有小孩的离婚协议书
2014/10/26 职场文书
2014年公路养护工作总结
2014/12/04 职场文书
运动员代表致辞
2015/07/29 职场文书
周一问候语大全
2015/11/10 职场文书
介绍信应该怎么开?
2019/04/03 职场文书
应届生们该怎么书写求职信?
2019/07/05 职场文书