我正在尝试将我用 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
问题是输入函数将输入读取为字符串而不是整数。 我确保开头的 input() 函数是一个整数而不是包含整数的字符串。我通过使用 int() 函数将输入作为字符串转换为整数来实现这一点。
在这一行你正在做 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)