Мне нужна помощь. Я пытаюсь сделать мой цикл работы с десятичными знаками, но мой код не будет принимать поплавки, и я не уверен, что делать дальше. Может ли кто-нибудь указать, где я ошибся?Можете ли вы использовать поплавок в этом цикле?
Это код, используемый для преобразования Цельсия в Фаренгейт по шагам (Дельта), которые пользователь определяет. Вот оно:
def main():
# Handshake
print("This program will convert a range of Celsius degrees to")
print("Fahrenheit degrees based on your input.")
# Ask and read low end of range
Rangelow = eval(input("Enter the low end of your range: "))
# Ask and read top end of range
Rangehigh = 1 + eval(input("Enter the high end of your range: "))
# Ask and read Delta
Delta = eval(input("Enter the Delta for your range: "))
#Display output
print("Celsius to Fahrenheit by", Delta)
for i in range(Rangelow, Rangehigh, Delta):
print(i, " ", 9/5 * i + 32)
main()
Это пример того, что я имею в виду:
Эта программа преобразует диапазон градусов Цельсия до градусов по Фаренгейту на основе вашего ввода. Введите нижний конец вашего диапазона: 3,8 Введите высокий конец вашего диапазона: 14,7 Введите дельту для диапазона: 1.1 Цельсия в градусы Фаренгейта на 1,1 TraceBack (самый последний вызов последнего): Файл «C: \ Пользователи \ jarre \ Desktop \ Python Programs \ Conversion.py ", строка 27, в main() Файл« C: \ Users \ jarre \ Desktop \ Python Programs \ Conversion.py », строка 22, в основном для i in range (Rangelow, Rangehigh + 1, Delta): ТипError: 'float' объект не может быть интерпретирован как целое число
Я должен отметить, что проблема, похоже, связана с вводом, после запятой после вход был преобразован.
Когда вы говорите, что «мой код не принимает поплавки», что это значит? Если есть трассировка, отредактируйте свой вопрос и добавьте его. – Gerrat
Проверьте документы: https: //docs.python.org/2/library/functions.html ... 'Аргументы должны быть целыми числами. ' – blacksite
Боковое примечание. Пожалуйста, не используйте' eval' для пользователя поставляемый вход. Если вы ожидаете 'float', используйте' float' вместо 'eval'. Если вы хотите разрешить 'int' или' float' (или любой литерал Python), вы можете использовать ['ast.literal_eval'] (https://docs.python.org/3/library/ast.html#ast. literal_eval), который будет безопасно обрабатывать произвольные литералы Python, не открывая вас для выполнения произвольного кода. – ShadowRanger