切片

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

索引:序列中每个元素都是有编号的,都是从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. 201521123018 《Java程序设计》第3周学习总结

    1. 本章学习总结 1. 学习了类的创建: 2. 学会利用快捷方式完成变量的getter和setter的设定: 3. 学会了静态变量和非静态变量的区别和定义: 4. 学习了构造函数的基本编写方法. 2 ...

  2. 201521123110《Java程序设计》第14周学习总结

    1. 本周学习总结 2. 书面作业 1. MySQL数据库基本操作 2. 使用JDBC连接数据库与Statement 2.1 使用Statement操作数据库.(粘贴一段你认为比较有价值的代码,出现学 ...

  3. 视频转GIF图

    1.工具 PS6.0(其他版本也可以) 视频一个(具体格式应该无所谓) 2.步骤 (1)打开PS,点击导入->视频帧到图层 (2)选择视频打开 (3)进行范围选择.由于每隔2帧导入一张图片,每秒 ...

  4. Java:静态内部类的使用目的、使用限制、与非静态内部类的对比

    Java之静态内部类(static class) 在一个类中创建另外一个类,叫做成员内部类.这个成员内部类可以静态的(利用static关键字修饰),也可以是非静态的. 一.静态内部类的使用目的. 在 ...

  5. SQL Server安装【转载】

    http://blog.csdn.net/sangjinchao/article/details/62044021?locationNum=6&fps=1

  6. python os语法

    前几天做了一个文件替换功能用到些python os的功能,感觉python os模块的功能非常的强大, 如果你希望你的python程序能够与平台无关的话,这个模块是尤为重要的.即它允许一个程序在编写后 ...

  7. angular 学习笔记

    每天进步一点点,学习笔记 笔记来自  angular权威指南 如果想要屏蔽浏览器对表单的默认验证行为,可以在表单元素上添加 novalidate 标记. 而按钮标签则完全忽略 hr e f 属性,并不 ...

  8. Quartz学习——Quartz大致介绍(一)

    1. 介绍 Quartz是OpenSymphony开源组织在Job scheduling领域又一个开源项目,是完全由java开发的一个开源的任务日程管理系统,"任务进度管理器"就是 ...

  9. wxPython中菜单、按钮学习

    ---恢复内容开始--- wx.Window 是一个基类,许多构件从它继承.包括 wx.Frame 构件.技术上这意味着,我们可以在所有的 子类中使用 wx.Window 的方法.我们这里介绍它的几种 ...

  10. 纠错:基于FPGA串口发送彩色图片数据至VGA显示

    今天这篇文章是要修改之前的一个错误,前面我写过一篇基于FPGA的串口发送图片数据至VGA显示的文章,最后是显示成功了,但是显示的效果图,看起来确实灰度图,当时我默认我使用的MATLAB代码将图片数据转 ...