Я бы не стал так сильно беспокоиться о том, что Pythoni c или нет. Но вот еще один способ, которым вы могли бы сделать это, который не ограничивает вас списками или целочисленными значениями, а проверяет, есть ли у вас итерация или нет:
def func(input):
if not hasattr(input, '__iter__'):
input = [input]
for i in input:
print(i)
Но другой потенциально более чистый вариант для рассмотрения может быть следующим :
def func(*inputs):
for i in inputs:
print(i)
Вы бы назвали эту функцию немного по-другому: func(5)
для скаляров и func(*lst)
для итераций.