2016-09-23 4 views
0

Я пытаюсь построить код, который дает площадь квадрата и область прямоугольника с той же функцией, но я либо пробегаю по отсутствующей ошибке позиционного аргумента, либо чем-то более экзотичным с тем, что я делаю, и я был ошеломлен потенциальным решений, поскольку я всего лишь базовый уровень кодера python.Как обрабатывать переменное количество параметров для функции?

Самый большой вопрос в том, какой формат должен использовать функция area() для того, чтобы я мог предположить, что y является None, если он не указан.

def area(x, y): 
    return x * x if y is None else x * y #Calculate area for square and rectangle 


def main(): 
    print("Square's area is {:.1f}".format(area(3))) #Square 
    print("Rectangle's area is {:.1f}".format(area(4, 3))) #Rectangle 

main() 

ответ

1

Делают это так:

def area(x, y=None): 
    return x * x if y is None else x * y #Calculate area for square and rectangle 

Давая значение по умолчанию, вы можете передать 1 меньше аргумент, и он будет установлен по умолчанию.

+0

Большое спасибо, что делает. – Grak

Смежные вопросы