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

Pytanie o funkcje - poprawność pisownk

Object Storage Arubacloud
0 głosów
137 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 (252,660 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 136 wizyt
pytanie zadane 2 września 2020 w Python przez Damian2102 Nowicjusz (150 p.)
0 głosów
0 odpowiedzi 270 wizyt
pytanie zadane 21 grudnia 2020 w Python przez ifuknowme555 Początkujący (410 p.)
0 głosów
1 odpowiedź 180 wizyt
pytanie zadane 25 kwietnia 2018 w Python przez Piotr Jasiński Bywalec (2,120 p.)

92,548 zapytań

141,391 odpowiedzi

319,511 komentarzy

61,932 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!

...