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 Web开发模板引擎优缺点总结
May 06 Python
pycharm 使用心得(四)显示行号
Jun 05 Python
Python中文竖排显示的方法
Jul 28 Python
matplotlib作图添加表格实例代码
Jan 23 Python
python 编写简单网页服务器的实例
Jun 01 Python
pandas 快速处理 date_time 日期格式方法
Nov 12 Python
使用Django2快速开发Web项目的详细步骤
Jan 06 Python
详解Python locals()的陷阱
Mar 26 Python
Python实现获取系统临时目录及临时文件的方法示例
Jun 26 Python
pytorch使用tensorboardX进行loss可视化实例
Feb 24 Python
Python使用jpype模块调用jar包过程解析
Jul 29 Python
关于Kotlin中SAM转换的那些事
Sep 15 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
PHP个人网站架设连环讲(一)
2006/10/09 PHP
加速XP搜索功能堪比vista
2007/03/22 PHP
php中实现精确设置session过期时间的方法
2014/07/17 PHP
smarty模板判断数组为空的方法
2015/06/10 PHP
php获取excel文件数据
2017/04/21 PHP
PHP中phar包的使用教程
2017/06/14 PHP
jquery获取input的value问题说明
2010/08/19 Javascript
使用PHP+JQuery+Ajax分页的实现
2013/04/23 Javascript
用js模拟struts2的多action调用示例
2014/05/19 Javascript
教你如何使用PHP输出中文JSON字符串
2014/05/22 Javascript
Javascript数组Array基础介绍
2016/03/13 Javascript
Vue 固定头 固定列 点击表头可排序的表格组件
2016/11/25 Javascript
Vue表单验证插件Vue Validator使用方法详解
2017/04/07 Javascript
JavaScript条件判断_动力节点Java学院整理
2017/06/26 Javascript
vue实现word,pdf文件的导出功能
2018/07/31 Javascript
JavaScript闭包与作用域链实例分析
2019/01/21 Javascript
详解javascript replace高级用法
2019/02/17 Javascript
生产制造追溯系统之在线打印功能
2019/06/03 Javascript
解决在Vue中使用axios用form表单出现的问题
2019/10/30 Javascript
Vue+ElementUI使用vue-pdf实现预览功能
2019/11/26 Javascript
解决py2exe打包后,总是多显示一个DOS黑色窗口的问题
2019/06/21 Python
python基于celery实现异步任务周期任务定时任务
2019/12/30 Python
彻底搞懂 python 中文乱码问题(深入分析)
2020/02/28 Python
2020新版本pycharm+anaconda+opencv+pyqt环境配置学习笔记,亲测可用
2020/03/24 Python
python 贪心算法的实现
2020/09/18 Python
Python爬虫分析微博热搜关键词的实现代码
2021/02/22 Python
Python项目实战之使用Django框架实现支付宝付款功能
2021/02/23 Python
在阿尔卑斯山或希腊度过快乐假期:Alpine Elements
2019/12/28 全球购物
2014年党员自我评价材料
2014/09/22 职场文书
大学生考试作弊检讨书1000字
2014/10/14 职场文书
百万英镑观后感
2015/06/09 职场文书
党员证明模板
2015/06/19 职场文书
新郎婚礼致辞
2015/07/27 职场文书
优秀教师主要事迹材料
2015/11/04 职场文书
python通配符之glob模块的使用详解
2021/04/24 Python
JS轻量级函数式编程实现XDM二
2022/06/16 Javascript