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 contextlib模块使用示例
Feb 18 Python
Python中的urllib模块使用详解
Jul 07 Python
Python编程产生非均匀随机数的几种方法代码分享
Dec 13 Python
NLTK 3.2.4 环境搭建教程
Sep 19 Python
Python常见数据结构之栈与队列用法示例
Jan 14 Python
使用 Django Highcharts 实现数据可视化过程解析
Jul 31 Python
Python 如何优雅的将数字转化为时间格式的方法
Sep 26 Python
Python django搭建layui提交表单,表格,图标的实例
Nov 18 Python
Python3 pickle对象串行化代码实例解析
Mar 23 Python
在python里创建一个任务(Task)实例
Apr 25 Python
Pycharm激活方法及详细教程(详细且实用)
May 12 Python
解决pip安装tensorflow中出现的no module named tensorflow.python 问题方法
Feb 20 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
gd库图片下载类实现下载网页所有图片的php代码
2012/08/20 PHP
解析如何屏蔽php中的phpinfo()函数
2013/06/06 PHP
一个简单且很好用的php分页类
2013/10/26 PHP
php中spl_autoload详解
2014/10/17 PHP
PHP+Ajax实现验证码的实时验证
2016/07/20 PHP
TP(thinkPHP)框架多层控制器和多级控制器的使用示例
2018/06/13 PHP
PHP类的自动加载机制实现方法分析
2019/01/10 PHP
JavaScript TO HTML 转换
2006/06/26 Javascript
Javascript+XMLHttpRequest+asp.net无刷新读取数据库数据
2009/08/09 Javascript
javascrip客户端验证文件大小及文件类型并重置上传
2011/01/12 Javascript
js页面跳转的常用方法整理
2013/10/18 Javascript
jquery中change()用法实例分析
2015/02/06 Javascript
PHP和NodeJs开发的应用如何共用Session
2015/04/16 NodeJs
jQuery.cookie.js使用方法及相关参数解释
2017/03/06 Javascript
JS设置随机出现2个数字的实例代码
2017/07/19 Javascript
JavaScript基于数组实现的栈与队列操作示例
2018/12/22 Javascript
Vue 3.0 前瞻Vue Function API新特性体验
2019/08/12 Javascript
VUE注册全局组件和局部组件过程解析
2019/10/10 Javascript
Vue 解决父组件跳转子路由后当前导航active样式消失问题
2020/07/21 Javascript
[40:17]2018DOTA2亚洲邀请赛 4.5 淘汰赛 LGD vs Liquid 第一场
2018/04/06 DOTA
[55:44]OG vs NAVI 2019国际邀请赛小组赛 BO2 第一场 8.15
2019/08/17 DOTA
[01:20]PWL S2开团时刻第三期——团战可以输 蝙蝠必须死
2020/11/26 DOTA
更改Ubuntu默认python版本的两种方法python-> Anaconda
2016/12/18 Python
python使用opencv读取图片的实例
2017/08/17 Python
基于python3 类的属性、方法、封装、继承实例讲解
2017/09/19 Python
python通过opencv实现批量剪切图片
2017/11/13 Python
CSS3制作圆角图片和椭圆形图片
2016/07/08 HTML / CSS
Jimmy Choo美国官网:周仰杰鞋子品牌
2018/06/08 全球购物
Currentbody西班牙:美容仪专家
2019/09/28 全球购物
信息专业毕业生五年职业规划参考
2014/02/06 职场文书
经典演讲稿汇总
2014/05/19 职场文书
家庭财产分割协议范文
2014/11/24 职场文书
公司的力量观后感
2015/06/05 职场文书
2019年英语版感谢信(8篇)
2019/09/29 职场文书
nginx location优先级的深入讲解
2021/03/31 Servers
Python基础详解之邮件处理
2021/04/28 Python