我刚刚开始学习编码,所以我是新手。
我一直在尝试创建一个程序,询问用户所在城市的温度,然后将其转换为华氏温度(如果用户的温度为摄氏温度,反之亦然)。
但是,当我尝试调用变量“ temperature”(用户在其中输入温度)时,它说我无法调用str对象,尽管我使用int()函数将其转换为整数。 / p>
我该如何解决这个问题?
这是我的代码:
temperature = int(input(("What's the current temperature in your city? (please type only numbers)")))
temperature_metric = input("Is it in celsius or fahrenheit?")
while temperature_metric not in ['celsius', 'fahrenheit']:
print("Please type 'celsius' or 'fahrenheit'.")
temperature_metric = input()
if temperature_metric == 'celsius':
print("Your temperature in fahrenheit is: "(9/5 * temperature) + 32)
elif temperature_metric == 'fahrenheit':
print("Your temperature in celsius is: " ((5/9) * (temperature - 32)))
答案 0 :(得分:2)
您的两个打印语句缺少逗号,就这样!
if temperature_metric == 'celsius':
print("Your temperature in fahrenheit is: ", (9/5 * temperature) + 32)
elif temperature_metric == 'fahrenheit':
print("Your temperature in celsius is: " , ((5/9) * (temperature - 32)))
答案 1 :(得分:0)
错误最终出现在您的打印语句中,例如:
print("Your temperature in celsius is: " ((5/9) * (temperature - 32)))
要分解它:
print("..."(expr))
从语法上讲,print
的参数是一个函数调用,其中“ function”是一个字符串;错误所指向的对象。
其他答案已经显示了如何解决此问题,这是一些方法:
+
的字符串连接,这需要两个字符串:print("message " + str(temperature))
print
使用单独的参数:print("message", temperature)
。请注意,由于print
在参数之间插入了空格,因此我省略了空格。print(f"message {temperature}")
我个人更喜欢第三个,因为它不依赖打印,并且使消息保持整洁。
答案 2 :(得分:-1)
您没有转换if-elif
中的整数部分。您可以只打印整数或字符串值。要打印整数和字符串值,您需要使用str()
将整数转换为字符串。因此,代码应如下所示:
temperature = int(input(("What's the current temperature in your city? (please type only numbers)")))
temperature_metric = input("Is it in celsius or fahrenheit?")
while temperature_metric not in ['celsius', 'fahrenheit']:
print("Please type 'celsius' or 'fahrenheit'.")
temperature_metric = input()
if temperature_metric == 'celsius':
print("Your temperature in fahrenheit is: " + str((9/5 * temperature) + 32))
elif temperature_metric == 'fahrenheit':
print("Your temperature in celsius is: " + str(((5/9) * (temperature - 32))))