Starting From 0 Learning Python(On the third day)

On the third day

2016Year 11Mouth 29Day Tuesday

Hello everybody!(大家好)
Today is 我在书上正式学习 on the third day of Python
2.3 字符串
   大多数程序都定义并收集某种数据,然后使它们来做些有意义的事情。鉴于此,对数据进行分类大有裨益。我们将介绍第一种数据类型是字符串。字符串虽然看似简单,但能够以很多不同的方式使用它们。
   字符串就是一系列字符。在 Python 中,用引号扩起的都是字符串,其中的引号可以是单引号,也可以是双引号,如下所示:

这里写图片描述

   这种灵活性让你能够在字符串中包含引号和撇号:

这里写图片描述

   下面来看一些使用字符串的方式。

2.3.1 使用方法修改字符串的大小写
   对于字符串,可执行的最简单操作之一是修改其中的单词的大小写。请看下面的代码,并尝试判断其作用:
   name.py

这里写图片描述

   将这个文件保存为 name.py ,再运行它。你将看到如下输出:

这里写图片描述

   在这个示例中,小写的字符串 "ada lovelace" 存储到了变量 name 中。在 print() 语句中,方法 title() 出现在这个变量的后面。方法是 Python 可对数据执行的操作。在 name.title() 中,name 后面的句点(.)让 Python 对变量 name 执行方法 title() 指定的操作。每个方法后面都跟着一对括号,这是因为方法通常需要额外的信息来完成其工作。这种信息是在括号内提供的。函数 title() 不需要额外的信息,因此它后面的括号是空的。
   title() 以首字母大写的方式显示每个单词,即将每个单词的首字母都改为大写。这很有用,因为你经常需要将名字视为信息。Example(例如):你可能希望程序将值 Ada 、 ADA and ada 视为同一个名字,并将它们都显示为 Ada 。
   还有其他几个很有用的大小写处理方法。Example(例如):要将字符串改为全部大写或全部小写,可以像下面这样做:

这里写图片描述

   这些代码的输出如下:

这里写图片描述

   存储数据时,方法 lower() 很有用。很多时候,你无法依靠用户来提供正确的大小写,因此需要将字符串先转换成小写,再存储它们。以后需要显示这些信息时,再将其转换为最合适的大小写方式。

2.3.2 合并(拼接)字符串
   在很多情况下,都需要合并字符串。Example(例如):你可能想将姓和名存储在不同的变量中,等要显示姓名时再将它们合而为一:

这里写图片描述

   Python 使用加号(+)来合并字符串。在这个示例中,我们使用 + 来合并 first_name 、空格 and last_name ,以得到完整的姓名(见上图第5行),其结果如下

这里写图片描述

   这种合并字符串的方法称为拼接。通过拼接,可使用存储在变量中的信息来创建完整的消息。下面来看一个 Example (例子):

这里写图片描述

  在这里,一个问候用户的句子中使用了全名(见上图),并使用了方法 title() 来将姓名设置为合适的格式。这些代码显示一条格式良好的简单问候语(见下图):

这里写图片描述

   你可以使用拼接来创建消息,再把整条消息都存储在一个变量中:

这里写图片描述

   上述代码也显示消息 “Hello,Ada Lovelace!” ,但将这条信息存储在了一个变量中(见上图第7行),这让最后的 print 语句简单的多(见上图第8行)。  

2.3.3 使用制表符或换行符来添加空白
   在编程中,空白泛指任何非打印字符,如空格、制表符和换行符。你可使用空白来组织输出,以使其更易读。
   要在字符串中添加制表符,可使用字符组合 \t ,如下图箭头所指代码所示:    

这里写图片描述

   要在字符串中添加换行符,可使用字符组合 \n ,如下图代码所示

这里写图片描述

   还可在同一个字符串中同时包含制表符和换行符。字符串 “\n\t” 让 Python 换到下一行,并在下一行开头添加一个制表符。下面的示例演示了如何使用一个单行字符串来生成四行输出:

这里写图片描述

在接下来的两章中,你将使用为数不多的几行代码来生成很多行输出,届时制表符和换行符将提供极大的帮助。


2.3.4 删除空白
   在程序中,额外的空白可能令人迷惑。对程序员来说, 'python' and 'python ' 看起来几乎没什么两样,但对程序来说,它们却是两个不同的字符串。 Python 能够发现 'python ' 中额外的空白,并认为它是有意义的———除非你告诉它不是这样的。 
   空白很重要,因为你经常需要比较两个字符串是否相同。Example(例如):一个重要的示例是,在用户登录网站时检查其用户名。但在一些简单得多的情形下,额外的空格也可能令人迷惑。所幸在 Python 中,删除用户输入的数据中的多余的空白易如反掌。
   Python 能够找出字符串开头和末尾多余的空白。要确保字符串末尾没有空白,可使用方法 rstrip()。

这里写图片描述

   存储在变量 favorite_language 中的字符串末尾包含多余的空白(见上图第一行代码)。你在终端会话中向 Python 询问这个变量的值时,可看到末尾的空格(见上图第二行代码)。对变量 favorite_language 调用方法 rstrip() 后(见上图第四行代码),这格多余的空格被删除了。然而,这种删除只是暂时的,接下来再次询问 favorite_language 的值时,你会发现这个字符串与输入时一样,依然包含多余的空白(见上图第六行代码)。
   要永久删除这个字符串中的空白,必须将删除操作的结果存回到变量中:

这里写图片描述

   为删除这个字符串中的空白,你需要将其末尾的空白剔除,再将结果存回到原来的变量中(见上图第二行代码)。在编程中,经常需要修改变量的值,再将新值存回到原来的变量中。这就是变量的值可能随程序的运行或用户输入数据而发生变化的原因。
   你还可以剔除字符串开头的空白,或同时剔除字符串两端的空白。为此,可分别使用方法 lstrip() and strip():

这里写图片描述

   在这个示例中,我们首先创建了一个开头和末尾都有空白的字符串(见上图第一行代码)。接下来,我们分别删除末尾(见上图第二行代码)、开头(见上图第四行代码) and 两端(见上图第六行代码)的空格。尝试使用这些剥除函数有助你熟悉字符串操作。在实际程序中,这些剥除函数最常用在用户输入前对其进行清理。

2.3.5 使用字符串时避免语法错误
   语法错误是一种时不时会遇到的错误。程序中包含非法的 Python 代码时,就会导致语法错误。Example(例如),在用单引号括起的字符串中,如果包含撇号,就会导致错误。这是因为这会导致 Python 将第一个单引号和撇号之间的内容视为一个字符串,进而余下的文本视为 Python 代码,从而引发错误。
   下面演示了如何正确地使用单引号和双引号。请将该程序保存为 apostrophe.py ,再运行它:
   apostrophe.py

这里写图片描述

   撇号位于两个双引号直接,因此 Python 解释器能够正确地理解这个字符串: 

这里写图片描述

   然而,如果你使用单引号, Python 将无法正确地确定字符串的结束位置:

这里写图片描述

   而你将看到如下输出:

这里写图片描述

   从上述输出可知,错误发生在第二个单引号后面(见上图第二行提示)。这种语法错误指明,在解释器看来,其中的有些内容不是有效的 Python 代码。错误的来源多种多样,这里指出一些常见的,学习编写 Python 代码时,你可能会经常遇到语法错误。语法错误也是最不具体的错误类型,因此可能难以找出并修复。受困于非常棘手的错误时,请参阅第一章提供的建议。

   注意:
        编写程序时,编辑器的语法突出功能可帮助你快速找出某些语法错误。看到 Python 代码以普通句子的颜色显示,或者普通句子以 Python 代码的颜色显示,就可能意味着文件中存在引号不匹配的情况。

2.3.6 Python 2 中的 print 语句
   在 Python 2 中, print 语句的语法稍有不同。
   在 Python 2 中,无需将要打印的内容放在括号内。从技术上说, Python 3 中的print 是一个函数,一次你括号是必不可少。有些 Python 2 print 语句也包含括号,但其行为与 Python 3 中稍有不同。
   简单地说,在 Python 2 代码中,有些 print 语句包含括号,有些不包含。  

动手试一试

   在做下面的练习时,都编写一个独立的程序,并将其保存为名称类似于 name_cases.py 的文件。如果遇到了困难,请休息一会儿或参阅第一章提供的建议。

   2-3 个性化消息:将用户的名字存到一个变量中,并向该用户显示一条消息。显示的消息应非常简单,如“Hello Eric,would you like to learn some Python today?”。

   2-4 调整名字的大小写:将一个人名存储到一个变量中,再以小写、大写 and 首字母大写的方式显示这个人名。

   2-5 名言:找一句你钦佩的名人说的名言:将这个名人的姓名和他的名字打印出来。输出应类似于下面这样(包括引号):
   Albert Einstein once said,"A person who never made a mistake never tried anything new."

   2-6 名言2:重复练习2-5,但将名人的名字存储子啊变量 famous_person 中,再创建要显示的消息,并将其存储在变量 message 中,然后打印出这条消息。

   2-7 剔除人名中的空白:存储一个人名,并在其开头和末尾都包含一些空白字符。务必至少使用字符组合 "\t" and "\n" 各一次。
   打印这个人名,以显示其开头和末尾的空白。然后,分别使用剔除函数 lstrip() 、 rstrip() and strip() 对人名进行处理,并将结果打印出来。

下面是我做的动手试一试的练习答案、如果有需要的朋友可以下载看看,如果我做的有错的地方请指点!谢谢!

链接:http://pan.baidu.com/s/1c27PVpQ 密码:x17l

如果链接失效请联系我!

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值