变量被视为字符串(Python)

问题描述 投票:0回答:2

我正在尝试将我用 javascript 编写的程序转换为 python,以便我可以在学校计算器上使用它,但我一直遇到毫无意义的问题。通常,当我运行程序时,它会将变量视为字符串,为了解决这个问题,我尝试使用 int() 函数。它一直工作到计算区域。当变量等于零时,我一直看到错误,例如“以 10 为底的 int() 的无效文字”,我也不知道如何修复。感谢任何帮助,请记住我从未编写过 Python 程序。 下面列出代码供参考

intltemp = input("initialtemp")
finaltemp = input("finaltemp")
mass = input("mass")
if int(intltemp) < 0:
    warmicetemp = intltemp
else:
    warmicetemp = 0
if int(finaltemp) > 100:
    steamtemp=finaltemp
    heatwatertemp = 100
else:
    steamtemp = 0
    heatwatertemp = finaltemp

warmice = (mass*warmicetemp*2060)
meltice = (mass*(3.34*(10**5)))
heatwater = (mass*heatwatertemp*4184)
vaporwater = (mass*(2.26*(10**6)))
steam = (mass*steamtemp*2020)
final = warmice+meltice+heatwater+vaporwater+steam
print(final)

我尝试在 int() 函数中创建每个变量,但出现了上述错误。我相信它可能与顶部的 input() 函数有关。

应要求,回溯:

Traceback (most recent call last):
  File "main.py", line 16, in <module>
    meltice = (mass*(3.34*(10**5)))
TypeError: can't multiply sequence by non-int of type 'float'


** Process exited - Return Code: 1 **
Press Enter to exit terminal
python string variables
2个回答
0
投票

问题是输入函数将输入读取为字符串而不是整数。 我确保开头的 input() 函数是一个整数而不是包含整数的字符串。我通过使用 int() 函数将输入作为字符串转换为整数来实现这一点。


0
投票

在这一行你正在做 strstrint

warmice = (mass*warmicetemp*2060)

所有其他变量也可以这样说。 您需要将它们转换为 int() 否则您将整数乘以字符串。


试试这个:

intltemp = int(input("initialtemp"))
finaltemp = int(input("finaltemp"))
mass = int(input("mass"))
if intltemp < 0:
    warmicetemp = intltemp
else:
    warmicetemp = 0
if finaltemp > 100:
    steamtemp=finaltemp
    heatwatertemp = 100
else:
    steamtemp = 0
    heatwatertemp = finaltemp

warmice = (mass*warmicetemp*2060)
meltice = (mass*(3.34*(10**5)))
heatwater = (mass*heatwatertemp*4184)
vaporwater = (mass*(2.26*(10**6)))
steam = (mass*steamtemp*2020)
final = warmice+meltice+heatwater+vaporwater+steam
print(final)
© www.soinside.com 2019 - 2024. All rights reserved.