《“笨办法”学Python(第3版)》——习题6 字符串和文本

简介:

本节书摘来自异步社区《“笨办法”学Python(第3版)》一书中的习题6,作者[美]Zed A. Shaw,王巍巍 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

习题6 字符串和文本

虽然你已经在程序中写过字符串了,但是你还不了解它们的用处。在这个习题中我们将使用复杂的字符串来建立一系列变量,从中你将学到它们的用途。首先,我们解释一下字符串是什么。

字符串通常是指你想要展示给别人的或者是想要从程序里“导出”的一小段字符。Python可以通过文本里的双引号(")或者单引号(')识别出字符串来。这在以前的打印练习中你已经见过很多次了。如果你把单引号或者双引号括起来的文本放到print后面,它们就会被Python打印出来。

字符串可以包含之前已经见过的格式化字符。你只要将格式化的变量放到字符串中,紧跟着一个百分号%,再紧跟着变量名即可。唯一要注意的地方是,如果你想要在字符串中通过格式化字符放入多个变量,需要将变量放到圆括号(())中,而且变量之间用逗号(,)隔开。就像你逛商店说“我要买牛奶、鸡蛋、面包、清汤”一样,只不过程序员的语法是“(milk, eggs, bread, soup)”。

我们将键入大量的字符串、变量、格式化字符,并且将它们打印出来。我们还将练习使用简写的变量名。程序员喜欢使用恼人的难读的简写来节约打字时间,所以我们现在就提早学会这个,这样你就能读懂并且写出这些东西了。

ex6.py

1     x = "There are %d types of people." % 10
2     binary = "binary"
3     do_not = "don't"
4     y = "Those who know %s and those who %s." % (binary, do_not)
5     
6     print x
7     print y
8     
9     print "I said: %r." % x
10     print "I also said: '%s'." % y
11     
12     hilarious = False
13     joke_evaluation = "Isn't that joke so funny?! %r"
14     
15     print joke_evaluation % hilarious
16     
17     w = "This is the left side of..."
18     e = "a string with a right side."
19     
20     print w + e

应该看到的结果

习题6 会话

$ python ex6.py
There are 10 types of people.
Those who know binary and those who don't.
I said: 'There are 10 types of people.'.
I also said: 'Those who know binary and those who don't.'.
Isn't that joke so funny?! False
This is the left side of...a string with a right side.

附加练习

1.通读这段程序,在每一行的上面写一行注释,给自己解释一下这一行的作用。

2.找到所有“把一个字符串放进另一个字符串”的位置。总共有4个地方。

3.你确定只有4个位置吗?你怎么知道的?没准儿我骗你呢。

4.解释一下为什么w和e用+连起来就可以生成一个更长的字符串。

常见问题回答

%r和%s有什么不同?

%r用来做调试(debug)比较好,因为它会显示变量的原始数据(raw data),而%s和其他的符号则是用来向用户显示输出的。
既然有%r了,为什么还要用%s和%d?

%r用来调试最好,而其他格式符则是用来向用户显示变量的。
如果你觉得很好笑,可不可以写一句hilarious = True?

可以。在习题27中你会学到关于布尔函数的更多知识。
为什么你在有些字符串上用单引号而在别的字符串上没有用?

很大程度上只是个风格问题,我的风格就是在双引号的字符串中使用单引号,比如代码的第10行就是这样做的。
我遇到了错误TypeError: not all arguments converted during string formatting。

确定每一行代码都完全正确。发生这种错误是因为你的字符串里的%格式化字符数量比后面给的变量多,仔细检查一下哪里写错了。

相关文章
|
21天前
|
存储 算法 数据库
使用python hashlib模块给明文字符串加密,以及如何撞库破解密码
`hashlib` 是 Python 中用于实现哈希功能的模块,它可以将任意长度的输入通过哈希算法转换为固定长度的输出,即散列值。该模块主要用于字符串加密,例如将用户名和密码转换为不可逆的散列值存储,从而提高安全性。`hashlib` 提供了多种哈希算法,如 `md5`、`sha1`、`sha256` 等。
34 1
|
4天前
|
XML 数据格式 Python
Python技巧:将HTML实体代码转换为文本的方法
在选择方法时,考虑到实际的应用场景和需求是很重要的。通常,使用标准库的 `html`模块就足以满足大多数基本需求。对于复杂的HTML文档处理,则可能需要 `BeautifulSoup`。而在特殊场合,或者为了最大限度的控制和定制化,可以考虑正则表达式。
21 12
|
5天前
|
机器学习/深度学习 自然语言处理 算法
使用Python实现简单的文本情感分析
【9月更文挑战第13天】本文将介绍如何使用Python编程语言进行基础的文本情感分析。我们将通过一个简单的例子,展示如何利用自然语言处理库nltk和机器学习库sklearn来实现对文本数据的情感倾向性判断。文章旨在为初学者提供一个入门级的指导,帮助他们理解并实践文本情感分析的基本步骤和方法。
14 6
|
15天前
|
Python
在Python中,文本查找和替换的常用操作
在Python中,文本查找和替换的常用操作,使用字符串方法进行查找和替换,使用正则表达式进行查找和替换,对所查找到的内容进行计数。
16 1
|
18天前
|
机器学习/深度学习 自然语言处理 算法
使用Python实现简单的文本情感分析
【8月更文挑战第31天】本文介绍了如何使用Python编程语言和自然语言处理技术来实现一个简单的文本情感分析。我们将从基本概念入手,逐步深入到代码实现,最后通过一个实际例子来展示如何应用这一技术。无论你是编程新手还是有一定经验的开发者,这篇文章都将为你提供有价值的指导。
|
19天前
|
UED Python
探索Python中的魔法方法:打造自定义字符串表示
【8月更文挑战第31天】在Python的世界里,魔法方法是那些以双下划线开头和结尾的特殊方法,它们为类提供了丰富的功能。本文将带你走进这些魔法方法的背后,特别是__str__和__repr__,揭示如何通过它们来定制我们的对象在被打印或转换为字符串时的外观。我们将从基础用法开始,逐步深入到高级技巧,包括继承与重写,最终实现一个优雅的字符串表示方案。准备好了吗?让我们开始这段代码之旅吧!
|
20天前
|
机器学习/深度学习 数据采集 自然语言处理
Python中实现简单的文本情感分析未来触手可及:新技术趋势与应用深度解析
【8月更文挑战第30天】在数字化的今天,理解和分析用户生成的内容对许多行业至关重要。本文将引导读者通过Python编程语言,使用自然语言处理(NLP)技术,构建一个简单的文本情感分析工具。我们将探索如何利用机器学习模型来识别和分类文本数据中的情感倾向,从而为数据分析和决策提供支持。文章将涵盖从数据预处理到模型训练和评估的全过程,旨在为初学者提供一个易于理解且实用的入门指南。
|
20天前
|
索引 Python
如何在 Python 中修改字符串
【8月更文挑战第29天】
13 0
|
21天前
|
Python Windows Perl
python 字符串前加r b u f 含义
python 字符串前加r b u f 含义
22 0
|
21天前
|
数据可视化 Python
通过python建立一个web服务查看服务器上的文本、图片、视频等文件
通过python建立一个web服务查看服务器上的文本、图片、视频等文件
20 0