万门69节入门python_Python入门六:字符串
1.字符串格式化
1)字符串
使用" "或' '包裹的任意文本。
打印多行文字的方法:使用一对三引号''' '''来包裹多行字符串;
使用换行符\n,其后方的内容将另起一行显示。
2) 拼接字符串使用+可以将多个字符串拼接;
使用*可以将多个相同字符串拼接。
str1 = '海草'
str2 = str1 * 3 # 相当于str1 + str1 + str1
print(str2)
# 输出:海草海草海草
note: +和*只用于同种类型的拼接,其他类型要用str()转换。
3) 字符串格式化输出
按照既定格式给字符串填空,以便更方便地写入字符串。
def print_intro(name, age, city):
intro = '我叫' + name + ',今年' + str(age) + '岁,来自' + city + '。'
print(intro)
print_intro('晗晗', 23, '河北')
# 输出:我叫晗晗,今年23岁,来自河北。
使用字符串格式化输出,上述代码可简化为:
def print_intro(name, age, city):
intro = '我叫%s,今年%d岁,来自%s。' % (name, age, city)
print(intro)
print_intro('晗晗', 23, '河北')
# 输出:我叫晗晗,今年23岁,来自河北。
字符串格式化输出的语法规则:第一部分:含有占位符的字符串;
第二部分:%运算符作为分隔;
第三部分:包含一个或多个元素的元组。
note: 如果只有一个占位符,可以将元组中的元素拿出来,如:'我叫%s。' % 'Monika'
常见占位符:%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数
note: %s是万能的,可以把任何数据类型转化为字符串。
2. 字符串索引
1) 字符串索引
和列表一样,可以通过索引和反向索引访问字符串中的字符。
str = 'Hello World'
print(str[6]) # 输出:W
print(str[-5]) # 输出:W
正向索引从0开始计数,反向索引从-1开始计数。一般来说,访问靠前的元素用正向索引,靠后的元素用反向索引。
2) 字符串分片
字符串也是有序序列,其分片方法与列表相似。
str = 'Hello World'
# 从索引0开始,到索引3为止,不包括索引3
print(str[0:3])
# 输出:Hel
# 如果第一个索引是0,可以省略
print(str[:3])
# 输出:Hel
print(str[3:11])
# 输出:lo world
# 如果分片到末尾,也可以省略
print(str[3:])
# 输出:lo world
# 复制一个相同的字符串
print(str[:])
# 输出:Hello world
# 使用反向索引分片
print(str[-3:])
# 输出:rld
3) 字符串不可变性
字符串一旦创建则不可改变,这一属性与元组类似,通过索引来改变字符串中元素就会报错:
str = '鹿班七号'
str[0] = '鲁'
print(str)
# TypeError: 'str' does not support item assignment on line 2
因此,若要修改字符串中的内容,要使用字符串分片和拼接来生成一个新的字符串。
str = '鹿班七号'
str = '鲁' + str[1:]
print(str)
# 输出:鲁班七号
3. 字符串方法
1) 大小写转换方法upper():用于将字符串中的小写字母转为大写字母;
lower():用于将字符串中的大写字母转为小写字母;
capitalize():用于将字符串中的第一个字母转为大写,其他字母转为小写,首字符如果是非字母则不变,其他字母变小写;
title():用于返回“标题化”的字符串,及所有单词的首字母转为大写,其余字母均为小写(非字母后的第一个字母也将转为大写);
swapcase():用于对字符串中的大小写字母互相转换。
str = 'feel THE change'
# 将str转为全大写并输出
print(str.upper())
# 输出:FEEL THE CHANGE
# 将str转为全小写并输出
print(str.lower())
# 输出:feel the change
# 将str进行大小写互换并输出
print(str.swapcase())
# 输出:FEEL the CHANGE
# 将str“标题化”并输出
print(str.title())
# 输出:Feel The Change
2) 分割、组合与移除方法split():用于通过指定分隔符对字符串进行分割。有两个可选参数,第一个参数为分隔符,默认为所有空字符,包括空格、\n、\t等,第二个参数为最大分割次数,默认为-1,即不限次;
join():用于将序列中的元素以指定的字符连接生成一个新的字符串,join方法接收一个序列作为参数,.前面的字符串用于连接符;
strip():用于移除字符串开头和结尾指定的字符或字符序列(默认为空字符),当传入一个字符串时,会将传入字符串中每个字符依次移除。
str = '$打-开-编-程-世-界-的-大-门$'
str = str.split('-')
str = '~'.join(str)
str = str.strip('$')
print(str)
# 输出:打~开~编~程~世~界~的~大~门
# 上述代码等同于 print('~'.join(str.split('-').strip('$'))
3) 定位与替换方法count():用于统计字符串中某个字符串出现的次数,第一个参数为要统计次数的字符串,后两个可选参数为开始和结束索引;
find():用于检测字符串中是否包含子字符串,如果包含子字符串返回第一次出现的索引值,否则返回-1,第一个参数为要查找的字符串,后两个可选参数为开始与结束索引;
replace():用于将字符串中的指定字符串替换成别的字符串,第一个参数为被替换字符串,第二个参数为替换字符串,第三个参数为替换的最多次数,默认无限次。
str = 'feel the change'
# 输出str中e的个数
print(str.count('e'))
# 输出:4
# 输出str中change的索引值
print(str.find('change'))
# 输出:9
# 将str中的change替换为CHANGE
print(str.replace('change', 'CHANGE'))
# 输出:feel the CHANGE
4) 格式化输出方法
除了使用%运算符,也可使用字符串的format()方法进行字符串的格式化输出。format()方法使用{}作为占位符,然后按照参数顺序替换对应的占位符。
'我叫{},今年{}岁,来自{}'.format('Monika', 23, '河北')
# 输出:我叫Monika,今年23岁,来自河北
此外,也可给占位符编号或命名(参数顺序不再重要):
'我叫{2},今年{1}岁,来自{0}'.format('河北', 23, 'Monika')
'我叫{name},今年{age}岁,来自{city}'.format(age = 23, city = '河北', name = 'Monika')
# 以上两例均输出:我叫Monika,今年23岁,来自河北
Reference:
[1] Wes McKinney. 2017. Python for Data Analysis: Data Wrangling with Pandas, NumPy, and IPython, 2nd Edition [M]. O'Reilly Media, Inc.
[2] CSDN博客. Python博客[OL]. https://www.csdn.net/nav/python. 2020.
万门69节入门python_Python入门六:字符串相关推荐
- 69讲入门python_Python入门,一定要吃透这69个内置函数
内置函数就是Python预先定义的函数,这些内置函数使用方便,无需导入,直接调用,大大提高使用者的工作效率,也更便于程序的阅读.截止到Python版本3.9.1,Python一共提供了69个内置函数. ...
- 深度学习入门笔记(六):误差反向传播算法
专栏--深度学习入门笔记 推荐文章 深度学习入门笔记(一):机器学习基础 深度学习入门笔记(二):神经网络基础 深度学习入门笔记(三):感知机 深度学习入门笔记(四):神经网络 深度学习入门笔记(五) ...
- 无人驾驶汽车系统入门(十六)——最短路径搜索之A*算法
无人驾驶汽车系统入门(十六)--最短路径搜索之A*算法 路线规划中一个很核心的问题即最短路径的搜索,说到最短路径的搜索我们就不得不提A*算法,虽然原始的A*算法属于离散路径搜索算法(我们的世界是连续的 ...
- 宏宇社:国外lead入门教程(六)lead任务辅助工具网站
宏宇社:国外lead入门教程(六)lead任务辅助工具网站 做国外lead任务需要的是批量操作.简单的来说,你不可能通过在同一个联盟申请的一个账号就能做到几百美刀.几千美刀的成绩.这种获利的程度很难达 ...
- STM32固件库(标准外设库)入门学习 第六章TIM定时器(一)
STM32固件库(标准外设库)入门学习 第六章TIM定时器(一) 文章目录 STM32固件库(标准外设库)入门学习 第六章TIM定时器(一) 前言 一.定时器类型 1 基本定时器 2 通用定时器 3 ...
- System Generator从入门到放弃(六)-利用Vivado HLS block实现VivadoHLS调用C/C++代码
System Generator从入门到放弃(六)-利用Vivado HLS block实现Vivado HLS调用C/C++代码 夜未央,流星落,情已殇 文章目录 System Generator从 ...
- [Eclipse]GEF入门系列(六、添加菜单和工具条)
我发现一旦稍稍体会到GEF的妙处,就会很自然的被它吸引住.不仅是因为用它做出的图形界面好看,更重要的是,UI中最复杂和细微的问题,在GEF的设计中无不被周到的考虑并以适当的模式解决,当你了解了这些,完 ...
- UWP开发入门(十六)——常见的内存泄漏的原因
原文:UWP开发入门(十六)--常见的内存泄漏的原因 本篇借鉴了同事翔哥的劳动成果,在巨人的肩膀上把稿子又念了一遍. 内存泄漏的概念我这里就不说了,之前<UWP开发入门(十三)--用Diagno ...
- 【Arduino】开发入门教程【六】数据类型转换函数
Arduino数据类型转换函数有 char() : 将任意类型的值转换成char类型; byte(): 将任意类型的值转换成byte类型; int(): 将任意类型的值转换成int类型; long ...
最新文章
- golang中的byte与rune
- DELAY INIT 延迟初始化
- C++职工信息管理系统
- 11G延迟密码验证的取消
- pip install cryptography error
- PAT 1014 Waiting in Line
- find python列表_Python基础知识(7)list列表各种操作
- (6)<a>标签如何实现点击既不刷新也不跳转的功能
- SpringBoot2.1.5(23)---SpringBoot 开发WEB应用
- 2016/11/14
- DataSet.GetBookMark内存泄漏
- 计蒜客——双重回文数
- 传统企业信息化的成功案例的一些感想(原创)
- 中的draw函数_哪一个热图函数更快?
- 仿安居客好租网房产源码
- python入门自学软件手机版,python编程教学app
- 高电平、低电平、高电平有效、低电平有效
- linux下查看eml类型文件
- vnr光学识别怎么打开_小区安装家用防盗报警系统方案
- vue+echarts制作大屏利用css3 scale 进行屏幕自适应