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

简介:

本节书摘来自异步社区《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不理解这些表达式是有道理的:你不能把两个单词相乘,也很难将一个任意字符串复制小数次。

相关文章
|
22小时前
|
人工智能 Python
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
【Python实用技能】建议收藏:自动化实现网页内容转PDF并保存的方法探索(含代码,亲测可用)
7 0
|
2天前
|
前端开发 测试技术 C++
Python自动化测试面试:unittest、pytest与Selenium详解
【4月更文挑战第19天】本文聚焦Python自动化测试面试,重点讨论unittest、pytest和Selenium三大框架。unittest涉及断言、TestSuite和覆盖率报告;易错点包括测试代码冗余和异常处理。pytest涵盖fixtures、参数化测试和插件系统,要注意避免过度依赖unittest特性。Selenium的核心是WebDriver操作、等待策略和测试报告生成,强调智能等待和元素定位策略。掌握这些关键点将有助于提升面试表现。
13 0
|
2天前
|
XML Web App开发 测试技术
python的Web自动化测试
【4月更文挑战第16天】Python在Web自动化测试中广泛应用,借助Selenium(支持多浏览器交互)、BeautifulSoup(解析HTML/XML)、Requests(发送HTTP请求)和Unittest(测试框架)等工具。测试步骤包括环境搭建、编写测试用例、初始化浏览器、访问页面、操作元素、验证结果、关闭浏览器及运行报告。注意浏览器兼容性、动态内容处理和错误处理。这些组合能提升测试效率和质量。
11 6
|
6天前
|
安全 数据处理 开发者
《Python 简易速速上手小册》第7章:高级 Python 编程(2024 最新版)
《Python 简易速速上手小册》第7章:高级 Python 编程(2024 最新版)
19 1
|
6天前
|
人工智能 数据挖掘 程序员
《Python 简易速速上手小册》第1章:Python 编程入门(2024 最新版)
《Python 简易速速上手小册》第1章:Python 编程入门(2024 最新版)
35 0
|
6天前
|
API Python
Python模块化编程:面试题深度解析
【4月更文挑战第14天】了解Python模块化编程对于构建大型项目至关重要,它涉及代码组织、复用和维护。本文深入探讨了模块、包、导入机制、命名空间和作用域等基础概念,并列举了面试中常见的模块导入混乱、不适当星号导入等问题,强调了避免循环依赖、合理使用`__init__.py`以及理解模块作用域的重要性。掌握这些知识将有助于在面试中自信应对模块化编程的相关挑战。
20 0
|
7天前
|
Python
Python金融应用编程:衍生品定价和套期保值的随机过程
Python金融应用编程:衍生品定价和套期保值的随机过程
20 0
|
8天前
|
Python
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
python面型对象编程进阶(继承、多态、私有化、异常捕获、类属性和类方法)(上)
48 0
|
8天前
|
Python
python学习-函数模块,数据结构,字符串和列表(下)
python学习-函数模块,数据结构,字符串和列表
49 0
|
8天前
|
机器学习/深度学习 算法 定位技术
python中使用马尔可夫决策过程(MDP)动态编程来解决最短路径强化学习问题
python中使用马尔可夫决策过程(MDP)动态编程来解决最短路径强化学习问题
23 1