Python 1-5】Python教程之——字符串
字符串或串(String)是由数字、字母、下划线组成的一串字符。
字符串
字符串就是一系列字符。在Python中,用引号括起的都是字符串,其中的引号可以是单引号, 也可以是双引号,如下所示:
"This is a string."
'This is also a string.'
这种灵活性让你能够在字符串中包含引号和撇号:
'I told my friend, "Python is my favorite language!"'
"The language 'Python' is named after Monty Python, not the snake."
"One of Python's strengths is its diverse and supportive community."
使用方法修改字符串的大小写
对于字符串,可执行的最简单的操作之一是修改其中的单词的大小写。
请看下面的代码,并尝试判断其作用:
name = "fulade blog"
print(name.title())
将这个文件保存为name.py
,再运行它。你将看到如下输出:
Fulade Blog
在这个示例中,小写的字符串"fulade blog"存储到了变量name中。在print()
语句中,方法 title()
出现在这个变量的后面。在name.title()
中,name后 面的句点(.)让Python对变量name执行方法title()
的操作。每个方法后面都跟着一对括号, 这是因为方法通常需要一些参数来完成其工作。这些参数往往写在括号内的。方法title()
不需要参数,因此它后面的括号是空的。
title()
的实现结果是以首字母大写的方式显示每个单词,即将每个单词的首字母都改为大写。
还有几个其他的很有用的处理大小写的方法。例如,要将符串改为全部大写或全部小写,可以像下面这样做:
name = "Fulade Blog"
print(name.upper())
print(name.lower())
输出如下:
FULADE BLOG
fulade blog
拼接字符串
在很多情况下,我们需要合并字符串。例如,你可能想将姓和名存储在不同的变量中,等要显示姓名时再将它们合而为一:
first_name = "Fu"
last_name = "lade"
full_name = first_name + " " + last_name
print(full_name)
Python使用加号(+)来合并字符串。在这个示例中,我们使用+
来合并first_name、空格和
last_name,以得到完整的姓名,其结果如下:
Fu lade
这种合并字符串的方法称为拼接。通过拼接,可使用存储在变量中的字符串来创建完整的字符串。下面来看另外一个例子:
first_name = "fu"
last_name = "lade"
full_name = first_name + " " + last_name
message = "Hello, " + full_name.title() + "!"
print(message)
上述代码显示消息"Hello, Fu Lade!",但将这条消息存储在了一个变量中, 这让最后的print
语句简单得多。
使用制表符(按Tab键产生空格的叫做制表符)或换行符来添加空白
在编程中,空白泛指任何非打印字符,如空格、制表符和换行符。你可使用空白来组织输出,使输出更易读。
要在字符串中添加制表符,可使用字符组合\t
,如下代码所示:
print("Python")
Python
print("\tPython")
Python
要在字符串中添加换行符,可使用字符组合\n
:
print("Languages:\nPython\nC\nJavaScript")
Languages:
Python
C
JavaScript
还可在同一个字符串中同时包含制表符和换行符。字符串"\n\t"让Python换到下一行,并在
下一行开头添加一个制表符。下面的示例演示了如何使用一个单行字符串来生成四行输出:
print("Languages:\n\tPython\n\tC\n\tJavaScript")
Languages:
Python
C
JavaScript
删除空白和空格
在程序中,多余的空白可能令人迷惑。对程序员来说,'python'
和'python '
看起来几乎没什么两样,但对编译器来说,它们却是两个不同的字符串。Python能够发现'python '中多余的空格,并认为它是有意义的——除非你告诉它不是这样的。
空格很重要,因为你经常需要比较两个字符串是否相同。例如,在用户登陆网站的时候,我们需要对比用户名。但在有些场景下我们并不想要空格。所以,Python提供了很简单的删除空格的方法。
Python能够找出字符串开头和末尾多余的空白。要确保字符串末尾没有空白,可使用方法 rstrip()
。
favorite_language = "'python '"
print(favorite_language)
'python '
print(favorite_language.rstrip())
'python'
print(favorite_language)
'python '
存储在变量favorite_language
中的字符串末尾包含多余的空格。你在运行这个代码的时候,可看到末尾的空格。对变量favorite_language
调用方法 rstrip()
后,这个多余的空格被删除了。然而,这种删除只是暂时的,接下来再次输出favorite_language
的值时,你会发现这个字符串与输入时一样,依然包含多余的空格。
要永久删除这个字符串中的空格,必须将删除操作的结果保存回到变量中:
favorite_language = "'python '"
favorite_language = favorite_language.rstrip()
print(favorite_language)
'python'
为删除这个字符串中的空格,你需要将其末尾的空格剔除,再将结果存回到原来的变量中。
在我们的日常开发中,经常需要修改变量的值,再将新值存回到原来的变量中。
你还可以剔除字符串开头的空格,或同时剔除字符串两端的空格。为此,可分别使用方法 lstrip()
和strip()
:
favorite_language = "' python '"
print(favorite_language.rstrip())
' python'
print(favorite_language.lstrip())
'python '
print(favorite_language.strip())
'python'
在这个示例中,我们首先创建了一个开头和末尾都有空格的字符串。接下来,我们 分别删除末尾、开头两端的空格。在实际程序开发中,这些剔除函数最常用于在存储用户输入前对输入进行清理。
使用字符串时避免语法错误
语法错误是一种经常会出现的错误。程序中包含非法的Python代码时,就会导致语法错误。 例如,在用单引号括起的字符串中,如果包含撇号,就将导致错误。这是因为这会导致Python将 第一个单引号和撇号之间的内容视为一个字符串,进而将余下的文本视为Python代码,从而引发 错误。
下面演示了如何正确地使用单引号和双引号。
message = "One of Python's strengths is its diverse community."
print(message)
撇号位于两个双引号之间,因此Python解释器能够正确地理解这个字符串:
One of Python's strengths is its diverse community.
然而,如果你使用单引号,Python将无法正确地确定字符串的结束位置:
message = 'One of Python's strengths is its diverse community.'
print(message)
而你将看到如下输出:
message = 'One of Python's strengths is its diverse community.'
SyntaxError: invalid syntax
从上面的输出我们可以看到,错误发生在第二个单引号后面。这种语法错误表明,在解释器看来,其中的有些内容不是有效的Python代码。错误的来源多种多样,这里指出一些常见的。学习 编写Python代码时,你可能会经常遇到语法错误。
所以,大家在做练习的时候也要细心,避免出现这种小错误。
小作业
在做下面的每个练习时,都编写一个独立的程序,并将其保存为名称类似于name_cases.py
的文件。
2-1 个性化消息:将用户的姓名存到一个变量中,并向该用户显示一条消息。显示 的消息应非常简单,如“Hello Eric, would you like to learn some Python today?”。
2-2 调整名字的大小写:将一个人名存储到一个变量中,再以小写、大写和首字母 大写的方式显示这个人名。
2-3 名言:找一句你钦佩的名人说的名言,将这个名人的姓名和他的名言打印出来。输出应类似于下面这样(包括引号):
Albert Einstein once said, “A person who never made a mistake never tried anything new.”
2-4 名言 【重复练习 2-3】,但将名人的姓名存储在变量 famous_person 中,再创建 要显示的消息,并将其存储在变量 message 中,然后打印这条消息。
2-5 剔除人名中的空白:存储一个人名,并在其开头和末尾都包含一些空白字符。 务必至少使用字符组合"\t"和"\n"各一次。
打印这个人名,以显示其开头和末尾的空白。然后,分别使用剔除函数 lstrip()、 rstrip()和 strip()对人名进行处理,并将结果打印出来。
想查看作业答案可以去我的Githu仓库
Python 1-5】Python教程之——字符串的更多相关文章
- .Net程序员之Python基础教程学习----字符串的使用 [Second Day]
在The FirstDay 里面学习了列表的元组的使用,今天开始学习字符串的使用.字符串的使用主要要掌握,字符串的格式化(C语言中我们应该都知道,Python和C语言差别不大),字符串的基本 ...
- Python黑帽编程2.3 字符串、列表、元组、字典和集合
Python黑帽编程2.3 字符串.列表.元组.字典和集合 本节要介绍的是Python里面常用的几种数据结构.通常情况下,声明一个变量只保存一个值是远远不够的,我们需要将一组或多组数据进行存储.查询 ...
- 【Python大系】Python快速教程
感谢原作者:Vamei 出处:http://www.cnblogs.com/vamei 怎么能快速地掌握Python?这是和朋友闲聊时谈起的问题. Python包含的内容很多,加上各种标准库.拓展库, ...
- Python+Django+SAE系列教程17-----authauth (认证与授权)系统1
通过session,我们能够在多次浏览器请求中保持数据,接下来的部分就是用session来处理用户登录了. 当然,不能仅凭用户的一面之词,我们就相信,所以我们须要认证. 当然了,Django 也提供了 ...
- Python学习入门基础教程(learning Python)--5.6 Python读文件操作高级
前文5.2节和5.4节分别就Python下读文件操作做了基础性讲述和提升性介绍,但是仍有些问题,比如在5.4节里涉及到一个多次读文件的问题,实际上我们还没有完全阐述完毕,下面这个图片的问题在哪呢? 问 ...
- python面试题之如何计算一个字符串的长度
在我们想计算长度的字符串上调用函数len()即可 >>> len('hhhhhhhhjg') 10 所属网站分类: 面试经典 > python 作者:外星人入侵 链接:http ...
- 「Python」pandas入门教程
pandas适合于许多不同类型的数据,包括: 具有异构类型列的表格数据,例如SQL表格或Excel数据 有序和无序(不一定是固定频率)时间序列数据. 具有行列标签的任意矩阵数据(均匀类型或不同类型) ...
- Python基础笔记系列七:字符串定义和访问
本系列教程供个人学习笔记使用,如果您要浏览可能需要其它编程语言基础(如C语言),why?因为我写得烂啊,只有我自己看得懂!! 字符串定义和访问 1.字符串基础 a.字符串可以用单引号.双引号.三引号( ...
- Python之Numpy详细教程
NumPy - 简介 NumPy 是一个 Python 包. 它代表 “Numeric Python”. 它是一个由多维数组对象和用于处理数组的例程集合组成的库. Numeric,即 NumPy 的前 ...
随机推荐
- selenium-自动化测试51job网站(MacOS + Safari)2020年10月6日
登录 51job ,http://www.51job.com 输入搜索关键词 "python", 地区选择 "杭州"(注意,如果所在地已经选中其他地区,要去掉) ...
- 源码安装IVRE
简介:IVRE(又名DRUNK)是一款开源的网络侦查框架工具,IVRE使用Nmap.Zmap进行主动网络探测.使用Bro.P0f等进行网络流量被动分析,探测结果存入数据库中,方便数据的查询.分类汇总统 ...
- 第一次面试linux后台岗位
今天给大家分享前段时间面试linux后台的面试题目,我从里面挑了几道大家比较陌生的题目,而且要那种手写代码的题目,这方面肯定很多人在实际面试时最怕的题目! 1.请说出如何用tcp服务实现文件的断点续传 ...
- unsigned int 和 int
就如同int a:一样,int 也能被其它的修饰符修饰.除void类型外,基本数据类型之前都可以加各种类型修饰符,类型修饰符有如下四种:1.signed----有符号,可修饰char.int.Int是 ...
- 【题解】SP10570 【LONGCS - Longest Common Substring】
\(\color{Red}{Link}\) \(\text{Solution:}\) 还是\(\text{Suffix Tree.}\) 根据\(\color{Blue}{Link}\)我们可以得到一 ...
- 本地vue项目跨域服务器接口
1,打开index.js文件,找到 proxyTable 参照下面链接的方法,你们可以去点赞 https://www.douban.com/note/704314260/?type=like#sep
- linux 路径结构
/bin /boot /data /dev /etc /home /lib /lib64 /lost+found /media /mnt /opt /proc /root /run /sbin /sr ...
- Python+Appium自动化测试(10)-TouchAction类与MultiAction类(控件元素的滑动、拖动,九宫格解锁,手势操作等)
滑动屏幕方法swipe一般用于对页面进行上下左右滑动操作,但自动化过程中还会遇到其他情况,如对控件元素进行滑动.拖拽操作,九宫格解锁,手势操作,地图的放大与缩小等.这些需要针对控件元素的滑动操作,或者 ...
- Acticiti流程引擎在已知当前流程定义id的情况下获取当前流程的所有信息(包括:节点和连线)
这里我们已知流程已经部署,我的需求是获取当前流程的所有任务节点,我使用instanceof关键字来进行匹配 private List<UserTask> getProcessUserTas ...
- javascript in IE
前提:一个页面导入若干个js文件 问题: 1.如果其中一个文件出问题可能会导致下面的文件导入失败,如果导入很多外部js库文件,导致错误不好排查,可以调整好js的加载顺序,以免影响页面功能 2.IE获取 ...