python 字符串和输入

462 阅读5分钟

持续创作,加速成长!这是我参与「掘金日新计划 · 10 月更文挑战」的第12天,点击查看活动详情

python 字符串和输入

str 类型的对象用于表示字符.16 str 类型的文本可以使用单引号或双引号编写,例如“abc”或“abc”。文字“123”表示三个字符的字符串,而不是数字123。

尝试在 Python 解释器中键入以下表达式。

image.png

运算符 + 被称为重载,因为它具有不同的含义,具体取决于应用它的对象的类型。例如,运算符 + 表示应用时的加法

到两个数字,并在应用于两个字符串时串联。运算符 * 也重载。当它的操作数都是数字时,它意味着你期望它意味着什么。当应用于 int 和 str 时,它是一个重复运算符 - 表达式 ns,其中 n 是 int,s 是 str,计算结果为具有 n 个 s 重复的 str。例如,表达式 2 “约翰”的值为“约翰约翰”。这是有逻辑的。正如数学表达式 32 等价于 2+2+2 一样,表达式 3'a' 等价于 “a”+'a'a'a'。

现在尝试输入新的 ID

image.png

其中每行都会生成一条错误消息。第一行生成消息

image.png

因为new_id不是任何类型的文字,所以解释器将其视为一个名称。但是,由于该名称未绑定到任何对象,因此尝试使用它会导致运行时错误。代码“a”*“a”生成错误消息

image.png

类型检查存在是一件好事。它将粗心(有时是微妙的)错误变成停止执行的错误,而不是导致程序以神秘方式运行的错误。Python中的类型检查并不像其他一些编程语言(例如Java)那样强大,但是在Python 3中比在Python 2中更好。例如,当<用于比较两个字符串或两个数字时,很明显它应该意味着什么。但是,“4”< 3 的值应该是多少呢?相当武断的是,Python 2的设计者决定它应该是假的,因为所有数值都应该小于str类型的所有值。Python 3和大多数其他现代语言的设计者决定,由于这些表达式没有明显的含义,它们应该生成一条错误消息。字符串是 Python 中的几种序列类型之一。它们与所有序列类型共享以下操作。

·可以使用 len 函数找到字符串的长度。例如,len (“abc”) 的值为 3。

索引可用于从字符串中提取单个字符。在Python中,所有索引都是从零开始的。例如,在解释器中键入“abc” [0] 将导致它显示字符串“a”。键入“abc” [3] 将生成错误消息索引错误:字符串索引超出范围。由于 Python 使用 o 来指示字符串的第一个元素,因此使用索引 2 访问长度为 3 的字符串的最后一个元素。负数用于从字符串末尾开始编制索引。例如,“abc” [-1] 的值为“c”。

切片用于提取任意长度的子字符串。如果 s 是字符串,则表达式 s [start:end] 表示从索引开始到索引结束 1 的 s 的子字符串。例如,“abc”[1:3] 的计算结果为“bc”。为什么它在索引 end-1 结束而不是结束?因此,诸如“abc” [0:len ('abc')] 之类的表达式具有您可能期望的值。如果省略冒号前的值,则默认为 o。如果省略冒号后面的值,则默认为字符串的长度。因此,表达式“abc”[:] 在语义上等效于更详细的

“abc” [0: 1en (“abc”) ] 。也可以提供第三个参数来选择字符串的非连续切片。例如,表达式“123456789” [0:8:2] 的值是字符串“1357”。

使用 str 函数将其他类型的对象转换为字符串通常很方便。例如,考虑代码

image.png

哪些打印

image.png

第一个 print 语句插入一个介于 50 之间的空格,因为 Python 自动在要打印的参数之间插入一个空格。第二个 print 语句通过将 50 和 合并到 str 类型的单个参数中来生成更合适的输出。

类型转换(也称为类型转换)经常在 Python 代码中使用。我们使用类型的名称将值转换为该类型。因此,例如,整数 ('3')*4 的值为 12。当浮点数转换为 int 时,数字将被截断(不四舍五入),例如,int (3.9) 的值是 int 3。

回到我们的 print 语句的输出,您可能想知道打印的第一个数字末尾的 .o。出现这种情况是因为 1/2 是浮点数,而 int 和浮点数的乘积是浮点数。可以通过将数字*分数转换为int来避免这种情况。代码

image.png

打印 15000000 是 30000000 的 50.0%。

Python 3.6 引入了另一种更紧凑的方法来构建字符串表达式。f 字符串由字符 f(或 F)组成,后跟一种称为格式化字符串文本的特殊字符串文本。格式化字符串文本包含字符序列(与其他字符串文本一样)和用大括号括起来的表达式。这些表达式在运行时计算并自动转换为字符串。代码

image.png

打印 (f' (整数 (num*分数)) 是 (num)'的 (分数 100)) 生成与上一个更详细的打印语句相同的输出。如果要在由 f 字符串表示的字符串中包含大括号,请使用两个大括号。例如,打印 (1(35))打印 (15)。f 字符串中的表达式可以包含控制输出字符串外观的修饰符.17 这些修饰符与表示要用冒号修改的值的表达式分开。例如,f 字符串 f' (3.14159:.2f)' 的计算结果为字符串 “3.14”,因为修饰符 .2f 指示 Python 将浮点数的字符串表示形式截断为小数点后的两位数字。声明

image.png

打印 15,000,000 是 30,000,0oo 的 50.0%,因为 修饰符指示 Python 使用逗号作为千位分隔符。我们将在本书的后面介绍其他方便的修饰符。