Python input函数:你输入的数字根本不是数字
你引导用户进行年龄的输入操作, 随后用户诚实地敲击键盘填写了数字十八, 当你把接收到的数据进行加一运算以推算下一年度的年龄时, 整个程序系统直接触发了错误警告。你盯着屏幕在思考, 难道18不是数字吗, 然后再加上一个1会有什么问题的存在。可能颠覆你认知的一点在于其实你在输入框里头输入的这十八个字节的东西, 压根就不被机器认为是所谓的数学上的数, 它在系统眼里头仅仅只是一串普通的字符。这篇文章会对 input() 这一个函数进行深入剖析, 把相关细节全部挖掘出来, 从而让你能够彻底理解这个被称为“伪装大师”的函数, 它究竟是通过何种方式来实现其实际运行效果的。一、input() 和 print() 是一对反义词在前期的时候, 大家学习了print()这个内容, 它的主要功能是进行输出操作, 也就是把那部分指定的内容显示到屏幕上面去。input()函数的作用正好与输出相反, 它就是用来输入数据的, 具体表现就是让计算机停下来等待用户从键盘上敲入字符。它的语法格式是和 print() 一样的, 后面紧随着的就是圆括号。# 输出把内容打印出来print(请输入你的年龄)# 输入等待用户敲键盘input()在运行了 input() 这个步骤以后, 程序会直接卡在那里不动弹, 屏幕上那个光标一直在控制台的位置上闪烁个不停, 非得等着用户那边输入了一些内容才行, 等到用户把字都敲完了, 再按下回车键这一瞬间, 整个程序才会继续往下执行原来的流程, 开始进行后续的任务。刚入手的人经常会有搞不清楚的地方, 就是程序跑起来了一看, 竟然找不着闪烁的光标跑到哪儿去了?当你用鼠标在控制台区域轻轻点击一次的时候, 屏幕上的光标位置就会立刻发生变化并显示出来, 这个时候虽然程序主体部分已经结束运行了, 但是整个任务并没有彻底终止, 它实际上正处于一种等待状态, 专门在等着你来输入数据。二、通过使用变量来接收从 input() 函数那里得到的返回值。仅仅让用户进行输入操作是完全不够的, 你还必须要能够将用户输入的那些数据准确地接住并记录下来。那么具体应该如何去实现这个功能呢? 解决办法就是使用变量来接收这些输入的内容:print(请输入你的年龄)age input()print(f你今年的年龄是{age})运行效果请输入你的年龄18 ← 用户输入你今年的年龄是18当 input() 这个函数执行完毕以后, 它会返回一个值, 这个值实际上就是用户所输入的内容, 我们使用变量 age 去把这个值接过来, 这样在后面就可以进行使用了。三、最大的坑是, input这个函数的返回值始终都是字符串类型, 这一点非常关键且容易造成误解。这是整篇文章最关键的一句话, 我把这一句话加粗了三遍。不管你输入的是数字类型、还是小数类型、又或者字母组合, 通过input()函数所返回出来的内容, 一律都是属于字符串这一种数据形态的。你不相信吗? 可以用 type() 这个函数来试试看:strongcodeage input(请输入你的年龄)/code/strongprint(type(age))请开始执行程序, 然后键入数字18, 随后按下回车键确认。你输入的内容严格来说是数字18, 然而系统反馈的信息却是显示它为str, 并且指明了这是字符串的类型。这就如同你去银行里存款, 把手里的100元现钞交给柜员保管, 而柜员在你的存折上面记录下“壹佰元整”这样的字样——你所持有的资金本身并没有发生变化, 真实的金额依然存在, 只不过其具体的表现形式或者说记录格式发生了转变。四、请问, 那个叫做 input 的函数, 它为什么要被设计成现在这种样子的样子呢?许多人认为这是一种多此一举的行为, 因为用户输入了一个数字, 系统直接返回这个数字即可, 为什么非要将其转换为字符串的形式呢?设想这样一个具体场景, 用户不小心手滑输入了内容3.14abc, 此时系统需要问: 应当把它转换成什么样的数据格式或者归类为什么性质?因此, 其设计的基本思路是将关于数据类型的选择权力完全交付给应用程序开发人员进行掌控, 而我仅仅承担接收你所录入内容的职责, 也就是保持字符串形式的原貌不动, 倘若你希望获得某种特定类型的数据, 则必须依靠自身来完成相应的转换操作。要是从好听的那个方面来讲呢, 这就叫做尊重程序员自己的权利和自由但是如果说得直白一点的话, 其实它的真实含义就是我们真的不想为你将来可能出现的错误去承担那些责任。五、当进行字符串相加操作时, 结果是直接出现了失败的情况。既然明白了那个 input 函数会返回一个字符串, 那么接下来再去看看这个报错信息, 自然就能够理解其中的意思了。strongcodeage input(请输入你的年龄)/code/strongprint(f你明年的年龄是{age 1})运行输入 18回车strongcodeTypeError: can only concatenate str (not int) to str/code/strong翻译成人话字符串只能和字符串拼接不能和数字相加。age 这个变量是字符串, 它的具体内容是18 , 然后呢 , 你让这个东西去加上一个数字 1 , 这么做出来的结果是什么意思呀 , 它表示的意思就是: 这种活计 , 我是干不了的。六、关于解决方案, 这里说的是进行手动的类型转换。既然 input() 给的是字符串那就自己转strongcodeage input(请输入你的年龄)/code/strongage int(age) # 字符串 → 整数age 现在是数字 18print(f你明年的年龄是{age 1})执行操作以后, 往里面填写数字18。strongcode你明年的年龄是19/code/strong操作完成。int函数把字符串“18”转换成了整数18, 之后age加上1就能进行正常的计算了。关键的逻辑就是利用int这个函数对age进行类型的转换。在进行转换操作之后会新生成一个数值, 原本的年龄数据将维持原样而不会被自动替换掉。因此需要执行用新整型化的年龄值赋给原有年龄变量这一步骤。七、input() 自带提示功能print 可以省了前面的写法是先调用 print()函数以提示内容, 然后再调用 input()函数进行接收操作。事实上, input()函数自身是可以直接携带提示信息内容的:strongcode# 旧写法两行/code/strongprint(请输入你的年龄)age input()# 新写法一行搞定age input(请输入你的年龄)把提示文字直接放入输入函数括号内部, 产生的效果是完全一样的, 并且还可以少写一行代码, 这时候提示信息以及用户输入的内容都会出现在同一个行里面。建议在提示信息的末尾增加一个冒号符号, 这样显示的效果会更加规范一些, 例如在代码中写成 input(请输入你的年龄: )。八、在花括号里面, 是可以添加相关表达式的。在前面那段代码里面, 有这样一个形式的字符串, 就是那个用f开头并且后面跟着双引号的那种写法, 它里面的内容是“你明年的年龄是”再加上一个大括号, 大括号里面写的是age这个变量加上数字1, 这里面说的意思是, 大括号当中所能填入的东西, 不仅仅局限于一个变量的名字而已, 而是可以放入任何一种能够通过计算得出某一个具体数值的表达式类型的对象:这条规则只有一条, 那就是只要花括号里面的那些内容, 到最后能变成一个值出来, 那么这些内容就是可以被放到里面去的。九、这是一次完整的全流程实践操作, 目的就是为了拿到具体的姓名信息和个人的年龄数据。strongcodename input(请输入你的姓名)/code/strongage input(请输入你的年龄)age int(age)print(f姓名{name}年龄{age}明年{age 1}岁)运行效果strongcode请输入你的姓名李四/code/strong请输入你的年龄18姓名李四年龄18明年19岁先获取姓名, 再获取年龄。获取到的年龄数值通过类型转换操作, 转换成整数类型。这样转换后的结果, 既可以直接进行打印显示的操作。同时也能够用来参与加法运算。比如用它加上数字一。就能得出这个人明年的年龄数据是多少。十、总结知识点一句话记忆input() 功能与用于输出的 print() 函数相对, 该功能主要用来接收用户通过键盘输入的字符或数据。返回值类型它始终是字符串这一类型存在, 无论你向里面输入的是何种内容。为什么是字符串为了追求最大程度的兼容性, 我们选择将类型转换的权利完全交给程序员去处理。进行相关的计算工作。应当先将数值进行整型转换的操作处理完毕之后, 再着手去执行具体的计算步骤。提示信息把内容直接写到 input 的那个括号里面去, 这样一来, 就可以把 print 这个写法给省略掉了不用写。f, 也就是那个花括号。能放任何能算出值的表达式三句话浓缩1. 通过输入函数来获取用户所填写的具体内容, 然后必须使用一个指定的变量把那个返回的数据给接收住, 就这样用变量接住返回值这一种操作方式是可行的。2. 返回的结果始终都是字符串这种类型, 因此在执行任何关于数学的计算或者是运算之前, 必须先通过使用 int这个方法来进行转换。3. 提示信息应该直接放置到括号里的input ()中, 这样就是一行搞定的事情。请你务必牢记这样一个关键点, 那就是在你所输入的那个数字面前, 从 input()函数的视角来看, 它仅仅只是一段看起来像是数字符号的文本内容。如果你想要让它去充当一个真正数字的角色来参与后续运算或者处理的话, 那么你必须亲自动手去完成将其转换为指定类型的相关操作才行。

相关新闻

SQL Server 2016 安装步骤图文教程:从下载到 SSMS 连上的完整路径

SQL Server 2016 安装步骤图文教程:从下载到 SSMS 连上的完整路径

简介:这份资源是面向数据库初学者与运维人员的 SQL Server 2016 安装图文教程,以 PDF 文档形式呈现,帮助读者在 Windows 环境下独立完成数据库引擎的部署与初始配置。压缩包内共 1 个 PDF 文件,整体约 1.42MB,体积轻便…

2026/9/25 22:00:40 阅读更多 →
Java EE仓库管理系统数据库设计:从ER图到MySQL建表与JPA持久层实战

Java EE仓库管理系统数据库设计:从ER图到MySQL建表与JPA持久层实战

简介:这份文档面向Java-EE初学者、课程设计学生及需要完成仓库管理系统开发的开发者,聚焦数据库设计阶段的实体关系建模,帮助读者理清货物、仓库、管理员、采购员、提货员等核心实体的属性定义与关联逻辑。资源包共1个doc文件,约2…

2026/9/25 22:00:39 阅读更多 →
CentOS7 VMware最小化安装与静态IP配置实战指南

CentOS7 VMware最小化安装与静态IP配置实战指南

1. 这不是“又一篇CentOS7安装教程”,而是一份能让你在30分钟内完成部署、网络通透、后续不踩坑的实战手册你搜“CentOS7安装教程”,页面刷出来几百篇——有的配图模糊,步骤跳步;有的写着“详细”,却把VMware新建虚拟机…

2026/9/25 22:00:39 阅读更多 →

最新新闻

Python f-string性能原理与工程实践指南

Python f-string性能原理与工程实践指南

1. 为什么我彻底停用了.format()和%,只用 f-string?三年前我还在带一个刚转行的实习生,他写了一段爬虫日志记录代码:log_msg "Request to {url} failed with status {code}, retrying {count} times".format(urlendpoi…

2026/9/27 0:51:05 阅读更多 →
Agentic调度系统:面向智能体的原生Kubernetes编排方案

Agentic调度系统:面向智能体的原生Kubernetes编排方案

1. 项目概述:从“ax”这个极简标题切入,我们到底在谈什么?“ax”——两个字母,没有空格,没有标点,没有上下文。乍一看像缩写、像代号、像密码,甚至像打字错误。但结合当前技术社区高频出现的热搜…

2026/9/27 0:51:05 阅读更多 →
如何开发FluentTweaker扩展:元数据、Host模式与参数传递完整参考

如何开发FluentTweaker扩展:元数据、Host模式与参数传递完整参考

如何开发FluentTweaker扩展:元数据、Host模式与参数传递完整参考 【免费下载链接】FluentTweaker Windows Slop Remover 项目地址: https://gitcode.com/gh_mirrors/wi/FluentTweaker FluentTweaker(Windows Slop Remover)是一款开源的…

2026/9/27 0:51:05 阅读更多 →
Agent Cookie Sync:Grok Bot与Muse的Chrome会话同步实践

Agent Cookie Sync:Grok Bot与Muse的Chrome会话同步实践

1. 从"登录态丢失"说起:Agent Cookie Sync 到底在解决什么做过浏览器自动化的人大概率都遇到过这个场景:脚本跑得好好的,突然某一天所有请求全部返回未登录,页面跳回登录页,之前辛苦维持的会话状态一夜清零。…

2026/9/27 0:51:05 阅读更多 →
企业高端网站制作避坑指南:5个技术选型坑,让网站真正被搜到

企业高端网站制作避坑指南:5个技术选型坑,让网站真正被搜到

企业高端网站制作避坑指南:5个技术选型坑,让网站真正被搜到 网站做好了没人访问,这是90%企业老板最头疼的事。不是设计不够炫,也不是功能不够多,而是从底层架构到前端代码,每一步都在为SEO埋雷。我见过太多案例:花三十万做的官网,百度收录不到…

2026/9/27 0:51:05 阅读更多 →
codex-app-mirror如何15分钟发现Codex新版?“探测→比对→发布“镜像管道全拆解

codex-app-mirror如何15分钟发现Codex新版?“探测→比对→发布“镜像管道全拆解

codex-app-mirror如何15分钟发现Codex新版?"探测→比对→发布"镜像管道全拆解 【免费下载链接】codex-app-mirror 原样镜像官方 Codex 桌面应用:每 15 分钟探测、SHA256 可校验、国内直连下载、 Mac 可增量更新 | Verbatim, verifiable mirror of the off…

2026/9/27 0:50:04 阅读更多 →

日新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:34 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/27 0:00:34 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/27 0:00:34 阅读更多 →

周新闻

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解

如何划分训练/验证集:Spirula Studio五种eval_mode策略详解 【免费下载链接】spirula-studio Cross-vendor 3D Gaussian Splatting trainer - video to splat to mesh, Vulkan or CUDA. 项目地址: https://gitcode.com/GitHub_Trending/sp/spirula-studio Sp…

2026/9/27 0:00:34 阅读更多 →
SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南

SEO怎么推广速查手册新手避坑实战指南 模板网站太丑不够用?别急着加滤镜,那是治标不治本。很多老板盯着后台流量掉得眼红,却还在纠结首页Banner的圆角是不是3像素。这就像穿着西装去挖土,姿势不对,努力白费。我整理这份 速查手册…

2026/9/27 0:00:34 阅读更多 →
FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏

FireRed-OpenStoryline少样本仿写深度解析:AI Agent如何复刻你的独特文案风格与节奏 【免费下载链接】FireRed-OpenStoryline FireRed-OpenStoryline is an AI video editing agent that transforms manual editing into intention-driven directing through natural language …

2026/9/27 0:00:34 阅读更多 →

月新闻

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能

持续集成 流水线自动化与 声明式交付 实践:原型怎样变成可用功能分类:[AI/大模型]细分主题:AI 增强型 CI/CD 流水线自动化与 GitOps 实践:Agent 工作流、工具调用与任务拆解:从原型到生产的验收清单很多团队在尝试用大…

2026/9/25 20:29:43 阅读更多 →
容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场

容器编排 生产环境运维与排障实战:复盘记录怎样真正派上用场分类:[工程技术]细分主题:Kubernetes 生产环境运维与排障实战:可复制的项目复盘模板与决策记录大部分团队的事故复盘报告,最后都变成了躺在 Confluence 或钉…

2026/9/25 20:29:31 阅读更多 →
容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步

容器 容器化技术与镜像安全管理:核心链路应该先拆哪一步分类:[工程技术]细分主题:Docker 容器化技术与镜像安全管理:核心链路的逐步实现与关键代码取舍面对一个积累了五六年历史包袱的单体架构应用(包含 Web 接口、后台…

2026/9/26 22:52:30 阅读更多 →