博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
字符串
阅读量:5257 次
发布时间:2019-06-14

本文共 3259 字,大约阅读时间需要 10 分钟。

 一.字符串的定义,循环

1.字符串取值

字符串是可以通过下表来进行取值的,但是由于字符串是不可变变量,不能通过下标来修改它的值

下标取值的格式:

        变量名[X]   X为第几个元素

        变量名[X:Y] X为从第几个元素开始,Y为从第几个元素结束

names='zhangsan lisi xiaoming' print(names[1]) print(names[0:7])

返回结果:

h

zhangsa

 

2.字符串循环

python里面的for循环,每次循环的时候,循环的是循环对象里面的每一个元素

names='zhangsan lisi xiaoming' for name in names:     print(name)

返回结果:

z

h

a

n

g

s

a

n

 

l

i

s

i

 

x

i

a

o

m

i

n

g

其他语言通常这么写: names='zhangsan lisi xiaoming' for i in range(len(names)):     print(names[i])

返回结果是一样的,可是操作会有些繁琐

其中len(names)是取变量的长度

 

3.修改字符串中的值

注意因为字符串是不可变的变量,所以是不可以进行修改它里面的值,只可以根据下标进行取值,不可以修改,除非是重新给要修改的变量进行赋值

names='zhangsan' # name[0]='lisan' #字符串赋值不能这么写,会报错的 names='lisan' print(names) 二

返回结果:

lisan

 一.字符串的方法
注意:所有字符串的方法,它都不会修改原来字符串的值,都会产生一个新的字符串

1.find()方法:查询字符串中元素对应的索引

1)格式为:find (元素,X,Y)

元素为需要查找的元素

X代码的是下标,表示从哪里开始找

Y 代码的也是下标,表示从哪里结束

print(name.find('world'))# 查找字符串的索引,与列表中index方法差不多,只是index找不到的话会报错的 print(name.find('he',0,1))#  找到的话返回第一次出现的索引,找不到返回-1 print(name.find('el',0,5))# 可以再后面设定查找的范围,与index方法一样

返回结果:

  6

  -1

  1

注意:find方法和index方法的区别是,find找不到返回-1,index则会报错

2)Rfind()从后往前找,找到之后返回下标

st= 'mysql is db. mysql mysql mysql' print(st.rfind('mysql'))#

返回结果:

       25

2.Strip()方法默认去掉左右两边的换行符

print('\nmysql \n'.lstrip())  # 默认去掉左边的空格和换行 print('\nmysql \n'.rstrip())  # 默认去掉右边的空格和换行 print('\nmysql \n'.strip())  # 默认去掉两边边的空格和换行 print('mysqlm     '.strip('m'))#当你传入某个字符串的话,它就只会去掉你指定的字符串

返回结果:

mysql

 

 

mysql

mysql

ysqlm

 

3.replace放法,替换字符串中的值

格式replace(被替换元素,要替换为的元素,X)---X为替换几次

st= 'mysql is db. mysql mysql mysql' print(st.replace('mysql', 'oracle',2))  # 替换字符串

返回结果:

oracle is db. oracle mysql mysql

4.Split方法切割字符串,返回一个list,按照你指定的字符串去分隔这个字符串,然后放到一个list里面

st= 'zhang,li,jia,ling' Na='zhang  lii jia ling ' print(st.split()) #将字符串中的所有元素作为一个元素生成一个list print(st.split(',')) #将字符串中的所有元素以','分割,生成一个list print(Na.split()) #如果你什么都不写的话,按照空格分割,多个空格也算一个

返回结果:

['zhang,li,jia,ling']
['zhang', 'li', 'jia', 'ling']
['zhang', 'lii', 'jia', 'ling']
注意如果你什么都不写的话,按照空格分割,多个空格也算一个

Splitlines()按照换行符进行分割,通常在文件中会用到

Na='zhang  lii\njia ling ' print(Na.splitlines())

返回结果:

['zhang  lii', 'jia ling ']

5.映射—一般做加密的时候会用

p = str.maketrans('abcdefg', '1234567')  # 前面的字符串和后面的字符串做映射 print('ccaegg'.translate(p))  # 输出按照上面maketrans做映射后的字符串

返回结果:

       331577

6.元素中大小写转换,常用在不区分大小写的验证码校验上

stt='asdfg' tuu='AsDfG' if stt.upper()==tuu.upper():     print('验证码一致')

返回结果:

  验证码一致

7.需要了解的一些方法

import string print(string.ascii_letters+string.digits)#大小写字母+数字 print(string.ascii_lowercase)#所有的小写字母 print(string.ascii_uppercase)#所有的大写字母 print(string.digits)#所有的数字

返回结果:

abcdefghijklmnopqrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789

abcdefghijklmnopqrstuvwxyz

ABCDEFGHIJKLMNOPQRSTUVWXYZ

0123456789

name='hello world' print(name.capitalize())  # 首字母大写 print(name.center(50, '*'))  # 50个-,把name放中间 print(name.endswith('d'))  # 是否以x结尾,返回的结果是布尔值,可以再做判断的时候使用,如果是以X结尾就...否则就... print('abA123'.isalnum())  # 是否包含数字或字母,当单独为数字或者英文或者英文和汉字的组合时,都返回Ture print('abA'.isalpha())  # 是否是英文字母--可以直接用引号定义字符,也可以用已经声明过的 print(name.isalpha())  # 是否是英文字母,只有仅仅为字母的时候,才返回Ture print('122'.isdigit())  # 是否是数字--比较常用 print('11sdf'.isidentifier())  # 是否是一个合法的变量名,不判断内置的关键字,只判读了不能以数字开头 print('aA'.islower())  # 是否是小写字母 print('AA'.isupper())  # 是否是大写字母 print(name.lower())  # 变成小写 print(name.upper())  # 变成大写 注意前6个是比较常用的方法,需要熟练掌握

 

 

 

转载于:https://www.cnblogs.com/MLing/p/6917771.html

你可能感兴趣的文章
YUV 格式的视频呈现
查看>>
现代程序设计 作业1
查看>>
在android开发中添加外挂字体
查看>>
Zerver是一个C#开发的Nginx+PHP+Mysql+memcached+redis绿色集成开发环境
查看>>
多线程实现资源共享的问题学习与总结
查看>>
java实现哈弗曼树
查看>>
转:Web 测试的创作与调试技术
查看>>
python学习笔记3-列表
查看>>
程序的静态链接,动态链接和装载 (补充)
查看>>
关于本博客说明
查看>>
线程androidAndroid ConditionVariable的用法
查看>>
转载:ASP.NET Core 在 JSON 文件中配置依赖注入
查看>>
socket初识
查看>>
磁盘测试工具
查看>>
代码变量、函数命名神奇网站
查看>>
redis cli命令
查看>>
Problem B: 占点游戏
查看>>
python常用模块之sys, os, random
查看>>
HDU 2548 A strange lift
查看>>
Linux服务器在外地,如何用eclipse连接hdfs
查看>>