本文代码地址​github.com

字符串

字符串是非常常用的数据类型,我们可以使用单引号和双引号来创建字符串,创建字符串非常简单,只需为变量赋予一个字符串值即可

# a和b分别为用单引号和双引号创建的字符串

a = 'Hello World!'

b = "Welcome to Python World!"

# c和d分别为使用三个单引号和三个双引号创建的字符串,且c和d可以保留字符串的原始形式,比如换行符等

c = '''HelloWorld!'''

d = """WelcometoPythonWorld!"""

print(a)

print(b)

print(c)

print(d)

Hello World!

Welcome to Python World!

Hello

World!

Welcome

to

Python

World!

转移字符与原始字符

可以在字符串中使用\来表示转义字符,如下为常见的转义字符

# 输出转义后的字符串

print("\\Hello World\\")

print('\'Hello World\'')

print("\"Hello World\"")

print("Hello\nWorld")

print("Hello\tWorld")

\Hello World\

'Hello World'

"Hello World"

Hello

World

HelloWorld

在Python中以r或R开头的字符串被称为原始字符串,在原始字符串中转义字符不再具有特殊意义,而是保持其原始意义

# 输出原始字符串,此时转义字符不再具有特殊意义

print(r"\\Hello World\\")

print(r'\'Hello World\'')

print(R"\"Hello World\"")

print(R"Hello\nWorld")

print(R"Hello\tWorld")

\\Hello World\\

\'Hello World\'

\"Hello World\"

Hello\nWorld

Hello\tWorld

Python字符串运算符

# 直接拼接两个字符串

a = "Hello " + "World"

print(a)

# 字符串重复若干次

b = "Hello " * 3

print(b)

# 拼接给定字符串后再赋值

a += "!"

print(a)

# 重复若干次之后再赋值

a *= 3

print(a)

Hello World

Hello Hello Hello

Hello World!

Hello World!Hello World!Hello World!

a = "Hello World"

b = "Welcome to Python World"

# 字符串比较

print("a > b ?: {}".format(a>b))

print("a >= b ?: {}".format(a>=b))

print("a < b ?: {}".format(a

print("a <= b ?: {}".format(a<=b))

print("a == b ?: {}".format(a==b))

a > b ?: False

a >= b ?: False

a < b ?: True

a <= b ?: True

a == b ?: False

a = "Hello"

b = "World"

c = "Welcome to Python World"

# a是否出现在c中

print(a in c)

# b是否出现在c中

print(b in c)

# a是否没有出现在c中

print(a not in c)

# b是否没有出现在c中

print(b not in c)

False

True

True

False

我们可以通过下标访问字符串,下标索引从0开始,-1表示从末尾位置开始,下标大小必须小于字符串长度,索引格式为变量[start:stop:step],stop和step是可选的,我们通过如下例子来理解字符串的下标访问

a = "Welcome to Python World!"

# 第一个字符

print(a[0])

# 最后一个字符

print(a[-1])

# 下标从2开始,到12结束

print(a[2:13])

# 下标从2开始,到12结束,步长为2

print(a[2:13:2])

# 下标从2开始,一直到末尾,省略末尾索引表示一直到字符串末尾

print(a[2:])

# 下标从0开始,到12结束,省略开头索引表示索引从0开始

print(a[:13])

# 同时省略开头和结尾表示下标从0开始一直到末尾

print(a[:])

# 反向索引,从倒数第11个字符开始,到倒数第4个字符结束

print(a[-11:-3])

# 从倒数第一个字符开始,到倒数末尾字符结束,这里实现的是字符串reverse操作

print(a[::-1])

W

!

lcome to Py

loet y

lcome to Python World!

Welcome to Py

Welcome to Python World!

thon Wor

!dlroW nohtyP ot emocleW

格式化字符串

格式字符串包含有以花括号{}括起来的替换字段,不在花括号之内的内容被视为字面文本,会不加修改地复制到输出中.

# {}将会按顺序被format中的参数替换

print("{} -> {}".format("apple", "banana"))

apple -> banana

# 可以通过整数索引显式指定参数的替换顺序,参数索引从0开始

print("{1} -> {0}".format("apple", "banana"))

banana -> apple

# 可以显式使用字段名进行替换

print("{year} -> {month}".format(year=2020, month=12))

2020 -> 12

格式化输出时可以指定对齐方式,对齐表示如下

data = [1, 10, 100, 1000, 10000]

for i in data:

print("{:<}".format(i)) # 左对齐

1

10

100

1000

10000

for i in data:

print("{:>5}".format(i)) # 右对齐,对齐时可以显式指定输出宽度,这里指定输出宽度为5

1

10

100

1000

10000

for i in data:

print("{:^5}".format(i)) # 居中对齐,对齐时可以显式指定输出宽度,这里指定输出宽度为5

1

10

100

1000

10000

# 指定输出小数点位数

a = 3.1415926

# 保留2位小数

print("{:.2f}".format(a))

3.14

# 输出百分号

a = 0.93333333

print("{:.2%}".format(a))

93.33%

# 指定数字输出进制

a = 30

# 默认以十进制格式输出

print("{}".format(a))

# 以二进制格式输出

print("{:#b}".format(a))

# 以八进制格式输出

print("{:#o}".format(a))

# 以十六进制格式输出

print("{:#x}".format(a))

30

0b11110

0o36

0x1e

字符串常用方法

count(sub, [start[,end]])返回子字符串sub在[start, end]范围内出现的次数,start和end都是可选参数

a = "Helloo Woorld Helloo Woorld"

# 计算子字符串所有出现的次数

print(a.count("oo"))

# 给定起始范围

print(a.count("oo", 10))

# 给定起始和结束范围

print(a.count("oo", 10, 20))

4

2

1

encode(encoding="utf-8")将字符串以一定的编码方式存储为字节串,默认为utf-8编码

a = "Python是最简单的编程语言"

# 将Python字符串编码为字节串

b = a.encode(encoding="utf-8")

decode(encoding="utf-8")以一定的编码方式从字节串解码出字符串,默认为utf-8编码

# 从字节串中解码出字符串

c = b.decode(encoding="utf-8")

print(c)

Python是最简单的编程语言

startswith(prefix[,start[,end]])如果字符串以指定的prefix开始则返回True,否则返回False

a = "Python World"

print(a.startswith("shit"))

# 整个字符串是否以给定字符串开始

print(a.startswith("Pyt"))

# 给定范围是否以给定字符串开始

print(a.startswith("Pyt", 3, 7))

False

True

False

endswith(suffix[,start[,end]])如果字符串以指定的suffix结束返回True,否则返回False

a = "Python World"

print(a.endswith("shit"))

# 整个字符串是否以给定字符串结尾

print(a.endswith("rld"))

# 给定范围是否以给定字符串结尾

print(a.endswith("rld", 3, 7))

False

True

False

find(sub[,start[,end]])返回子字符串sub在s[start:end]切片内被找到的最小索引,如果找到返回索引,未找到返回-1

a = "Pythoon Woorld"

print(a.find("shit"))

# 从整个字符串寻找

print(a.find("oo"))

# 从给定范围寻找

print(a.find("oo", 5, 15))

-1

4

9

rfind(sub[,start[,end]])返回子字符串sub在字符串内被找到的最大索引,如果找到返回索引,未找到返回-1,rfind与find的区别在于find从前往后查找,rfind从后往前查找

a = "Pythoon Woorld"

print(a.rfind("shit"))

# 从整个字符串寻找

print(a.rfind("oo"))

# 从给定范围寻找

print(a.rfind("oo", 2, 8))

-1

9

4

index(sub[,start[,end]])类似于find,找不到子字符串时将抛出ValueError异常

a = "Pythoon Woorld"

# 从整个字符串寻找

print(a.index("oo"))

# 从给定范围寻找,找不到将抛出异常

print(a.index("oo", 5, 15))

4

9

rindex(sub[,start[,end]])类似于rfind(),但在子字符串sub未找到时会引发ValueError

a = "Pythoon Woorld"

# 从整个字符串寻找,从右向左查找

print(a.rindex("oo"))

# 从给定范围寻找,找不到将抛出异常

print(a.rindex("oo", 2, 8))

9

4

# 如果只是判断子字符串是否在字符串中而不需要知道所在索引,使用in更好

"py" in "python"

True

join(iterable)返回一个由iterable可迭代对象中的字符串拼接而成的字符串

a = ["Welcome", "to", "Python", "World", "!"]

# 用空格拼接每个字符串

print(" ".join(a))

# 用#拼接每个字符串

print("#".join(a))

Welcome to Python World !

Welcome#to#Python#World#!

split(sep, maxsplit=-1)返回一个由字符串内字符串组成的列表,使用sep作为分隔字符串。 如果给出了maxsplit选项,则最多进行maxsplit次拆分

a = "Welcome to Python World"

b = "Welcome@to@Python@World"

# 默认使用空白符进行分割

c = a.split()

print(c)

# 显式给定分隔符

d = b.split("@")

print(d)

# 指定分割次数

e = b.split("@", maxsplit=2)

print(e)

['Welcome', 'to', 'Python', 'World']

['Welcome', 'to', 'Python', 'World']

['Welcome', 'to', 'Python@World']

upper()返回原字符串的大写副本

a = "Welcome to Python World!"

print(a.upper())

WELCOME TO PYTHON WORLD!

lower()返回原字符串的小写副本

a = "Welcome to Python World!"

print(a.lower())

welcome to python world!

lstrip()返回原字符串的副本,移除其中的前导字符

a = " #Hello World"

# 默认移除空白符

print(a.lstrip())

# 显式指定要移除的字符

print(a.lstrip(" #"))

#Hello World

Hello World

rstrip()返回原字符串的副本,移除其中的后缀字符

a = "Hello World@ "

# 默认移除空白符

print(a.rstrip())

# 显式指定要移除的字符

print(a.rstrip(" @"))

Hello World@

Hello World

strip()返回原字符串的副本,移除其中的前导和后缀字符

a = " #Hello World!@ "

# 默认移除空白符

print(a.strip())

# 显式指定要移除的字符

print(a.strip(" #"))

print(a.strip(" @"))

print(a.strip(" #@"))

#Hello World!@

Hello World!@

#Hello World!

Hello World!

replace(old, new[count])返回字符串的副本,其中出现的所有子字符串old都将被替换为new,如果给出了可选参数count,则只替换前count次出现

a = "Pythoon Woorld Good"

# 替换所有出现

print(a.replace("oo", "xx"))

# 指定替换次数

print(a.replace("oo", "xx", 2))

Pythxxn Wxxrld Gxxd

Pythxxn Wxxrld Good

python是全栈_Python全栈之路-3-字符串相关推荐

  1. python声明编码作用_Python源代码中的编码声明字符串的作用

    原来以为Python编源代码头部的#encoding: utf8的字符串对于python的实际编码解析是没有影响的. 但是今天发现一个很好玩的问题.Mark一下. 当python的代码中存在类似u'中 ...

  2. python个人网站开发_python 全栈开发,Day81(博客系统个人主页,文章详情页)

    一.个人主页 随笔分类 需求:查询当前站点每一个分类的名称以及对应的文章数 完成这个需求,就可以展示左侧的分类 它需要利用分组查询,那么必须要会基于双下划线的查询. 基于双下划线的查询,简单来讲,就是 ...

  3. 用python画路飞代码_python 全栈开发,Day105(路飞其他数据库表结构,立即结算需求)...

    考试第三部分:Django 16.  列列举你熟悉的Http协议头以及作用.(1分) Accept-Charset: 用于告诉浏览器,客户机采用的编码 Host: 客户机通过这个头告诉服务器,想访问的 ...

  4. python小白到全栈_python全栈第八讲

    一.什么是函数 当我们在写代码时需要多次使用某段代码时,为避免代码重复,可将该段代码封装起来,哪里需要就在哪里调用这段代码,这段封装起来的代码就是函数. 函数是组织好的,可重复使用的,用来实现单一,或 ...

  5. python的mag模块_Python全栈-magedu-2018-笔记22

    第十五章 - Python 类型注解 函数定义的弊端 Python是动态语言,变量随时可以被赋值,且能赋值为不同的类型 Python不是静态编译型语言,变量类型是在运行器决定的 动态语言很灵活,但是这 ...

  6. python开发config层_Python全栈开发:configparser模块

    #!/usr/bin/env python # -*- coding;utf-8 -*- import configparser # 创建对象 conn = configparser.ConfigPa ...

  7. python编写死循环语句_Python 全栈开发:python循环语句while

    while循环 为什么会有循环这种语句? 举一个简单的例子:我们想计算0-100以内偶数的和,这种时候就需要循环这种语句 那有人可能会说:这有什么 0+2+4+.......+98 一样可以计算出来啊 ...

  8. python datetime需要安装_Python全栈工程师学习笔记 | Django的模型层

    Model模型 模型是你的数据的唯一的.权威的信息源.它包含你所储存数据的必要字段和行为. 通常,每个模型对应数据库中唯一的一张表. 每个模型都是django.db.models.Model的一个Py ...

  9. python自动化常用数字_Python全栈自动化系列之Python编程基础(基本数据类型)

    一.数值类型数据 1.整数(int):整数 2.浮点数(float):小数 3.布尔值(bool):只有两个值True和False 二.数据类型转换 1.整数和浮点数转换成字符串:使用str 2.字符 ...

最新文章

  1. Revit二次开发之“创建尺寸标注”
  2. nginx alias
  3. 更新系统后魔兽世界无法连接至服务器,《魔兽世界:熊猫人之谜》5.0launcher更新无法连接服务器解决方法...
  4. cad必练10张图_CAD比例问题大详解!赶紧收藏!
  5. java小学毕业学的会吗_Java的一些概念
  6. Linux Socket学习(五)
  7. Windows中文编码显示问题集锦
  8. python破解excel进入密码(指定密码字符)
  9. 【仿美团点餐App】—— 首页(二)
  10. win10安装steam有损计算机,win10系统steam安装更新失败的解决方法
  11. 腾达无线路由器怎么设置能让自己的网速快
  12. CRISPR-Cas9实验常见问题及解决方案
  13. 网络安全漏洞管理十大度量指标
  14. uniapp 动态修改导航栏 之前使用this.$mp.page page提示未定义
  15. java nio 框架_几种Java NIO框架的比较(zz)
  16. 基于MaxEnt模型的云南红豆杉潜在适宜分布预测
  17. SSM源码分析之23种设计模式(策略模式和模板模式)
  18. 暗黑破坏神3难度的钥匙去哪里打?
  19. 4种Java文件复制的方法
  20. 使用VS2010来进行MFC4.2的开发

热门文章

  1. javascrit2.0完全参考手册(第二版) 第1章第1节 在XHTML文档中增加javascript
  2. 云计算时代的虚拟化安全
  3. 第一次,触碰Web App项目,栽过的那些坑。
  4. WebShell代码分析溯源(第1题)墨者学院
  5. Vbs脚本编程简明教程之十
  6. 微信支付-接收返回通知结果
  7. 【jquery】一款不错的音频播放器——Amazing Audio Player
  8. 【Android开发】范例2-实现简易绘图板
  9. Firebug和Yslow是个好工具
  10. EXCEL 找出重复的记录 COUNTIF