gpt4 book ai didi

python - 是什么导致了这个程序的错误

转载 作者:行者123 更新时间:2023-12-01 04:13:39 26 4
gpt4 key购买 nike

我编写的程序遇到了一些问题。我不太确定问题是什么。但是,我想不出要寻找什么来解决问题。既然如此,如果这是一个重复的问题,我提前道歉。

# convert.py
# A program to convert Celsius temps to Fahrenheit

def main():
print("Hello", end=" ")
print("this program will convert any 5 different celsius temperatures to fahrenheit.")
c1, c2, c3, c4, c5 = eval(input("Please enter 5 different celsius temperatures seperated by commas: "))
print(c1, c2, c3, c4, c5)
for i in range(5):
c = ("c" + str(i + 1))
print(c)
fahrenheit = 9/5 * c + 32
print("The temperature is", fahrenheit, "degrees Fahrenheit.")
input("The program has now finished press enter when done: ")

main()

这个程序运行良好,直到第一个循环出现华氏度赋值语句。我确信问题涉及变量以及我分配它们的最有可能不正确的方式。因此,如果有人能指出我做错了什么以及为什么它不起作用,我将不胜感激。

最佳答案

非常接近,但不转换为字符串:

def main():
print("Hello", end=" ")
print("this program will convert any 5 different celsius temperatures to fahrenheit.")
temps = eval(input("Please enter 5 different celsius temperatures seperated by commas: "))
print(*temps)
for c in temps:
print(c)
fahrenheit = 9/5 * c + 32
print("The temperature is", fahrenheit, "degrees Fahrenheit.")
input("The program has now finished press enter when done: ")

main()

不建议使用eval,因为用户可以执行任意Python代码。更好地显式转换数字:

prompt = "Please enter 5 different celsius temperatures seperated by commas: "
temps = [int(x) for x in input(prompt).split(',')]

这个:

c = ("c" + str(i + 1))

创建字符串'c1''c2'等。它们与您在 input 行中分配的名称 c1c2 不同。将用户输入的所有值放入 temp 中会更容易。一、二、十、一百都没关系。 Python 允许直接循环 temps:

for c in temps:

这里c依次成为存储在temps中的每个数字。

关于python - 是什么导致了这个程序的错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34572776/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com