Обучение программированию в Python, и я решаю некоторые задачи. Я столкнулся с чем-то, чего еще не изучил, и мне было любопытно, что делает этот код.
Итак, мой вызов называется «FizzBuzz». Инструкции просты:
Создайте функцию, которая принимает число в качестве аргумента и возвращает «Fizz», «Buzz» или «FizzBuzz».
Если число является кратным из 3 выход должен быть "Fizz". Если данное число кратно 5, вывод должен быть "Buzz". Если данное число кратно 3 и 5, вывод должен быть «FizzBuzz». Если число не кратно 3 или 5, число должно быть выведено само по себе.
Я написал этот код для его решения (очевидно, он может быть лучше):
def fizz_buzz(num):
if num % 3 == 0 and num % 5 == 0:
return 'FizzBuzz'
elif num % 3 == 0:
return 'Fizz'
elif num % 5 == 0:
return 'Buzz'
else:
return str(num)
Но, как только я представил свое решение, я смог увидеть лучшее решение, а именно:
def fizz_buzz(num):
return "Fizz"*(num%3==0) + "Buzz"*(num%5==0) or str(num)
Мой вопрос: что здесь делает *? Может ли кто-нибудь указать мне на документацию или ресурсы, которые касаются того, что сделал этот личный код? Я не нахожу это супер читабельным, но это, видимо, лучшее решение проблемы.