python3 中的字符串(单引号、双引号、三引号)以及字符串与数字的运算
前言写 Python 3 的第一课往往是「字符串怎么表示」。单引号、双引号、三引号这三种写法都能创建字符串但它们之间有没有区别、该用哪种初学者常常是凭感觉选的。先说结论在 Python 3 里单引号和双引号创建的字符串没有任何语义差别它们完全等价选哪个纯粹是风格问题——只要内容里带单引号就用双引号包反之亦然。真正有独立用途的是三引号triple quoted string它能跨行、能保留缩进和换行。这里要顺带点出一个 Python 2 的遗留误解。在 Python 2 里引号前加u表示 Unicode 字符串不加则是字节串这是两套不同的类型。到了 Python 3str本身就是 Unicode 字符串u前缀不再有实际意义3.3 起为了兼容又允许写但不改变任何行为。所以「u...能创建 Unicode、...不能」这种说法在 Python 3 是错的。另外 Python 2.7 已于 2020 年 1 月 1 日停止维护本文一律用 Python 3 的写法。第三部分要讲的是「字符串与数字的运算」。这是新手最容易想当然的地方3 4得到的是34而不是73 - 1直接报错。字符串和数字之间不存在自动转换必须显式用int()、float()、str()打通。一、四种字面量写法写法特点适用场景...单引号内容含双引号时更方便...双引号内容含单引号时更方便...三个单引号可跨行多行文本、文档字符串...三个双引号可跨行多行文本、文档字符串# 适用于 Python 3.8a allows embedded double quotesb allows embedded single quotesprint(a) # allows embedded double quotesprint(b) # allows embedded single quotesprint(a a.replace(, )) # True两种引号完全等价Python 不会因为用哪对引号而产生不同的类型或编码。同一个项目里保持一致、或遵循 PEP 8 之外的项目约定即可。原始字符串与转义反斜杠是转义字符escape character的引导符\n是换行、\t是制表符。想让反斜杠保持字面含义写正则、Windows 路径时常需要用r前缀# 适用于 Python 3.8print(a\tb) # a b —— \t 被解释为制表符print(ra\tb) # a\tb —— 原样输出print(len(\n)) # 1print(len(r\n)) # 2r和u不能一起用ur...是 Python 2 的写法Python 3 里会报SyntaxErroru单独用虽然合法但没有效果。二、三引号与隐式拼接三引号字符串会原样保留换行和缩进因此常用来写多行文本或文档字符串docstring# 适用于 Python 3.8text 第一行第二行第三行有缩进print(text)输出里「第二行」前面的缩进、三行之间的换行都会保留。写多行 SQL、HTML 片段、帮助信息时很方便。作为函数/模块第一条语句时它就成了 docstring可用__doc__读取。另外相邻的字符串字面量会自动合并这是编译期行为# 适用于 Python 3.8print(Py thon) # Pythons abc# s def # 这是语法错误隐式拼接只对字面量成立隐式拼接对字面量有效对变量无效。用它可以跨行写长字符串每行末尾加逗号也行但那是元组不是字符串。三、字符串与数字的运算和*是字符串仅有的两个「算术」运算符语义是拼接和重复# 适用于 Python 3.8print(3 4) # 34 —— 拼接不是相加print(ab * 3) # abababprint(3 * ab) # ababab 乘法满足交换字符串可以在右边print(a b * 2) # abb 优先级乘法先算*的另一个操作数必须是整数浮点会报错# 适用于 Python 3.8print(ab * 2) # abab# print(ab * 2.5) # TypeError: cant multiply sequence by non-int# print(a - b) # TypeError: unsupported operand type(s)# print(6 / 2) # TypeError字符串和数字之间没有隐式转换要参与算术必须显式转# 适用于 Python 3.8x input(请输入一个数字) # input 永远返回字符串n int(x) 1 # 必须先转成 intprint(结果是 str(n)) # 拼接回字符串也要显式转换print(f结果是 {n}) # f-string 会自动格式化无需 str()比较运算这里有个陷阱两个数字字符串比较是按字典序不是按数值# 适用于 Python 3.8print(3 10) # True —— 按码点3 1print(3 10) # True —— 数值比较print(3 3) # False —— 类型不同3 10为真是因为先比第一个字符3和13的码点更大。要按数值比就先把两边转成数字。四、把数字变成字符串的三种方式方式写法说明构造器str(n)最直接任何对象都能转f-stringf{n}需要 3.6可内嵌格式说明符格式化方法{:.2f}.format(n)控制小数位、宽度、对齐# 适用于 Python 3.8n 3.14159print(str(n)) # 3.14159print(f{n:.2f}) # 3.14print(f{n:10.2f}) # 3.14 宽度 10右对齐print({:.2f}.format(n)) # 3.14f-string 从Python 3.6开始提供3.6 以下要用str.format()或%格式化%d % n这种 printf 风格至今仍可用但新代码推荐 f-string。五、input 与数字的衔接input()总是返回字符串即使你输入的是42。所以「读一个数字」的标准套路是先input再转# 适用于 Python 3.8raw input(请输入年龄)try:age int(raw)except ValueError:print(f{raw} 不是合法整数)else:print(f明年你 {age 1} 岁)Python 2 里的input()会把你输入的内容当成 Python 代码求值等价于eval(raw_input())这既危险又反直觉Python 3 的input()对应的是 Python 2 的raw_input()永远返回字符串。老代码里那种「输入数字不用转」的行为在 Python 3 已经不存在。常见坑点以为单引号和双引号有区别❌ 认为abc和abc类型/编码不同纠结该用哪个✅ 两者完全等价只在内容含引号时用另一种包起来给 u 前缀赋予 Python 2 的旧含义❌ 以为u文本才能得到 Unicode不加就是字节串✅ Python 3 里str本身就是 Unicodeu前缀无效果字节串要写b...它创建的是bytes拼字符串和数字时忘了转换❌年龄 18→TypeError: can only concatenate str (not int) to str✅年龄 str(18)或 f-stringf年龄{18}以为字符串减号能做数值运算❌10 - 3→TypeError字符串只支持和*✅int(10) - int(3)得到7拿数字字符串按大小比较❌3 10得到True与直觉相反✅ 先int()再比或使用sorted(nums, keyint)乘字符串用浮点❌- * 2.0→TypeError: cant multiply sequence by non-int of type float✅- * int(2.0)或直接写整数三引号字符串吃掉了不该有的缩进❌ 在函数里写多行文本结果每行都带上了函数体缩进✅ 用textwrap.dedent()处理或把三引号内容顶格书写Python 2 的写法照搬❌print hello、ux当必需、raw_input()当输入函数✅print(hello)、直接x、用input()Python 2 已停止维护新代码不要写 2 的语法总结需求写法备注普通字符串x或x两者完全等价多行字符串x保留换行与缩进不转义反斜杠rx\t正则、路径常用拼接a b两边都必须是 str重复s * nn 必须是 int数字转字符串str(n)/ f-stringf-string 需 3.6字符串转数字int(s)/float(s)失败会抛ValueError记住三条单双引号无差别、u前缀在 Python 3 已无意义、字符串与数字之间必须显式转换。把3 10这类字典序比较的陷阱也记在心里处理用户输入时永远先想一步「这是字符串还是数字」就能避开这一带几乎所有的坑。

相关新闻

别被“降AI率”带偏:让AI文本更有“人味”的5种方法

别被“降AI率”带偏:让AI文本更有“人味”的5种方法

先声明一句:这类“降AI率”的标题我刷到过很多次,自己也手痒实测过几轮。如果你是为了让AI写出来的东西更像“人话”,而不是为了在论文、作业、考核里耍小聪明,那这篇文章可以帮你省下大量瞎折腾的时间。我最后留下的是五个从根本…

2026/10/12 4:11:30 阅读更多 →
Coding Interview University:一份从零到Offer的软件工程师面试自学路线图

Coding Interview University:一份从零到Offer的软件工程师面试自学路线图

最近有几个朋友不约而同地问我同一个问题:准备软件工程师面试,到底该从哪里下手?市面上的面经、刷题网站、课程多到让人眼花缭乱,有人一头扎进 LeetCode 从第一题刷到第三百题,有人捧着系统设计书死磕,还有…

2026/10/12 4:10:30 阅读更多 →
大模型开源项目工程复盘:从Token预算到模型评估与发布

大模型开源项目工程复盘:从Token预算到模型评估与发布

“耗时两个月,烧掉100亿Token,我终于把它开源了!”——看到这个标题,很多人的第一反应是:又有人把模型权重传到网上了。这个判断只说对了一半。真正值得关注的,往往不是那一串权重文件,而是这 1…

2026/10/12 4:10:29 阅读更多 →

最新新闻

mediamtx v1.21.2发布:UDP、JWT、RTSP、RTMP、HLS、WebRTC全面修复,稳定性与安全性再提升

mediamtx v1.21.2发布:UDP、JWT、RTSP、RTMP、HLS、WebRTC全面修复,稳定性与安全性再提升

2026年10月10日,mediamtx 发布 v1.21.2 最新版本。本次更新以“修复与改进”为主,覆盖通用逻辑、API、Media-Over-QUIC、RTSP、RTMP、HLS、WebRTC 以及依赖库升级等多个方向。 v1.21.2 没有引入新的功能模块,而是集中处理实际运行中可能出现的…

2026/10/12 5:43:21 阅读更多 →
哪个品牌密码锁最安全 高端市场占比领先全维安防更靠谱安心

哪个品牌密码锁最安全 高端市场占比领先全维安防更靠谱安心

在智能家居全面普及的今天,智能密码锁已经成为了家庭安全防护的核心入口。哪个品牌密码锁最安全,不仅关乎家庭财产安全,更影响着日常进出的便捷体验与全场景安防体验。2026年以来,国内智能门锁行业技术迭代加速,市场格…

2026/10/12 5:43:21 阅读更多 →
2026家用智能锁品牌推荐:德施曼热门产品深度解析

2026家用智能锁品牌推荐:德施曼热门产品深度解析

随着智能家居行业的快速发展,智能门锁已经成为了千家万户的入户安防首选。相较于传统机械锁,智能门锁不仅提供了更加便捷的多种解锁方式,还集成了猫眼可视、AI安防、远程对讲等功能,全方位提升家庭入户安全与使用体验。在2026年上…

2026/10/12 5:43:21 阅读更多 →
本地化企业知识库方案拆解:8 步把文档变成知识库

本地化企业知识库方案拆解:8 步把文档变成知识库

## 背景在项目复盘场景里,企业文档散落各处、找人问半天是效率的主要损耗点。## 核心能力- 全程本地运行,原始文档与知识数据不出电脑- 8 步流水线自动化:解析→结构化→质检→复核→分片→向量库→验收- 内置本地大模型,离线推理…

2026/10/12 5:43:21 阅读更多 →
81 极物科技 | KNX调试 - 个体地址过滤与报文隔离

81 极物科技 | KNX调试 - 个体地址过滤与报文隔离

极物科技 | KNX调试 - 个体地址过滤与报文隔离 前言 工程品质是 KNX 国际标准三十年立足全球的根基,而可观测性是品质的前提。 报文追踪把“看不见的总线”变成“看得见的证据”:每一次收发都有记录、每一次异常都有据可查。本文围绕报文追踪的接收链路、…

2026/10/12 5:43:21 阅读更多 →
百万级缺陷样本开源:工业视觉的「地基」被补上了

百万级缺陷样本开源:工业视觉的「地基」被补上了

1.工业质检的两道坎 ▍坎一:数据各管各的现成的工业缺陷数据集,几乎都窝在单一行当里。VisA、3CAD 盯着 3C 电子,PKU-GoodsAD 盯着包装,Real-IAD、MulSen-AD 盯着材料。覆盖面稍宽些的 VISION、MVTec AD、MMAD,又卡在…

2026/10/12 5:42:21 阅读更多 →

日新闻

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

复古胶片颗粒感噪点合成器:Canvas ImageData 像素高斯杂色注入算法

在数码相机、高清显示屏与现代矢量图形技术高度发达的今天,画面可以做到绝对的锐利、平滑与无瑕。然而,当一张秋日手账插画或拍立得照片过于“平整无瑕”时,往往会散发出一种冰冷生硬的“数码塑料感(Digital Plasticity&#xff0…

2026/10/12 0:00:59 阅读更多 →
活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

活字印刷古籍线装排版:Canvas 竖排文字与栏线自适应算法

在现代网页与移动端设计中,横排(Horizontal Layout)早已经成为了绝对的主流。然而,当我们翻开泛黄的线装古籍、宋版木刻诗集,或是欣赏一张茶道雅集的手写便签时,那种**自上而下纵向书写、自右向左逐列铺展&…

2026/10/12 0:00:59 阅读更多 →
周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

周日晚间的“精神松绑减震器”:无压力情绪倾倒箱与温和轻声陪伴

每到周日的晚上八点到十点,很多人心里都会悄悄亮起一盏警示灯。 在心理学上,这种现象有一个专门的称谓——“周日夜晚焦虑症(Sunday Scaries)”。明天又是周一,闹钟又要重新在七点响彻卧房;脑海里仿佛有一个…

2026/10/12 0:00:59 阅读更多 →

周新闻

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

流感时间序列预测实战:ARIMA/LSTM全流程拆解与避坑指南

简介:基于 ARIMA、LSTM、Transformer 等模型的流感时间序列预测 Python 源码,面向计算机相关专业课程设计与期末大作业学生,以及项目实战学习者。内容覆盖预处理、平稳性检验、定阶、残差分析、多模型对比预测的完整时序建模流程,…

2026/10/12 0:16:30 阅读更多 →
影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别

影刀RPA新手教程:键盘模拟输入实战——输入文本与模拟按键的区别 做影刀RPA自动化,十个新手有八个栽在"往输入框里填东西"这件事上:要么填不进去,要么填了一半,要么直接把原来内容追加在后面。这背后的根因&…

2026/10/12 0:16:38 阅读更多 →
影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容

影刀RPA新手教程:阅文起点小说数据采集实战——书籍信息与章节内容 1. 认识影刀:什么场景该用RPA采小说数据 起点中文网的页面结构相对稳定——分类榜单、书籍详情、章节内容三块独立页面,跳转链路清晰。这种场景非常适合影刀自动化&#x…

2026/10/12 0:16:43 阅读更多 →

月新闻

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

我发现了一个新思路:用 Remotion + Claude Code 像写代码一样自动化生成短视频

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 10:45:37 阅读更多 →
Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

Windows下 Codex 中 Chrome 和 Computer Use 插件不可用问题排查及解决参考方式:TaoToken 统一 Key 配置与验证

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:53 阅读更多 →
黑夜航拍船只数据集训练YOLOV5模型全流程解析

黑夜航拍船只数据集训练YOLOV5模型全流程解析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views …

2026/10/11 14:36:54 阅读更多 →