Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 如何在不进行显式转换的情况下将输入读取为整数?_String_Python 3.x_Type Conversion_Integer_User Input - Fatal编程技术网

String 如何在不进行显式转换的情况下将输入读取为整数?

String 如何在不进行显式转换的情况下将输入读取为整数?,string,python-3.x,type-conversion,integer,user-input,String,Python 3.x,Type Conversion,Integer,User Input,我编写了一个程序,从用户那里读取一些简单的数字和字符串后,将它们输出给用户 为了打印和使用数学运算符,我必须多次转换数据类型,以便以我想要的方式打印 这是我的密码: print("What is your name?") name = input() print("What is your age?") age = input() print(type(age)) print("Check for type") print("We will now add your " + age + "

我编写了一个程序,从用户那里读取一些简单的数字和字符串后,将它们输出给用户

为了打印和使用数学运算符,我必须多次转换数据类型,以便以我想要的方式打印

这是我的密码:

print("What is your name?")
name = input()

print("What is your age?")
age = input()

print(type(age))
print("Check for type")

print("We will now add your " + age + " years to 50.")
age = int(age)
print(type(age))
print("Check for type")

finalAge = 50 + age
finalAge = str(finalAge)
age = str(age)
print("In 50 years " + name + " will be " + finalAge + " years old.")
以下是输出:

What is your name?
Gavin
What is your age?
23
<class 'str'>
Check for beginning
We will now add your 23 years to 50.
<class 'int'>
Check for end
In 50 years Gavin will be 73 years old.
你叫什么名字?
加文
你几岁?
23
检查开始
我们现在将把你的23岁加上50岁。
检查是否结束
50年后,加文将73岁。

底线是,我正在寻找一种更好的方法,在程序完成之前不必多次转换类型。欢迎任何建议

最好不要进行重新分配,只在需要时才施放

print("What is your age?")
age = input()

print("We will now add your " + age + " years to 50.")

finalAge = 50 + int(age)
print("In 50 years " + name + " will be " + str(finalAge) + " years old.")
此外,根据适合的数据类型分配数据类型是一种很好的做法
age
最适合
int

print("What is your age?")
age = int(input())

print("We will now add your " + str(age) + " years to 50.")

finalAge = 50 + age
print("In 50 years " + name + " will be " + str(finalAge) + " years old.")

您不能将
int
值添加到
str
值或类似的值中,尽管
str
值中有一个数字,因为它们的变量类型不同,但您可以创建函数以简化项目,或对同一事物使用较少的代码,例如,您可以使用以下内容:-

def sum(a, b):
    return str(int(a)+int(b));

这是一个函数,它返回两个数值之和作为字符串,您可以根据需要创建许多自定义函数。通过使用函数,您可以使代码更简单、更有趣,可以使用字符串格式而不是串联:
打印({}).format(50))
@JonathonReinhart你有没有任何示例代码来说明它的样子?但是为什么你给age赋值,然后给age赋值?是不是错了?@Azhy它开始是一个字符串,然后我把它改成一个整数来添加它,然后又改回一个字符串。看来我本可以把我的方法制定得更好一点。为什么会有反对票?他要求一种不必在他的程序中多次转换类型的方法,我相信这个答案是正确的。显然,他可以使用更好但更先进的方法,但这不是问题所要问的。伯恩梅尔,我同意你的看法。您还建议了哪些其他高级方法?我很想学这个!所以,任何我能探讨的话题我都会很感激。