《Python编程快速上手——让繁琐工作自动化》——1.3 字符串连接和复制

    xiaoxiao2024-01-21  152

    本节书摘来自异步社区《Python编程快速上手——让繁琐工作自动化》一书中的第1章,第1.3节,作者[美] Al Sweigart,王海鹏 译,更多章节内容可以访问云栖社区“异步社区”公众号查看。

    1.3 字符串连接和复制

    根据操作符之后的值的数据类型,操作符的含义可能会改变。例如,在操作两个整型或浮点型值时,+是相加操作符。但是,在用于两个字符串时,它将字符串连接起来,成为“字符串连接”操作符。在交互式环境中输入以下内容:

    >>> 'Alice' + 'Bob' 'AliceBob'

    该表达式求值为一个新字符串,包含了两个字符串的文本。但是,如果你对一个字符串和一个整型值使用加操作符,Python就不知道如何处理,它将显示一条错误信息。

    >>> 'Alice' + 42 Traceback (most recent call last): File "<pyshell#26>", line 1, in <module> 'Alice' + 42 TypeError: Can't convert 'int' object to str implicitly

    错误信息Can't convert 'int' object to str implicitly表示Python认为,你试图将一个整数连接到字符串'Alice'。代码必须显式地将整数转换为字符串,因为Python不能自动完成转换。(1.6节“程序剖析”在讨论函数时,将解释数据类型转换。)

    在用于两个整型或浮点型值时,­­操作符表示乘法。但­­操作符用于一个字符串值和一个整型值时,它变成了“字符串复制”操作符。在交互式环境中输入一个字符串乘一个数字,看看效果。

    >>> 'Alice' * 5 'AliceAliceAliceAliceAlice'

    该表达式求值为一个字符串,它将原来的字符串重复若干次,次数就是整型的值。字符串复制是一个有用的技巧,但不像字符串连接那样常用。

    *操作符只能用于两个数字(作为乘法),或一个字符串和一个整型(作为字符串复制操作符)。否则,Python将显示错误信息。

    >>> 'Alice' * 'Bob' Traceback (most recent call last): File "<pyshell#32>", line 1, in <module> 'Alice' * 'Bob' TypeError: can't multiply sequence by non-int of type 'str' >>> 'Alice' * 5.0 Traceback (most recent call last): File "<pyshell#33>", line 1, in <module> 'Alice' * 5.0 TypeError: can't multiply sequence by non-int of type 'float'

    Python不理解这些表达式是有道理的:你不能把两个单词相乘,也很难将一个任意字符串复制小数次。

    最新回复(0)