首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >基本python代码中的错误

基本python代码中的错误
EN

Stack Overflow用户
提问于 2015-12-11 21:34:24
回答 3查看 764关注 0票数 0

所以我今天刚开始做Python。尝试了一个基本程序,但我得到了一个错误“无法将int对象转换为str隐式”

代码语言:javascript
复制
userName = input('Please enter your name: ' )
age = input('Please enter your age: ')

factor = 2
finalAge = age + factor  **ERRORS OUT ON THIS LINE**
multAge = age * factor
divAge = age / factor


print('In', factor, 'years you will be', finalAge, 'years old', userName )
print('Your age multiplied by', factor, 'is', multAge )
print('Your age divided by', factor, 'is', divAge )

当我输入int(年龄)+因子,而不是年龄,它工作得很好。但是作者说python自动在输入变量时会检测到变量类型。因此,在这种情况下,当我输入age=20,那么年龄应该变成整数自动正确吗?

期待任何帮助!

EN

回答 3

Stack Overflow用户

回答已采纳

发布于 2015-12-11 21:45:07

来自文档

然后,函数从输入中读取一行,将其转换为字符串(去掉尾随的换行符),并返回该字符串。

如您所见,python2.x中的input()函数通过转换给定的任何输入来返回字符串,这与python2.x中的raw_input()非常相似。

因此,age显然是一个字符串。

不能添加带有整数的字符串,因此出现了错误。

无法将int对象转换为str隐式

int(age)age转换为整数,因此在您的情况下它可以工作。

你能做的是:

使用:

代码语言:javascript
复制
age = int(input('Please enter your age: '))

显式地将输入转换为整数。

票数 1
EN

Stack Overflow用户

发布于 2015-12-11 21:47:08

您的问题是输入返回一个字符串(因为通常情况下,命令行的输入是文本)。您可以将其转换为int以删除错误,就像您所做的那样。

Python只会自动检测程序中变量的类型,如果它们还没有类型的话--它不会自动将类型化变量转换为不同类型。

票数 0
EN

Stack Overflow用户

发布于 2015-12-11 21:50:31

Python不知道您要做什么操作,只要'+‘操作符可以用来连接字符串和添加数字。

所以,它不知道你是否想

代码语言:javascript
复制
finalAge = int(age) + factor   #finalAge is an integer

代码语言:javascript
复制
finalAge = age + str(factor)   #finalAge is a string

您需要显式地转换您的变量,这样它就不会含糊了。

在您的示例中,int(age)返回一个整数,这是获取所需内容的正确方法。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/34232929

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档