【问题标题】:Everything appears to be defined as a string? Python [duplicate]一切似乎都被定义为一个字符串? Python [重复]
【发布时间】:2018-07-01 02:35:20
【问题描述】:

我对编程完全陌生。但是,我只想在 Python 上编写一些简单的代码,它允许我输入任何数据,并且数据的类型会被转发或“打印”回给我。

我目前的脚本是:

x = input()
print(x)
print(type(x))

但是,无论我输入一个字符串、整数还是浮点数,它总是会打印字符串?有什么建议吗?

【问题讨论】:

  • 输入函数总是返回一个字符串。这就是它的目的。如果你想要一个浮点数,你必须自己进行转换。例如:float('3.14'),它返回一个浮点值。
  • 你为什么期望input 函数返回字符串以外的任何内容(在 Python 3 中)?来自its documentation函数 (..) 从输入中读取一行,将其转换为字符串(去除尾随换行符)....
  • 让我们把这个问题作为一个不可重现的问题来结束。祝编程好运! :)
  • "有什么建议吗?" 是的,找一个不错的 Python 教程。阅读并理解它,运行它提供的所有示例程序。通过猜测来学习 Python 不是很有效,也不是很有效率。可以推荐官方Python Tutorial吗?

标签: python


【解决方案1】:

在 Python 中,input 总是返回 string。 如果您想将其视为int,则必须对其进行转换。

num = int(input('Choose a number: '))
print(num, type(num))

如果你不确定你可以做的类型:

num = input('Choose a number: ')
try:
    num = int(num)
except:
    pass
print(num, type(num))

【讨论】:

  • 所以 Python 不会允许我想要创建的函数,除非我将它固定在一种类型上,并且信息必须属于指定的类型,这意味着我必须通过各种 shell/脚本运行相同的信息?
  • 您可以自己定义一个函数input,它在您将要导入的模块中按照您喜欢的方式运行。
【解决方案2】:

1111 或 1.10 是有效字符串

如果用户按四次“1”键然后回车,则没有什么神奇的方法可以判断他们是想输入数字 1111 还是字符串“1111”。输入函数将用户输入的任意文本数据作为字符串提供给您的程序,您可以根据需要对其进行解释。

如果您想对特定格式的数据进行不同的处理(例如,如果他们输入“1111”,则将其作为数字 1111 进行处理,如果他们输入“111x”,则会显示一条消息“请输入有效数字”),那么您的程序需要实现该逻辑。

【讨论】:

    猜你喜欢
    • 2019-04-09
    • 2014-06-14
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-01-17
    • 1970-01-01
    相关资源
    最近更新 更多