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

Pytanie o funkcje - poprawność pisownk

Mały hosting, OGROMNE możliwości
0 głosów
253 wizyt
pytanie zadane 14 września 2022 w Python przez ToMojNick Nowicjusz (120 p.)
Cześć. Zacząłem naukę Pythona 3 tygodnie temu i mam problem z pewną funkcja. Mianowicie zadanie brzmi:

Napisz dwie proste funkcje gdzie jedna zwraca pierwsza litere w łańcuchu a druga - ostatnia.

No więc napisałem;

def ostatnia_litera(napis):

 return[-1]

def pierwsza_litera(napis):

return [-0]

Print ("Pierwsza litera to:",pierwsza_litera('Piotr)'

Print ("ostatnia litera to:", ostatnia_litera('Piotr)'

I fajnie mi zrobiło. Jednakże patrząc na rozwiązanie w odpowiedziach, kod jest praktycznie taki sam, tylko jest jedna zmiana:

Mianowicie w definicji z ostatnia_litera było napisane:

return napis[len(napis)-1]

Wynik daje ten sam co mi.

Czy jednak robię coś źle? Czy jest konieczność, bym faktycznie zamieniał mój "napis" na listę? Jeśli tak, to dlaczego nie muszę tego robić później, szukając pierwszej litery? Czy jedna i druga jest poprawna? Proszę o pomoc :)

1 odpowiedź

+1 głos
odpowiedź 14 września 2022 przez VBService Ekspert (256,580 p.)
edycja 14 września 2022 przez VBService

W pewnym sensie tekst (string) w python-ie jest traktowany jako lista znaków, dlatego do poszczególnych zanków można się "dostać" za pomocą indeksu, położenia litery w tekście licząc dla pierwszej litery od 0 (zero) do ostatniej n-1*

 

napis = 'Lorem' 
   
print(napis[-1])

# jest równoznaczny

print(napis[len(napis)-1])

jak i

napis = 'Lorem' 
   
print(napis[0])

# jest równoznaczny

print(napis[-len(napis)])

 

ujemna wartość indeksu powoduje "liczenie" pozycji litery od końca tekstu.

 

napis = 'Lorem'
    
print(napis[-1]) 
print(napis[len(napis)-1])
print(napis[-1:])

print()

print(napis[0])
print(napis[-len(napis)])
print(napis[:1])

 

* n - długość tekstu

1
komentarz 14 września 2022 przez ToMojNick Nowicjusz (120 p.)
Aha, super, dziękuję bardzo. Super wytłumaczone.

Podobne pytania

0 głosów
0 odpowiedzi 357 wizyt
pytanie zadane 2 września 2020 w Python przez Damian2102 Nowicjusz (150 p.)
0 głosów
0 odpowiedzi 352 wizyt
pytanie zadane 21 grudnia 2020 w Python przez ifuknowme555 Początkujący (410 p.)
0 głosów
1 odpowiedź 275 wizyt
pytanie zadane 25 kwietnia 2018 w Python przez Piotr Jasiński Bywalec (2,120 p.)

93,715 zapytań

142,629 odpowiedzi

323,261 komentarzy

63,258 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

Twierdza Linux. Bezpieczeństwo dla dociekliwych

Aby uzyskać rabat -10%, użyjcie kodu pasja-linux, wpisując go w specjalne pole w koszyku.

...