Я пишу простую программу, которая импортирует функции из другой программы. Он в основном конвертирует Фаренгейт в Цельсий или наоборот, в зависимости от того, какой вклад вы ему даете. Вот код для основной программы:
def main():
temp = int(input('What is the temperature? '))
print('Is this temperature in fahrenheit or celsius?')
system = int(input('Please put 1 for Fahrenheit and 2 for Celsius: '))
if system == 1:
from tempconvert import celsius
celsius()
elif system == 2:
from tempconvert import fahrenheit
fahrenheit()
else:
print('I dont understand.')
main()
А вот код для программы, из которой импортируются функции:
def fahrenheit(temp):
fahrenheit = temp * 1.8 + 32
print('Your temperature in fahrenheit is ', fahrenheit)
def celsius(temp):
celcius = temp - 32
celsius = celcius / 1.8
print('Your temperature in celsius is ', celsius)
Когда я пойду и сделаю это, мне понадобится температура, которую я ввожу, и она примет различие между градусами Фаренгейта и Цельсия. Но тогда это скажет так:
celsius() missing 1 required positional argument: 'temp'
Я действительно не могу понять это, поэтому любая помощь будет оценена. Благодарю.
3 ответа
Вы забыли передать параметр в celsius
и fahrenheit
функцию. Обновите вашу функцию main()
следующим образом:
def main():
temp = int(input('What is the temperature? '))
print('Is this temperature in fahrenheit or celsius?')
system = int(input('Please put 1 for Fahrenheit and 2 for Celsius: '))
if system == 1:
from tempconvert import celsius
celsius(temp) # pass 'temp' as parameter
elif system == 2:
from tempconvert import fahrenheit
fahrenheit(temp) # pass 'temp' as parameter
else:
print('I dont understand.')
Ваша ошибка - не вводить аргумент в пользу температуры. Пытаться:
celcius(32)
И вы получите 0
В случае вашей программы вы бы сделали:
celcius(temp)
В main()
вы вызываете оба fahrenheit()
и celsius()
без аргумента temp
, но вы определяете эти функции как требующие позиционного аргумента temp
.
Обновите вашу функцию main()
следующим образом (также нет необходимости выполнять условный импорт; просто импортируйте обе функции вверху файла):
from tempconvert import fahrenheit, celsius
def main():
temp = int(input('What is the temperature? '))
print('Is this temperature in fahrenheit or celsius?')
system = int(input('Please put 1 for Fahrenheit and 2 for Celsius: '))
if system == 1:
celsius(temp)
elif system == 2:
fahrenheit(temp)
else:
print('I dont understand.')
Похожие вопросы
Новые вопросы
python
Python - это многопарадигмальный, динамически типизированный, многоцелевой язык программирования. Он разработан для быстрого изучения, понимания и использования, а также для обеспечения чистого и единообразного синтаксиса. Обратите внимание, что Python 2 официально не поддерживается с 01.01.2020. Тем не менее, для вопросов о Python, связанных с версией, добавьте тег [python-2.7] или [python-3.x]. При использовании варианта Python (например, Jython, PyPy) или библиотеки (например, Pandas и NumPy) включите его в теги.