Jak zmienić pasek za pomocą list python

0

Pytanie

Znalazłem ten fragment kodu związanego z wydania o zmianie wierszy w pythonie, ale czy może ktoś, proszę, interpretować go na prostym języku angielskim? Proszę zwrócić uwagę, że nadal jestem początkujący w pythonie i dopiero wczoraj nauczył się korzystać z pętli i funkcji while :/ dlatego ja sam nie mogę wyrazić to słowami, bo moje zrozumienie nie jest jeszcze do końca osiągnięty.

w każdym razie, oto kod:

def reverse_string(string):
    new_strings = [] 
    index = len(string) 
    while index:  
        index -= 1                       
        new_strings.append(string[index]) 
    return ''.join(new_strings) 

print(reverse_string('hello'))
list python string
2021-11-24 04:07:22
3

Najlepsza odpowiedź

4

Oczywiście, wiedząc, co robi, można rozwikłać kod. W while zawias, to index wartość zaczyna się od końca linii i jest liczony do 0. Na każdym kroku dodaje ten symbol (znowu, począwszy od końca) na koniec listy, które on tworzy. W końcu, on łączy w sobie listy w wierszu.

Tak więc, biorąc pod uwagę "abcd", lista powstaje:

'abcd'  #3 -> ['d']
'abcd'  #2 -> ['d','c']
'abcd'  #1 -> ['d','c','b']
'abcd'  #0 -> ['d','c','b','a']
2021-11-24 04:10:52
1

Cóż, w zasadzie, zobacz długość ciągu znaków za pomocą len metoda. Który zwróci ci wartość całkowitą, która reprezentuje długości tej linii.

Następnie używają długości tej linii i skutecznie wykonują iteracji do zera while zawias. Za pomocą -= operator.

Każda iteracja (czyli za każdym razem w cyklu) będzie zmniejszać długość, dopóki nie osiągnie zera.

Warto więc korzystać hello jako przykład wpisz i przejść przez to razem.

reverse_string('hello') to jest to, jak nazwalibyśmy metoda, wykonany w print podsumowanie twojego kodu.

Następnie wprowadzamy funkcję i wykonujemy następujące czynności:

  1. Tworzymy nową pustą tablicę o nazwie new_strings.
  2. Znajdujemy długość pierwszego wiersza hello co zwraca nam 5. Oznacza to, że teraz index jest równa 5.
  3. Tworzymy pętlę while, która trwa do momentu, aż index już nie używa while(index): - pętla while, podobny do tego, odnosi się do 0 wartość jak falsy i zatrzyma się po osiągnięciu tego. Dlatego, gdy index jest 0 cykl zatrzyma się.
  4. Pierwszy wiersz tego cyklu wykonuje index -= 1 że to samo, co pisać index = index - 1 tak więc, pierwszy cykl, przez który przechodzimy, otrzymujemy index = 5 - 1 a potem, teraz index tak 4.
  5. Ponieważ Python następnie pozwala nam uzyskać dostęp do character wiersze z wykorzystaniem string[index] (i dlatego, że to działa z 0 -> n) wykonanie hello[4] w rzeczywistości da nam charakter o.
  6. Dodajemy także symbol ten w tablicy new_strings oznacza to, że w miarę jak przechodzimy do iteracji, aby osiągnąć zera, będzie dodawać każdy znak w przeciwnym kierunku w ta tablica, daje nam ['o', 'l', 'l', 'e', 'h']
  7. Ponieważ indeks jest teraz równa zero, wychodzimy z pętli i wykonujemy join operacja nad tablicą do ponownego tworzenia wiersza. Zespół ''.join(new_strings) oznacza to, że chcemy dołączyć do tablicy, który był u nas wcześniej, bez separatora. Jeśli zrobiliśmy '#'.join(new_strings) zamiast tego byśmy otrzymali o#l#l#e#h zamiast olleh.

Mam nadzieję, że ta odpowiedź daje pewną jasność.

2021-11-24 04:20:49

ach, to wyjaśnia moje pytania na temat ostatniej linijki, które chciałem zadać. Dzięki za wyjaśnienie :)
user17415509

W ogóle żadnych zmartwień. Cieszę się, że mogłem ci pomóc. Jednak Tim Roberts praw; wiele z tych rzeczy można zrozumieć, po zapoznaniu się podstawowe zasady. Proponuję, aby za każdym razem, kiedy wpadają na kod, którego nie rozumiesz, spróbuj poszukać językowej dokumentacji dla metody/operatora. Nawet jeśli nie rozumiesz tego od samego początku, wciągająca do tego i próba zrozumienia to bardzo dobrze posłużą ci w przyszłości.
Johan Jarvi

Jako przykład dokumentacja str.join (), która jest częścią dokumentacji z wbudowanym typów Pythona, może okazać się bardzo przydatne później, ale mogę zrozumieć, jak to będzie wyglądać wspaniały i mylące w tej chwili, ale bardzo dobrze przyzwyczaić się znajdować te zasoby i nauczyć się je interpretować.
Johan Jarvi
0

Oczywiście, jest to bardzo prosty program. Należy dokonać przeglądu ciągów metody i indeksowanie wierszy w języku python, aby uzyskać jasny obraz. Pozwól mi wyjaśnić to w deatial.

print(reverse_string('witaj'))//Funkcja drukowania powoduje inną funkcję reverse_string i przekazuje argument"cześć".

def reverse_string(ciąg znaków):// Argument "cześć" jest przechowywany w zmiennej string w funkcji reverse_string.

**new_strings = []** // created a new empty list
**index = len(string)** // len function returns the length of the argument 
                           passed to the function. len("hello")=5 and assigned 
                           to index. index=5.

podczas gdy indeks: // podczas gdy cykl trwa do momentu, gdy warunek stanie się fałszywy .W tym przykład, gdy indeks =0.in wiersz indeksowanie zaczyna się od 0 . Na przykład. wiersz[0]=h,wiersz[1]=e,wiersz[2]=l,wiersz[3]=l,wiersz[4]=o.

    **index -= 1**  //Note the last letter 'o' is in string[4] and the len 
                      function returned 5 so we need to decrement index variable 
                      to 4 so that it will pointing to string[4]=o                     
  

new_strings.dodaj(wiersz[indeks]) // dodaj wiersz[4], która jest o i tak dalej ... zwrot ".dołącz(nowe wiersze)

2021-11-24 05:28:44

W innych językach

Ta strona jest w innych językach

Русский
..................................................................................................................
Italiano
..................................................................................................................
Română
..................................................................................................................
한국어
..................................................................................................................
हिन्दी
..................................................................................................................
Français
..................................................................................................................
Türk
..................................................................................................................
Česk
..................................................................................................................
Português
..................................................................................................................
ไทย
..................................................................................................................
中文
..................................................................................................................
Español
..................................................................................................................
Slovenský
..................................................................................................................