首页 > 解决方案 > input() 函数在不同的操作系统中以不同的方式处理数据类型?

问题描述

如果有人看过这个或者这是常识,我很感兴趣。另外,如果任何其他功能/方法都是这种情况?

如果我有使用 input() 的代码,则用户输入的值应该是 str 数据类型。在 Windows 中,情况似乎非常普遍。

如果我在 Mac/Linux 中运行相同的代码,操作系统似乎足够“智能”,可以将数据类型转换为 int。

代码示例:

print("Enter multiple numbers, enter 0 to stop")
counter = 0
number_supplied = 1
sum = 0
while number_supplied !=0:
    number_supplied = input("")
    counter +=1
    sum = sum + number_supplied
print(sum/(counter-1))

如果我在 Windows 中运行此代码,它(正确地)会引发 TypeError。如果我在 Mac 或 Linux 中运行它,它不会。

任何想法,输入(糟糕的双关语......对不起)将不胜感激!

标签: pythonpython-3.x

解决方案


您不小心在 Python 2(input()解析值)和 Python 3(input()总是返回字符串)上运行了相同的代码。

确保您在python3Mac/Linux 机器上运行 with,并记住您可以验证pythonwith的版本python --version


推荐阅读