• Najnowsze pytania
  • Bez odpowiedzi
  • Zadaj pytanie
  • Kategorie
  • Tagi
  • Zdobyte punkty
  • Ekipa ninja
  • IRC
  • FAQ
  • Regulamin
  • Książki warte uwagi

Python odwrotna kolejność cyfr

Object Storage Arubacloud
0 głosów
4,986 wizyt
pytanie zadane 22 marca 2016 w Python przez Lukasz95 Bywalec (2,160 p.)

Cześć mam problem, jestem nowym programistą pythona i chciałem napisać program który zamienia cyfry w liczbie na odwrót.  np. 123 -> 321
Ale mam pewne problemy ,chyba ze składnią. 

a=input("xxx")
x=a
while a:
    x=a%10
    a=a/10
    print(x)

 

3 odpowiedzi

+2 głosów
odpowiedź 22 marca 2016 przez Bantu Nałogowiec (34,170 p.)
wybrane 23 marca 2016 przez Lukasz95
 
Najlepsza
Najprościej to chyba zrobić tak, że zmieniasz liczbę na stringa, na stringu robisz reverse (reverse na stringu można zrobić tak: [::-1]). Teraz gdy chcesz operować dalej na liczbie to robisz powrotne rzutowanie. Jeżeli liczbe chcesz rozdzielić na same cyfry to robisz jakiegoś splita i rozdzielasz. Może nie jest najwydajniejsze rozwiązanie, ale najprostsze według mnie.

http://stackoverflow.com/a/13059602
+2 głosów
odpowiedź 22 marca 2016 przez Benek Szeryf (91,110 p.)

Proszę:

x = raw_input("Put a number: ")
l = list(str(x))
l.reverse()
x = int(''.join(l))
print x
–2 głosów
odpowiedź 15 sierpnia 2019 przez adambalski1 Obywatel (1,010 p.)
edycja 26 grudnia 2022 przez adambalski1

Myślę, że o wiele szybszym rozwiązaniem od tych bazujących na stringach byłoby zrobienie czegoś takiego.

def reverseInteger(x):
    res = 0

    while(x != 0):
        res = 10 * res + x % 10
        x //= 10

    return res

Wiem, że problem jest stary, ale może pomoże nowym osobom.

komentarz 26 grudnia 2022 przez Kwadrat Nowicjusz (100 p.)
Oguem Panie Majorze Suchodolski to

def reverseInteger(x):

    res = 0

    while(x != 0):

        res = 10 * res + x % 10

        x /= 10

    return res

teraz jest dobrze, zamieniłem jedno res na x bo miałeś źle i nie działało całe te i oguem to teraz działa  a nie jakieś niewiado mo co
Oguem
komentarz 26 grudnia 2022 przez adambalski1 Obywatel (1,010 p.)
Zgadza się, dzięki za poprawę. Sprawdziłem też resztę i jeszcze trzeba dodać jedną poprawkę: zaminić dzielenie z przypisaniem na dzielenie z usunięciem części po przecinku i przypisaniem (zamiana "x /= 10" na "x //= 10"). Wprowadziłem już poprawki do odpowiedzi.

Podobne pytania

0 głosów
2 odpowiedzi 150 wizyt
pytanie zadane 30 listopada 2023 w C i C++ przez maxkolanko1998 Gaduła (3,230 p.)
0 głosów
4 odpowiedzi 28,063 wizyt
pytanie zadane 3 września 2015 w C i C++ przez karmar435 Nowicjusz (240 p.)
0 głosów
1 odpowiedź 360 wizyt
pytanie zadane 9 września 2019 w PHP przez Kamil Czech Dyskutant (7,700 p.)

92,634 zapytań

141,505 odpowiedzi

319,883 komentarzy

62,015 pasjonatów

Motyw:

Akcja Pajacyk

Pajacyk od wielu lat dożywia dzieci. Pomóż klikając w zielony brzuszek na stronie. Dziękujemy! ♡

Oto polecana książka warta uwagi.
Pełną listę książek znajdziesz tutaj.

Akademia Sekuraka

Kolejna edycja największej imprezy hakerskiej w Polsce, czyli Mega Sekurak Hacking Party odbędzie się już 20 maja 2024r. Z tej okazji mamy dla Was kod: pasjamshp - jeżeli wpiszecie go w koszyku, to wówczas otrzymacie 40% zniżki na bilet w wersji standard!

Więcej informacji na temat imprezy znajdziecie tutaj. Dziękujemy ekipie Sekuraka za taką fajną zniżkę dla wszystkich Pasjonatów!

Akademia Sekuraka

Niedawno wystartował dodruk tej świetnej, rozchwytywanej książki (około 940 stron). Mamy dla Was kod: pasja (wpiszcie go w koszyku), dzięki któremu otrzymujemy 10% zniżki - dziękujemy zaprzyjaźnionej ekipie Sekuraka za taki bonus dla Pasjonatów! Książka to pierwszy tom z serii o ITsec, który łagodnie wprowadzi w świat bezpieczeństwa IT każdą osobę - warto, polecamy!

...