目录

前言

字符串

拼接字符串

字符串索引

字符串切片

字符串不可变性

字符串大小转换方法

字符串分割、组合与移除

字符串定位与替换方法

总结




前言

字符串是 Python 中最常用的数据类型。我们可以使用引号 ( ' 或 " ) 来创建字符串。

在开始字符串详细介绍前,先介绍python中两个很重的函数,输入函数——input()和输出函数——print(),还有一个比较特殊的函数——eval()

input():是获取用户输入的函数

input()函数使用格式:

<变量> =input(<提示信息字符串>)

用户输入的信息以字符串类型保存在<变量>中

name=input('请输入张三的名字:')

print():是获取用户输出结果的函数(也可以理解成print()函数会将括号里的内容直接输出出来,并打印到屏幕上)

print()函数使用格式:

print(<内容>)

print(635)
# 输出:635
print(1135 - 635)
# 输出:500
print('1135-635')
# 输出:1135-635
#注意1:第三个print()函数,若函数里面的内容是字符串,输出结果不带引号
#注意2:print()函数括号里面内容还可以是其他数据类型,后面章节再进行叙述。

eval():是一种去掉参数最外侧引号并执行余下语句的函数

eval()函数的基本使用格式:

eval(<字符串或字符串变量>)

print(eval("1"))
#输出:1,eval去掉参数里最外层引号后,结果是整数1,print(1)的结果还是1
print(eval("1+2"))
#输出:3,eval去掉参数里最外层引号后,结果是整数表达式1+2,print(1+2)的结果是3
#注意:print函数自带计算器功能
print(eval('"1+2"'))
#输出:1+2,eval去掉参数里最外层引号后,结果是"1+2",print("1+2")的结果还是1+2
print(eval("'1+2'"))
#输出:1+2,eval去掉参数里最外层引号后,结果是'1+2',print('1+2')的结果还是1+2

字符串

怎样打印多行文字

方法1:使用一对三引号(''' 或 """)来包裹多行字符串,我们使用三行字符串来打印一首小诗。

poetry = '''我怎么能够把你来比作夏天?
你不独比它可爱也比它温婉:
狂风把五月宠爱的嫩蕊作践,
夏天出赁的期限又未免太短:'''
print(poetry)
# 输出:
# 我怎么能够把你来比作夏天?
# 你不独比它可爱也比它温婉:
# 狂风把五月宠爱的嫩蕊作践,
# 夏天出赁的期限又未免太短:

方法2:除了使用多行字符串来实现多行文本外,使用 \n 也能达到一样的效果。\n 被称为 换行符,用于文本间的换行。

poetry = '日暮苍山远,天寒白屋贫。\n柴门闻犬吠,风雪夜归人。'
print(poetry)
# 输出:
# 日暮苍山远,天寒白屋贫。
# 柴门闻犬吠,风雪夜归人。

Python 中的字符串是使用一对英文单引号(')或英文双引号(")包裹的任意文本。无论是用单引号还是用双引号,它俩的效果都是一样的,但需要保持前后引号的统一

#下列常见几种错误
# 前后不统一
name1 = '张三"
name2 = "张三'# 使用了中文引号
name1 = ‘张三’
name2 = “张三”

拼接字符串

通过 + 可以将两个字符串拼接,得到一个新的字符串

str1 = '海草'
str2 = str1 + str1 + str1
print(str2)
# 输出:海草海草海草

字符串索引

str = 'Hello World'
print(str[6])  # 输出:W
print(str[-5])  # 输出:W

正向索引是从 0 开始计数,而反向索引则是从 -1 开始计数。

一般我们采取“就近原则”来决定使用正向索引还是反向索引——即访问靠前的元素用正向索引,靠后的元素用反向索引。

字符串切片

字符串是有序的序列(关于什么是序列,序列有哪些,后续章节再进行阐述),都可以使用 len() 函数获取元素个数,本节本节的重点——分片。

str = 'Hello World'
# 下面两个效果一样
print(str[6:])  # 输出:World
print(str[-5:])  # 输出:World

string = 'Hello World'
# 从索引 0 开始,到索引 3 为止,不包括索引 3
print(string[0:4])  # 输出:Hell
# 如果第一个索引是 0,可以省略
print(string[:4])  # 输出:Hellprint(string[4:11])  # 输出:o World
# 如果分片到末尾,后面也可以省略
print(string[4:])  # 输出:o World# 如果都省略,则是复制一个一样的字符串
print(string[:])  # 输出:Hello World

注意事项:

  1. 分片是半闭半开区间,即包含前面索引位置的元素,不包含后面索引位置的元素。比如:string[m:n] 获取的是字符串 string 中索引为 m 到 n-1 之间的元素(包括 m 和 n-1);
  2. 分片中前后索引的值是可以省略的,前索引省略默认为 0,后索引省略默认为序列长度。
#小提示:
string = 'Hello World'
print(string[0:100000])
#结果:Hello World

分片超出范围是不会报错的。你可以把字符串想象成一根绳子,分片就是用刀将绳子切分开来。在字符串长度内分片相当于在绳子上切割,而超出范围相当于一刀砍到了空气,对于绳子来说没有影响。

然而索引超出范围则会报错,如下所示:

string = 'Hello World'
print(string[100000])
#IndexError: string index out of range(索引错误:字符串索引超出范围)的报错。

字符串不可变性

字符串一旦创建后是不可改变的,这个属性和元组类似,通过索引来改变字符串中元素就会报错:

name = '鹿班七号'
name[0] = '鲁'
print(name)
# 报错:TypeError: 'str' does not support item assignment on line 2

要修改字符串内容,则进行如下操作:

name = '鹿班七号'
new_name = '鲁' + name[1:]
print(new_name)
# 输出:鲁班七号

字符串大小转换方法

upper()用于将字符串中的小写字母转为大写字母。

'abcd'.upper()  # 'ABCD'
'aBcD'.upper()  # 'ABCD'

lower()用于将字符串中的大写字母转为小写字母。

'ABCD'.lower()  # 'abcd'
'aBcD'.lower()  # 'abcd'

capitalize()用于将字符串的第一个字母变成大写,其他字母变小写。首字符如果是非字母则不变,其他字母变小写。

'ABCD'.capitalize()  # 'Abcd'
'aBcD'.capitalize()  # 'Abcd'
'1abcd'.capitalize()  # '1abcd'
'1aBcD'.capitalize()  # '1abcd'

title()用于返回“标题化”的字符串——即所有单词的首字母转为大写,其余字母均为小写。

'this is an example string'.title()   # This Is An Example String
'5g is coming'.title()  # 5G Is Coming
#注意:非字母后的第一个字母将转为大写字母。

swapcase()用于对字符串的大小写字母进行互相转换。

'abcd'.swapcase()  # 'ABCD'
'aBcD'.swapcase()  # 'AbCd'

字符串分割、组合与移除

split() 用于通过指定分隔符对字符串进行分割,最终产生一个列表序列。

split() 方法有两个可选参数,第一个参数为分隔符,默认为所有的空字符,包括空格、换行(\n)、制表符(\t)等。第二个参数为最大分割次数,默认为 -1,即不限次数。

'张 三 李 四'.split()  # ['张', '三', '李', '四']
'张 三 李 四'.split('')  # ['张', '三', '李', '四']
'张 三 李 四'.split(' ')  # ['张', '三', '李', '四']
'张-三-李-四'.split('-')  # ['张', '三', '李', '四']
'张三李四'.split('三李')  # ['张', '四']
'张 三 李 四'.split(' ', 1)  # ['张', '三 李 四']

join()用于将序列中的元素以指定的字符连接生成一个新的字符串。

join() 方法接收一个序列(列表、元组、字符串等)作为参数,. 前面的字符串用于连接符。(关于列表、元组等序列后续章节进行阐述)

# 列表
''.join(['张', '三', '李', '四'])  # 张三李四
'-'.join(['张', '三', '李', '四'])  # 张-三-李-四
# 元组
'-'.join(('张', '三', '李', '四'))  #  张-三-李-四
# 字符串
'-'.join('张三李四')  #  张-三-李-四

strip()用于移除字符串开头和结尾指定的字符(默认为空字符)或字符序列。

当传入一个字符串时,会将传入字符串中每个字符依次移除。

' 张三李四  '.strip()  # '张三李四'
'~~张三李四~~'.strip('~')  # '张三李四'
'~~张三~~李四~~'.strip('~')  # '张三~~李四'
'_~_张三李四_~~'.strip('~_')  # '张三李四'

补充:

字符串定位与替换方法

count()用于统计字符串中某个字符串出现的次数。

第一个参数为要统计次数的字符串,后两个可选参数为在字符串搜索的开始与结束索引。

'aabbcccd'.count('a')  # 2
'aabbcccd'.count('ab')  # 1
'aabbcccd'.count('e')  # 0
'aabbcccd'.count('a', 2, 6)  # 0
# 等同于 'bbcc'.count('a')
'aabbcccd'.count('c', 2, 6)  # 2
# 等同于 'bbcc'.count('c')

find()用于检测字符串中是否包含子字符串。

如果包含子字符串返回第一次出现的索引值,否则返回 -1。第一个参数为要查找的子字符串,后两个可选参数为在字符串搜索的开始与结束索引。

'abc'.find('b')  # 1
'abcabc'.find('b')  # 1
'abcabc'.find('d')  # -1
'abcbcdabc'.find('bcd')  # 3
'abcabc'.find('b', 1, 2)  # 1
'abcabc'.find('b', 2, 3)  # -1

replace()用于将字符串中的指定字符串替换成别的字符串。

第一个参数为被替换字符串,第二个参数为替换字符串,第三个可选参数为替换的最多次数,默认为无限次。

'abcd'.replace('b', 'e')  # 'aecd'
'abbbcbd'.replace('b', 'e')  # 'aeeeced'
'abbbcbd'.replace('bb', 'e')  # 'aebcbd'
'abbbcbd'.replace('b', 'e', 2)  # 'aeebcbd'

总结

以上就是今天要叙述的内容,本文仅仅简单介绍了一些字符串的基本用法,以及一些常用的用法。

写的不好,多多指教。

python入门2——基础语法2——字符串详解相关推荐

  1. Python基础语法day02字符串详解和列表

    今天是python基础语法入门第二天,大概总共会有四天左右.四天后就是对于python的numpy库的详细文章.那话不多说,我们开始. 目录 字符串详解 字符串独有功能 检测头尾字符 判断输入结果是否 ...

  2. Python入门之基础语法

    Python入门之基础语法 行与缩进 #有错误的函数1 def wrong1():print("wrong1")print("这里有一个错误缩进")#有错误的函 ...

  3. python装饰器详解-Python装饰器基础概念与用法详解

    本文实例讲述了Python装饰器基础概念与用法.分享给大家供大家参考,具体如下: 装饰器基础 前面快速介绍了装饰器的语法,在这里,我们将深入装饰器内部工作机制,更详细更系统地介绍装饰器的内容,并学习自 ...

  4. python编程入门与案例详解课后题答案-Python入门之三角函数sin()函数实例详解

    描述 sin()返回的x弧度的正弦值. 语法 以下是sin()方法的语法: importmath math.sin(x) 注意:sin()是不能直接访问的,需要导入math模块,然后通过math静态对 ...

  5. 站长在线python精讲:在Python中使用“+”运算符来拼接字符串详解

    欢迎你来到站长在线的站长学堂学习Python知识,本文学习的是<在Python中使用"+"运算符来拼接字符串详解>.本知识点主要内容有:在Python中,我们可以使用& ...

  6. python中uniform_Python基础之uniform()的详解

    描述 uniform() 方法将随机生成下一个实数,它在[x,y]范围内. 语法 以下是 uniform() 方法的语法:import random random.uniform(x, y) 注意:u ...

  7. Python入门 —— 02基础语法

    基础语法入门学习推荐: 简明 Python 教程 下文仅为入门推荐书籍的补充与重点 多行语句:末尾使用斜杠 (  ) ,将一行分为多行 var = item1 + item2 + item3 注释: ...

  8. python split函数 空格_最易懂的Python新手教程:从基础语法到代码详解

    导读:本文立足基础,讲解Python和PyCharm的安装,及Python最简单的语法基础和爬虫技术中所需的Python语法. 作者:罗攀 蒋仟 如需转载请联系华章科技 本文涉及的主要知识点如下: P ...

  9. python类装饰器详解-Python装饰器基础概念与用法详解

    本文实例讲述了Python装饰器基础概念与用法.分享给大家供大家参考,具体如下: 装饰器基础 前面快速介绍了装饰器的语法,在这里,我们将深入装饰器内部工作机制,更详细更系统地介绍装饰器的内容,并学习自 ...

最新文章

  1. java 线程可见性,Java多线程之内存可见性
  2. 技术人的未来在哪里?
  3. 丑憨批的html笔记
  4. HDU 5968 异或密码(区间dp)
  5. 如何理解 new (...args: any[]) => any
  6. react js 添加样式_如何在React JS Application中添加图像?
  7. 边缘计算比云计算强在哪里?终于有人讲明白了
  8. Node.js下载安装及各种npm、cnpm、nvm、nrm配置(保姆式教程—提供全套安装包)—cnpm的安装与配置(3)
  9. 别人的趋势不一定是你的未来
  10. 使用vuex和axios获取api数据
  11. MediaElement 4.1.3 发布,HTML5 音视频解决方案
  12. drozer报错解决
  13. swoole 连接池php fpm,【转】swoole4实现数据库连接池
  14. HTML5中如何实现rpx布局
  15. iOS开发-苹果开发者账号注册、申请续费整个流程
  16. Java——nefu
  17. 《构建之法》读书笔记——第1章 概论
  18. 【贪心】 大天使之剑
  19. vue部门结构图_基于 Vue 实现动态组织结构图
  20. BeautifulSoup安装

热门文章

  1. HDU3527(杭电)spy问题
  2. java 监控 emc 存储_EMC存储VNX5500搜集日志
  3. 技术小白用python搭建微信公众号后台
  4. c语言中英语部分,C语言部分函数(国外英语资料).doc
  5. 棒棒糖球球机器人_球球大作战刷棒棒糖
  6. 新玺配资:外围市场大跌 A股很难不受影响
  7. 劣质代码评析——《写给大家看的C语言书(第2版)》附录B之21点程序(三)
  8. springboot中使用freemarker生成word循环输出图片(二维码)
  9. 【牛客网】华为机试题(00、C++版本)
  10. ffmpeg 码率控制