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

anagram w pythonie

Aruba Cloud VPS - 50% taniej przez 3 miesiące!
0 głosów
2,083 wizyt
pytanie zadane 24 lutego 2018 w Python przez jasmen11 Nowicjusz (240 p.)

Witam mam problem, chce napisać program który po wprowadzeniu danego słowa, wypisuje na ekran dokładnie odwrotność jego (anagram). Nie wiem gdzie robię błąd.

# Zwariowany łańcuch
# Demonstruje użycie pętli for z łańcuchem znaków
word = input("Wprowadź jakieś słowo: ")

print("\nOto poszczególne litery Twojego słowa:")

print("Dlugosc wyrazu: ",len(word))
dlugosc=len(word)
for letter in ( dlugosc, dlugosc>=0, -1 ):
    print(letter)

input("\n\nAby zakończyć program,naciśnij klawisz Enter.")

 

 

komentarz 24 lutego 2018 przez Lisu Początkujący (270 p.)

Jeżeli chcesz użyć pętli, to musisz ją zmienić na np:

for letter in range( dlugosc, 0, -1 ):
    print(word[letter-1])

3 odpowiedzi

+6 głosów
odpowiedź 24 lutego 2018 przez mokrowski Mędrzec (156,480 p.)
wybrane 24 lutego 2018 przez jasmen11
 
Najlepsza
word = "arbuz"
print(word[::-1])

W uzupełnieniu do bardziej skomplikowanych :-)

komentarz 24 lutego 2018 przez jasmen11 Nowicjusz (240 p.)
jezuuuuu, na prawdę? Tylko te dwie linijeczki ???
Ehhhhh

muszę jeszcze raz doczytać rozdział o pętli for.......

brrrr ale właśnie, tutaj nie użyłeś żadnej pętli?
komentarz 24 lutego 2018 przez mokrowski Mędrzec (156,480 p.)
Użyłem wyrażenia zakresu czyli slice. Format prosty:

[begin:end:step]

Jeśli nie podasz danego elementu tylko część pustą,

begin == początek czyli indeks 0

end == koniec czyli indeks tuż za ostatnim elementem

step == co który element zwracać.

Pobaw się trochę tymi wartościami na dłuższym słowie a zrozumiesz jak to działa. Podstawiaj także wartości ujemne :-)
komentarz 11 marca 2018 przez jasmen11 Nowicjusz (240 p.)
czy to są tak zwany "krotki"?
komentarz 11 marca 2018 przez mokrowski Mędrzec (156,480 p.)
Nie. Krotki często nazywane rekordami to inaczej ang. tuple. Ja użyłem ang. slice czyli zakres lub wyrażenie zakresowe.
0 głosów
odpowiedź 24 lutego 2018 przez adrian17 Mentor (351,140 p.)
edycja 24 lutego 2018 przez adrian17

dokładnie odwrotność jego (anagram)

(tak się składa że odwrotność jest anagramem, ale raczej nie ten termin miałeś na myśli)

for letter in ( dlugosc, dlugosc>=0, -1 ):

Um... zupełnie tak się tego nie robi w Pythonie. To wygląda, jakbyś próbował napisać pętlę w stylu C, której nie ma w Pythonie. Nie wiem co więcej powiedzieć. Radzę po prostu ponownie przeczytać rozdział o pętlach i indeksowaniu stringów, cokolwiek teraz czytasz.

komentarz 24 lutego 2018 przez Aisekai Nałogowiec (42,190 p.)
Odwrotność słowa (lub zdanie) to palindrom. Anagram to słowo (lub zdanie) które powstało w wyniku wykorzystania wszystkich liter/sylab innego słowa.
komentarz 24 lutego 2018 przez mokrowski Mędrzec (156,480 p.)
komentarz 24 lutego 2018 przez Aisekai Nałogowiec (42,190 p.)
nvm, teraz jak przeczytałem jeszcze raz post zrozumiałem co Pan Adrian miał na myśli. Zgadzam się, że palindrom jest anagramem.
0 głosów
odpowiedź 24 lutego 2018 przez Benek Szeryf (92,970 p.)

Źle stworzyłeś pętlę for:

rev = ""

for i in range(dlugosc-1, -1, -1):
    rev += word[i]

Ja jednak zrobił to jeszcze inaczej:

L = [letter for letter in word]
L.reverse()
rev = ''.join(L)

Ponieważ to rozwiązanie jest szybsze. Czasy, które otrzymałem:

Moje:  1.65 µs ± 2.89 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)
Twoje: 1.34 µs ± 8.1 ns per loop (mean ± std. dev. of 7 runs, 1000000 loops each)

 

Podobne pytania

0 głosów
2 odpowiedzi 909 wizyt
pytanie zadane 10 lutego 2018 w Python przez ayo1001 Obywatel (1,890 p.)
0 głosów
1 odpowiedź 556 wizyt
pytanie zadane 14 września 2021 w Python przez Gowi Użytkownik (830 p.)
0 głosów
2 odpowiedzi 293 wizyt
pytanie zadane 7 października 2020 w Python przez Dawid Popławski Nowicjusz (160 p.)

93,187 zapytań

142,203 odpowiedzi

322,024 komentarzy

62,515 pasjonatów

Advent of Code 2024

Top 15 użytkowników

  1. 2581p. - dia-Chann
  2. 2537p. - Łukasz Piwowar
  3. 2528p. - Łukasz Eckert
  4. 2514p. - CC PL
  5. 2476p. - Tomasz Bielak
  6. 2445p. - Łukasz Siedlecki
  7. 2443p. - rucin93
  8. 2310p. - Michal Drewniak
  9. 2156p. - Marcin Putra
  10. 2152p. - Adrian Wieprzkowicz
  11. 2105p. - Mikbac
  12. 2048p. - Anonim 3619784
  13. 1733p. - rafalszastok
  14. 1701p. - Michał Telesz
  15. 1580p. - ssynowiec
Szczegóły i pełne wyniki

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

Wprowadzenie do ITsec, tom 1 Wprowadzenie do ITsec, tom 2

Można już zamawiać dwa tomy książek o ITsec pt. "Wprowadzenie do bezpieczeństwa IT" - mamy dla Was kod: pasja (użyjcie go w koszyku), dzięki któremu uzyskamy aż 15% zniżki! Dziękujemy ekipie Sekuraka za fajny rabat dla naszej Społeczności!

...