Taka mała zagadka w Python 3:
def Sprawdz(num: int) -> bool:
return any (n + int(str(n)[::-1]) == num for n in range(num + 1))
…no i czy to jest przykład dobrego programowania?
created
last reply
- 5
replies
- 340
views
- 2
users
- 3
likes
Taka mała zagadka w Python 3:
def Sprawdz(num: int) -> bool:
return any (n + int(str(n)[::-1]) == num for n in range(num + 1))
…no i czy to jest przykład dobrego programowania?
Czy to jest dobre programowanie, to nie wiem, ale co mógłbym zasugerować:
def Sprawdz2(num):
return any(n for n in range(num + 1) if (n + int(str(n)[::-1]) == num))
Jeśli chcesz tylko sprawdzić, czy istnieje taka liczba, to użyj next():
def Sprawdz3(num):
return next((1 for n in range(num + 1) if (n + int(str(n)[::-1]) == num)), 0)
Zgadza się. Dzięki.
Sprawdz2 faktycznie inaczej tworzy wynik ale nie umiem tego podejrzeć (“generator object”).
Sprawdz3 fajny pomysł…i można nawet zwracać wartość n po drobnej modyfikacji
return next((n for n in range(num + 1) if (n + int(str(n)[::-1]) == num)), 0)
tzn. pierwszą z tych wartości n co spełniają warunek.