
本文深入探讨了python中将`print(input())`的执行结果赋值给变量时,变量为何会变为`none`,并最终导致`typeerror`的常见问题。文章详细解释了`input()`和`print()`函数的返回值机制,并通过具体代码示例展示了错误产生的原因及其正确的修正方法,旨在帮助开发者避免此类因函数返回值理解不清而引发的编程错误。
在Python编程中,初学者有时会遇到一个令人困惑的TypeError,尤其是在尝试获取用户输入并将其赋值给变量时。典型的错误信息如下:
TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType'
这种错误通常发生在尝试对两个NoneType类型的变量执行不支持的操作(如加法、字符串拼接等)时。它表明预期为字符串或其他数据类型的变量,实际上被错误地赋值为None。
考虑以下导致该错误的代码示例:
name1 = print(input("please enter name1: "))
name2 = print(input("please enter name2: "))
combined_names = name1 + name2 # 此处会引发 TypeError
lower_names = combined_names.lower()
# ... 后续代码 ...当运行这段代码并输入姓名后,程序会在 combined_names = name1 + name2 这一行抛出 TypeError,因为 name1 和 name2 的值都被意外地设置为了 None。
要理解上述错误的原因,我们必须清晰地认识Python中 input() 和 print() 这两个核心函数的行为和返回值。
例如:
无限画
千库网旗下AI绘画创作平台
574
查看详情
user_input = input("请输入您的名字: ")
print(type(user_input)) # 输出: <class 'str'>
print(user_input) # 输出用户输入的内容例如:
result = print("Hello, World!")
print(type(result)) # 输出: <class 'NoneType'>
print(result) # 输出: None现在,让我们回到有问题的代码行:name1 = print(input("please enter name1: "))
因此,name1 和 name2 变量都存储了 None。当后续代码尝试执行 combined_names = name1 + name2 时,Python会尝试对两个 None 值进行加法操作,而 NoneType 不支持这种操作,从而抛出 TypeError。
解决这个问题的关键在于:移除赋值语句中的 print() 函数。我们只需要将 input() 函数返回的用户输入字符串直接赋值给变量即可。input() 函数本身已经包含了显示提示信息的功能,无需额外使用 print() 来显示提示。
# 正确的做法:直接将 input() 的返回值赋给变量
name1 = input("please enter name1: ")
name2 = input("please enter name2: ")
combined_names = name1 + name2 # 现在 name1 和 name2 都是字符串,可以正常拼接
lower_names = combined_names.lower()
t = lower_names.count("t")
r = lower_names.count("r")
u = lower_names.count("u")
e = lower_names.count("e")
first_digit = t + r + u + e
l = lower_names.count("l")
o = lower_names.count("o")
v = lower_names.count("v")
e = lower_names.count("e")
second_digit = l + o + v + e
score = int(str(first_digit) + str(second_digit))
if (score < 10) or (score > 90):
print(f"your score is {score}, you go together like coke and mentos.")
elif (score >= 40) and (score <= 50):
print(f"your score is {score}, you are alright together.")
else:
print(f"your score is {score}.")通过上述修改,name1 和 name2 将正确地保存用户输入的字符串,后续的字符串连接操作也就能顺利执行,程序将按预期运行。
TypeError: unsupported operand type(s) for +: 'NoneType' and 'NoneType' 错误在Python初学者中较为常见,其根本原因在于混淆了 input() 和 print() 函数的返回值。input() 函数返回用户输入的字符串,而 print() 函数始终返回 None。因此,在需要获取用户输入并将其用于后续操作时,应直接将 input() 函数的返回值赋给变量,避免将其嵌套在 print() 函数内部进行赋值。理解并正确运用函数返回值是编写健壮、无错Python代码的基础。
以上就是Python中print(input())赋值导致变量为None的解析与修正的详细内容,更多请关注其它相关文章!
# git
# 它会
# 不支持
# 将其
# 会在
# 浮点
# 量为
# 是在
# 提示信息
# elif
# 为什么
# python编程
# 常见问题
# 区别
# app
# go
# python
# 返回值
# 余杭推广网站价格
# 政府网站瘦身优化
# 网站优化托管费用
# 小微网站建设运营
# 石排网站建设外包
# 湖南英文网站建设
# 南充网站建设路成都
# 漳河网络推广网站是什么
# seo涉及啥
# 网站建设与推广策略
# 抛出
相关栏目:
【
Google疑问12 】
【
Facebook疑问10 】
【
优化推广96088 】
【
技术知识133117 】
【
IDC资讯59369 】
【
网络运营7196 】
【
IT资讯61894 】
相关推荐:
WooCommerce 购物车:始终显示所有交叉销售商品
在Django中动态检查模型关联:一种灵活的解决方案
QQ网页版入口导航 QQ网页版在线访问通道
鼠标没反应了怎么办 无线/有线鼠标失灵的解决方法【详解】
视频号视频怎么提取文案?提取的文案如何优化与使用?
在Dash应用中自定义HTML标题和网站图标
《气泡星球》兑换码礼包大全
c++类和对象到底是什么_c++面向对象编程基础
《360浏览器》设置摄像头权限方法
跨语言测试实践:使用Python Selenium测试现有J*a Web项目
GBA模拟器手柄按键设置
excel怎么制作考勤表 excel考勤模板与函数公式讲解
Yandex浏览器官方入口_Yandex搜索引擎中文版
Win10输入法不见了怎么办 Win10找回语言栏图标教程
手机自动关机是怎么回事?如何修复?手机异常关机的原因排查与修复技巧
《画加》约稿流程
yy漫画登录页面官方入口_yy漫画在线阅读网址入口
《暗黑破坏神4》国服回归送狂欢礼包 价值6916元
掌握Go App Engine项目结构与GOPATH:包管理与导入实践
byrutor直接访问入口 byrutor官方游戏库
PHP中获取HTTP响应状态消息:方法与限制
以下哪一个是适应长期护理制度发展而设立的新职业
《雅迪智行》用手机开锁方法
菜鸟裹裹怎样获得取件码_菜鸟裹裹获得取件码步骤
嘴唇干裂起皮怎么办 唇部护理与预防干裂的方法【详解】
网站体验不好=浪费钱:如何提升-用户体验效果差
J*aScript与CSS动画:实现平滑顺序淡入淡出效果并解决显示冲突
泰拉瑞亚水晶无法放置问题
教育查询官方网站入口 教育个人档案查询免费官网
word页码灰色不能用如何解决
Pydantic 中“schema”字段命名冲突的解决方案
PPT页面尺寸怎么修改 PPT自定义幻灯片大小与方向设置【教程】
谷歌浏览器官方镜像获取方法_谷歌浏览器网页版入口极速直达
《东方航空》添加乘机人方法
火狐浏览器无法自动更新怎么办 手动更新火狐浏览器到最新版本【解决】
Highcharts雷达图径向轴数值标签实现教程
CSS过渡如何实现按钮悬停效果_transition属性控制背景颜色变化
C++如何实现单例模式_C++线程安全的单例模式写法
哈尔滨城市通昵称修改方法
win11资源管理器标签页怎么用 Win11文件管理器多标签高效操作【新功能】
自定义你的VS Code状态栏,监控关键信息
《绝区零》2.3前瞻|直播|内容介绍
抖音号升级企业号怎么改名字?升级企业号有哪些好处?
PHP使用DOMDocument与XPath精准追加XML元素教程
《理想汽车》权限管理设置方法
Win10怎么设置快速启动 Win10开启快速启动设置方法
韩剧圈正版官网入口_韩剧圈官方指定登录
LINUX怎么查看显卡信息_LINUX查看GPU状态
魔法祈幻界兑换码礼包大全
网页版网易云音乐入口_网易云音乐在线官网登录
2025-11-19
运城市盐湖区信雨科技有限公司是一家深耕海外推广领域十年的专业服务商,作为谷歌推广与Facebook广告全球合作伙伴,聚焦外贸企业出海痛点,以数字化营销为核心,提供一站式海外营销解决方案。公司凭借十年行业沉淀与平台官方资源加持,打破传统外贸获客壁垒,助力企业高效开拓全球市场,成为中小企业出海的可靠合作伙伴。