切片

切片:截取序列(字符串,列表,元组等)中某一段字符,并不改变原数据和数据类型。结构:[起始位置:终止位置:步长]  但不包括终止位置。所谓:顾头不顾尾。

索引:序列中每个元素都是有编号的,都是从0开始编号的。使用负数索引时,Python会从右边开始数,第一个元素为-1. 注意:用索引,在列表里是什么类型取出来的就是什么数据类型。而切片不一样,切出来的都是列表。

范例:

list=[1,2,"wo"]
print(list[1],type(list[1]))
print(list[2],type(list[2]))
print(list[1:2],type(list[1:2]))
print(list)

结果:

2 <class 'int'>
wo <class 'str'>
[2] <class 'list'>
[1, 2, 'wo']

倒取值(即取负值)切片:起始位置和步长共同决定了切取的方向,如果这两个切取方向不一致,会导致出现空值.

例子

word = "我是中国你好世界"

print(word[-1:-5:-1])  # 注意:步长为负的,起始位置从右往左,所以应该从右向左切片

# 结果  界世好你

print(word[1:5:1])  # 注意:步长正的,起始位置从左往右,所以应该从左向右切片
# 结果 是中国你 print(word[-1:5:1]) # 注意:步长正的,起始位置从右往左,相矛盾所以为空
# 结果空

字符串方法

字符串是不可变类型,就是说改变一个字符串的元素需要新建一个新的字符串,注意注意!!!这句话并不意味着,字符串没有方法,而是任何方法都不会改变原字符串,要得到使用方法的的结果只能另命名变量。它不像列表,使用方法(切片除外)会改变原列表。Python 里面没有字符这个类型,而是用长度为 1 的字符串来表示这个概念

范例:

print("list1",list1)
print("new_list",new_list) #原字符串就不会变

结果:

list1 nihaokdjl
new_list niHaokdjl

范例2:

list=[1,2,3,4]
list.append(6666)
print("list",list) #列表就会变

结果:

list [1, 2, 3, 4, 6666]

如何改变一个字符串?

注意!注意!字符串是不可以改变的,但是你可以通过拼接,来“改变字符串”。

a="您好,日本"
print(a,id(a))
a=a[:3]+"中国"
print(a,id(a))

结果:

您好,日本 2207187472184
您好,中国 2207188312992 #还是没有改变原来的字符串,仅仅是定义了一个和他相同的变量

1.capitalize 字符串首字母大写,其余的全小写。

s="abdeH,ehrDFG"
print(s.capitalize())

结果:

Abdeh,ehrdfg

2.title字符串 以特殊符号或者空格隔开,隔开的每一部分的首字母大写,如果不隔开那就是一个字符串的首字母大写。其余的全是小写,与capitalize的不同是,capitalize特殊符号或者空格隔开的首字母不大写。

列子:

s="abdeH,ehrerG"
b="sjhiHjkh"
print("s",s.t)itle())
print("b",b.title()

结果:

s Abdeh,Ehrerg
b Sjhihjkh

3. upper() 方法将字符串中的小写字母转为大写字母。这里不举例子了

4. lower() 方法将字符串中的大写字母转为小写字母。这里不举例子了

5.count(“某元素”,索引开始,索引结束)字符串中某元素出现的个数,索引可以不写。

s="abdeH,ehrerG"
print("s",s.count("e"))

结果:

s 3

6.startswith 判断是否以..开头

endswith 判断是否以..结尾

例子:

s="abdeH,ehrerG"
print("s",s.startswith("abde"))
print("s",s.endswith("Gr"))
print("s",s.endswith("rG"))

结果:

s True
s False #
s True #注意这个和上个的不同

7.find 寻找某个元素的索引值   str.find(str, beg=0, end=len(string))。如果找不到显示-1.

index 寻找某个元素的索引值   str.find(str, beg=0, end=len(string))。如果找不到显示会报错.

注意这两个函数:如果字符串中有多个相同的元素,只会得到最左边的索引。
s="abdeH,ehrerG"
print("s",s.find ("e"))
print("s",s.index ("e"))
print("s",s.index("tt"))

结果:

s 3
Traceback (most recent call last):
s 3
File "C:/Users/PycharmProjects/untitled/day1/联系.py", line 463, in <module>
print("s",s.index("tt"))
ValueError: substring not found

8.strip() 方法用于移除字符串头尾指定的字符(默认为默认删除空白符(包括'\n', '\r',  '\t',  ' ')),可传入一个参数,指定要去除的首尾。需要注意的是:传入的是一组字符串是编译器去除两端所有相应的字符,这个相应的字符是什么意思?这是关键看例子:

heString = 'saaaay yes no yaaaass'
print(theString.strip("say"))

得到的答案:

 yes no 

您发现了什么?是不是只要前后两端含有"a","s","y",就会从两端向中间开始删除,直到遇到不是这三个字符停止。并不是把"say"当做整体去删除。

 rstrip() 删除 string 字符串右边(right)的指定字符(默认为空格).方法同strip,

 lstrip() 删除 string 字符串左边(left)的指定字符(默认为空格).方法同strip,

列子:

s="aabdeH,ehrerG"
print("s",s.strip ("a",))
print("s",s.strip ("G",))

结果:

s bdeH,ehrerG
s aabdeH,ehrer

8.5 list()。将字符串按照字符分割成列表

a = 'wupeiqi'
l = list(a)
print(l)

结果:

['w', 'u', 'p', 'e', 'i', 'q', 'i']

9.str.split(str="", num=string.count(str)).将字符串按照分隔符分割成列表

  • str -- 分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。
  • num -- 分割次数。

例子:

s="aabdeH,ehrerG"
print("s",s.split (",",1))

结果:

s ['aabdeH', 'ehrerG']

10. replace() 方法把字符串中的 old(旧字符串) 替换成 new(新字符串),如果指定第三个参数max,则替换不超过 max 次。如果不指定第三个,则全部替换。

str.replace(old, new[, max])
例子:
s="我爱中国,中国中国"
print("s",s.replace ("中国","我国",1))

结果:

 我爱我国,中国中国

10. str.isdigit()  判断字符串是否全部由数字组成。

11.str.isalnum  判断字符串是否含有数字或字母。

字符串的格式化

format_map

利用字典的映射关系

a = {
"k":"中国",
"l":"你好"
}
str = "{l},我爱{k}".format_map(a)
print(str) 结果:你好,我爱中国
profession = { 'name':['Barry', 'Bruce'],
'profession':['Engineer', 'Doctor'],
'age':[30, 31] } # Use of format_map() function
print('{name[0]} is an {profession[0]} and he'
' is {age[0]} years old.'.format_map(profession)) print('{name[1]} is an {profession[1]} and he'
' is {age[1]} years old.'.format_map(profession)) #结果:
Barry is an Engineer and he is 30 years old.
Bruce is an Doctor and he is 31 years old.

f

a = "中国"
str = f"你好,我爱{a}"
print(str) #结果:你好,我爱中国

format

format是我们比较常用的一个字符串格式化的方法

简单的方法就不说了,说一下我在项目中遇到的format的用法,带有":"的

数字格式的定义以 ':' 号开始。碰到了': '字符就知道要定义一个数字的显示格式了。格式的定义顺序为

1. 对齐方式(>右对齐、<左对齐、^居中)

print('{:>10}'.format(933)) #10代表的为10位,不够10位的用空格表示,>代表右对齐
#结果
       933

2. 保留小数

print('{:.2f}'.format(99.887))  # 2f指的是保留2位小数

#结果
99.89

3.将小数转换成百分比

print('{:.2%}'.format(0.333))  # 2%指的是保留小数点后两位

#结果
33.30%

4.将10进制转换成其他进制

'{0:x}'.format(20)                转换成十六进制

'{0:o}'.format(20)                转换成八进制    

      进制转换的时候用{0:进制}

5.指定整数的位数,不足在前边用0补齐

import random

verify_code = '{0:06d}'.format(random.randint(0, 999999)) #06指定出现的数字是6位的,不够6位的用0补在前面凑够6位,:前边的0可以省略
print(">>>", verify_code) #结果
053865

for 循环

不用for循环如何把一段字符串中的每个元素打印出来?

seer="我爱中国我是中国人"
count=0
while count<len(seer):
print(seer[count])
count+=1

结果:









Python基础3切片,字符串的方法的更多相关文章

  1. python基础之序列类型的方法——字符串方法

    python基础之序列类型的方法--字符串方法 Hello大家好,我是python学习者小杨同学,经过一段时间的沉淀(其实是偷懒不想更新),我终于想起了自己的博客账号,所以这次带来的是序列方法的后半部 ...

  2. 『Python基础-4』字符串

    # 『Python基础-4』字符串 目录 1.什么是字符串 2.修改字符串 2.1 修改字符串大小 2.2 合并(拼接)字符串 2.3 使用乘号'*'来实现字符串的叠加效果. 2.4 在字符串中添加空 ...

  3. Python基础数据类型之字符串

    Python基础数据类型之字符串 一.Python如何创建字符串 在python中用引号将一些文本包起来就构成了字符串(引号可以是单引号.双引号.单三引号,双三引号,它们是完全相同的) >> ...

  4. python基础2之字符串、列表、字典、集合

    内容概要: 一.python2 or 3 二.字符串拼接 三.字符串 四.列表.元祖 五.字典 六.集合 七.练习 一.python2 or python3 目前大多使用python2.7,随着时间的 ...

  5. C#基础之操作字符串的方法

    C#基础之操作字符串的方法 C#中封装的对字符串操作的方法很多,下面将常见的几种方法进行总结: 首先定义一个字符串str 1.str.ToCharArray(),将字符串转换成字符数组 2.str.S ...

  6. Python基础:数据类型-字符串(7)

    1.字符串基本操作 字符串是由字符组成的一串字符序列,字符串是有顺序的,从左到右,索引从0开始,依次递增. Python中字符串类型:str. Python中字符串的三种表示方式: (1)普通字符串: ...

  7. Python基础3切片,字符串的方法,for 循环

    切片:截取序列(字符串,列表,元组等)中某一段字符,并不改变原数据和数据类型.结构:[起始位置:终止位置:步长]  但不包括终止位置.所谓:顾头不顾尾. 索引:序列中每个元素都是有编号的,都是从0开始 ...

  8. Python基础学习之字符串(1)

    字符串 由字符组成的序列,即字符串. 1.基本字符串操作 所有标准的序列操作(索引.切片.乘法.判断成员资格.求长度.取最小值和最大值)对字符串同样适用: >>> website=' ...

  9. Python笔记(四)_字符串的方法

    字符串的方法 []表示该参数时可选的,start和end参数表示范围 count(sub[, start[, end]]) 返回sub在字符串里边出现的次数 find(sub[, start[, en ...

随机推荐

  1. 201521123112《Java程序设计》第4周学习总结

    1. 本周学习总结 1.1 尝试使用思维导图总结有关继承的知识点 1.2 使用常规方法总结其他上课内容 关于多态,多态性就是相同的形态,不同的定义.在简单点说的话就是不同类的对象对同一个消息作出的相应 ...

  2. 201521123104《java程序设计》第13周学习总结

    1. 本周学习总结 以你喜欢的方式(思维导图.OneNote或其他)归纳总结多网络相关内容. 2. 书面作业 1. 网络基础 1.1 比较ping www.baidu.com与ping cec.jmu ...

  3. 201521123031 《Java程序设计》 第十周学习总结

    1. 本周学习总结 1.1 以你喜欢的方式(思维导图或其他)归纳总结异常与多线程相关内容. 2. 书面作业 本次PTA作业题集异常.多线程 1.finally 题目4-2 1.1 截图你的提交结果(出 ...

  4. Ajax跨域问题的出现和解决

    什么是跨域? 1).请求是执行过去了,但是响应的数据拿不到 2).浏览器有一个安全限制叫同源策略(针对ajax请求): 从http://localhost:80/member/apply.html页面 ...

  5. 如何在CentOS上安装一个2048小游戏

    如何在centos上安装一个2048小游戏 最近在学习CentOS系统,就琢磨着玩点什么,然后我看到有人在玩2048小游戏,所有我就在想,为啥不装一个2048小游戏搞一下嘞,于是乎,我就开始工作啦 由 ...

  6. Spring-Boot:6分钟掌握SpringBoot开发

    构建项目 从技术角度来看,我们要用Spring MVC来处理Web请求,用Thymeleaf来定义Web视图,用Spring Data JPA来把阅读列表持久化到数据库里,姑且先用嵌入式的H2数据库. ...

  7. JavaScript中的alert、confirm、prompt

    alert: var a=alert('Alert');//界面只有一個確定alert(a);   //返回值為undefined confirm: var c= confirm('Confirm') ...

  8. Servlet学习应该注意的几点

    一.Servlet生命周期(即运行过程) (1)初始阶段,调用init()方法 (2)响应客户请求阶段,调用service()方法.由service()方法根据提交方式不同执行doGet()或doPo ...

  9. 基于 Electron 的爬虫框架 Nightmare

    作者:William 本文为原创文章,转载请注明作者及出处 Electron 可以让你使用纯 JavaScript 调用 Chrome 丰富的原生的接口来创造桌面应用.你可以把它看作一个专注于桌面应用 ...

  10. 关于JetBrains CLion 激活 (CLion License Activation)的解决办法,带hosts详细修改

    CLion版本号:JetBrains CLion 2017.2.1 第一行选择Activite,第二行Activate license with:选择Activation code. 这个时候里面的代 ...