maverickreal Ответов: 1

В чем разница между 2 кодами из следующих ссылок?


https://code.sololearn.com/cnqkkc7wuCRy/?ref=app
и
https://code.sololearn.com/c802fPXTx057/?ref=app
Отличаются ли эти 2 программы ?
Если да, то почему ?
Какой из них лучше ?

Что я уже пробовал:

def largest(a,b,c):
	if a>b and a>c:
		print(a)
	if b>a and b>c:
		print(b)
	else:
		print(c)
largest(1,4,7)

```
def max_of_three(a,b,c):
     max_3=0
     if a>b:
         #max_3=a
         if a>c:
             max_3=c
         else:
             max_3=a
     else:
          if b>c:
             max_3=b
          else:
             max_3=c
     return max_3
print(max_of_three(1,4,7))

Richard MacCutchan

Первый вариант имеет наибольший смысл.

maverickreal

а ну понятно. Спасибо.

Richard MacCutchan

Если вы посмотрите внимательно, то во втором тоже есть ошибка, так как он возвращает значение c для вызова, где a больше, чем b и c.

maverickreal

Да что я знал. 👍🏽

1 Ответов

Рейтинг:
12

OriginalGriff

У обоих есть хорошие и плохие черты:
Первое более очевидно и читаемо, но второе более гибко.
Лучшим решением было бы использовать логику первого примера, но возвращать значение вместо того, чтобы печатать его внутри функции.

Таким образом, вы получаете читабельность и гибкость, потому что одна и та же функция может быть использована из большего количества мест:

def largest(a,b,c):
	if a>b and a>c:
		return a
	if b>a and b>c:
		return b
	return c
print(largest(1,4,7))