【问题标题】:How do I read input as integers without explicitly converting them?如何在不显式转换的情况下将输入读取为整数?
【发布时间】:2018-08-08 22:26:26
【问题描述】:

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

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

这是我的代码:

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.

最重要的是,我正在寻找一种更好的方法,在程序完成之前不必多次转换类型。接受任何建议!

【问题讨论】:

  • 使用字符串格式而不是串联:print("{}".format(50))
  • @JonathonReinhart 你有任何示例代码来说明它的外观吗?
  • 但是为什么你给年龄赋予str 值,然后你给它一个int 值呢?是不是错了?
  • @Azhy 一开始是一个字符串,后来我改成 Integer 来添加,然后又改回 String。看起来我本可以更好地制定我的方法。

标签: string python-3.x type-conversion integer user-input


【解决方案1】:

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

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

这是一个函数,它返回两个 number 值之和作为字符串,您可以根据需要创建许多自定义函数,您可以通过使用使您的代码更容易和更有趣函数

【讨论】:

    【解决方案2】:

    最好不要重新分配,只在需要时才进行转换。

    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.")
    

    【讨论】:

    • 为什么投反对票?他要求一种不必在他的程序中多次转换类型的方法,我相信这个答案。显然他可以使用更好但更先进的方法,但这不是问题所要问的
    • 伯恩迈尔,我同意你的看法。您还会建议哪些其他高级方法?我很想学这个!所以,任何我能研究的话题我都会很感激。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-07-09
    • 2022-01-15
    • 2020-01-11
    相关资源
    最近更新 更多