Najczęstsze błędy przy przetwarzaniu napisów
Typowe błędy przy przetwarzaniu napisów
1. Mylenie indeksów i błędne zakresy
używanie indeksu o 1 za dużego lub za małego,
zapominanie, że indeksowanie zaczyna się od 0,
wychodzenie poza zakres (zapominanie, że ostatni znak ma index o jeden mniejszy niż długość tekstu).
2. Niepoprawne użycie wycinków (slicing)
próby modyfikowania pojedynczego znaku przez
text[i] = 'a'(napisy są niemodyfikowalne!),zapominanie, że
text[a:b]nie zawiera indeksu b.
3. Używanie == zamiast in
np.
if tekst == "a":zamiastif "a" in in tekst:albo odwrotnie:
if slowo in tekst == slowo.
4. Brak uwzględnienia wielkości liter
“Python" != “python"brak stosowania metod typu
.lower()lub.upper()przy porównaniach.
5. Nadmierne poleganie na split() bez kontroli danych
zapominanie, że
split()bez argumentu usuwa dowolną liczbę spacji,a
split(" ")dzieli tylko po JEDNEJ spacji.
6. Niezauważanie znaków specjalnych w tekście
niezliczanie
\n,\t, spacji podwójnych, znaków końca linii,niekorzystanie z metody split() dla usunięcia znaku końca wiersza.
7. Używanie pętli tam, gdzie wystarczy jedna metoda
Stosowanie kodu:
Zamiast:
8. Próby konwersji całego napisu na liczbę (błąd ValueError)
np.
int("12a"),zapominanie, że tekst może zawierać inne znaki niż cyfry.
9. Modyfikowanie napisu bez przypisania wyniku
Ponieważ stringi są niemodyfikowalne:
tekst.replace("a", "b")
nic nie zmieni, jeśli nie zapiszemy:
tekst = tekst.replace("a", "b")
10. Zła obsługa indeksów ujemnych
nieświadomość, że
tekst[-1]to ostatni znak,błędne używanie ujemnych indeksów w wycinkach.