Pytania do Pythona

NJ
  • Rejestracja:ponad 10 lat
  • Ostatnio:prawie 7 lat
  • Postów:39
0

Czytałem w dokumentacji na temat string. Nie wiem, czy przeoczyłem, ale można, dlaczego nie można dodawać do stringu dodatkowych znaków? np.

Kopiuj
string = 'string'
string[0] = 'n'
print(s[0])

Dalej, spotkałem się z 'u' przed np. u"""komentarzem""", o co z tym chodzi?
Edit
Czy ktoś byłby w stanie opisać co się po kolei dzieje w tym 'programie'?

Kopiuj
d = {2: ['bee','ala','kota'],
     0: ['tata','mama'],
     1: ['braciszek', 'on', 'siostra']}
print(d[1][-1][1:])
edytowany 2x, ostatnio: Nju
fourfour
  • Rejestracja:prawie 11 lat
  • Ostatnio:prawie 9 lat
  • Postów:627
0
NJ
Napisanie, tak/nie byłoby szybsze. Nie uszczęśliwiaj na siłę... Czytałem, nie zrozumiałe, przychodzę na forum.
n0name_l
  • Rejestracja:ponad 12 lat
  • Ostatnio:ponad 4 lata
  • Postów:2412
0

http://ideone.com/RucDuI

TypeError: 'str' object does not support item assignment

dlaczego nie można dodawać do stringu dodatkowych znaków?

Tworcy tak sobie to zaprojektowali, ze nie mozna modyfikowac stringow 'w miejscu', a wszelkie zmiany powoduja utworzenie nowego, juz zmodyfikowanego obiektu. Tak samo masz na przyklad w Javie.

Dalej, spotkałem się z 'u' przed np. u"""komentarzem""", o co z tym chodzi?

Oznacza to, ze ten string bedzie w unicodzie.

Czy ktoś byłby w stanie opisać co się po kolei dzieje w tym 'programie'?

Kopiuj
d = {2: ['bee','ala','kota'],
     0: ['tata','mama'],
     1: ['braciszek', 'on', 'siostra']}
    
lista__element_ze_slownika_z_kluczem_o_wartosci_jeden = d[1]
napis__ostatni_element_z_listy = lista__element_ze_slownika_z_kluczem_o_wartosci_jeden[-1]
napis_skladajacy_sie_z_wszystkich_poza_pierwsza_litera_napisu_zrodlowego = napis__ostatni_element_z_listy[1:]
print(napis_skladajacy_sie_z_wszystkich_poza_pierwsza_litera_napisu_zrodlowego)
edytowany 1x, ostatnio: n0name_l
NJ
no kolejny geniusz. Wykonałem ten program. Zastanawiam się dlaczego.
n0name_l
To moze bys laskawie zapytal 'dlaczego' a nie 'czy mozna'? Nikt tutaj nie jest wrozka.
NJ
mój błąd źle napisałem, a byłem przekonany, że było 'dlaczego'. Przepraszam :) poprawie
vpiotr
  • Rejestracja:ponad 13 lat
  • Ostatnio:prawie 3 lata
0

@Nju: pytasz o takie podstawy ze dziwie sie ze watek jeszcze nie wyladowal w koszu. I zamiast podziekowac za pomoc "odgryzasz sie".
Wez sie chlopie do nauki i nie zawracaj ludziom gitary.
uruchom debugera lub rozpisz sobie tego klocka
na podwyrazenia i uzyj print.

NJ
jest takie miejsce forum, gdzie ludzie odpowiadają na posty. Można też nie piać nic i forum umiera. Przestań jeździć samochodem, zacznij go rozkręcać, na pewno ci to pomoże w jeździe. Jak nie masz nic do tematu to się nie udzielaj bo to żałosne.
Wizzie
Piotr ma dużo do tematu, bo napisał ci dokładnie w jaki sposób możesz uzyskać odpowiedź na twoje pytanie w kilka minut. Czas jaki upłynął od rozpoczęcia tematu do mojej odpowiedzi to 1,5h + wiele głupich docinek. Widzisz różnicę?
n0name_l
Gdzie ty widzisz te glupie docinki? Bo w tym temacie wszyscy sa akurat wyjatkowo uprzejmi i wyrozumiali.
Wizzie
  • Rejestracja:prawie 11 lat
  • Ostatnio:ponad 7 lat
0
Nju napisał(a):

Czy ktoś byłby w stanie opisać co się po kolei dzieje w tym 'programie'?

Kopiuj
d = {2: ['bee','ala','kota'],
     0: ['tata','mama'],
     1: ['braciszek', 'on', 'siostra']}
print(d[1][-1][1:])

d to słownik, każdy słownik ma klucz i wartość. Kluczami w tym wypadku są odpowiednio 2, 0 oraz 1, a wartościami listy, które przyporządkowałeś tym kluczom (wartością i kluczem może być cokolwiek sobie wymarzysz). Pierwsza część kodu wyjaśniona. Teraz druga.

Jeśli chcesz wyciągnąć wartość klucza 1, to piszesz: d[1], to zwraca całą listę w postaci ['braciszek', 'on', 'siostra']
[-1] oznacza, że wybieramy ostatni (w tym wypadku liczymy od jedynki jako że nie ma takiej liczby jak -0) element naszej listy. Czyli d[1][-1] zwraca nam string 'siostra'.

Ostatni kwadratowy nawias odpowiada za "krojenie" naszego napisu. d[1][-1][1:] zwraca więc string iostra. Warto zwrócić uwagę, że nasze krojenie nie modyfikuje faktycznej wartości w słowniku, lecz zwraca pociachaną kopię.

Mam nadzieję, że wyjaśniłem wszystko łopatologicznie :)

Edit: Staraj się nie rzucać i nie atakować ludzi, którzy starają ci się pomóc; strasznie dziwne podejście z twojej strony :)

edytowany 1x, ostatnio: Wizzie
NJ
nie, no to wiem, że słownik. Problem w tym, że pomimo prób które wykonałem nie mogłem dojść skąd ten wynik, a nie inny.
Wizzie
W takim razie cieszę się, że pomogłem ;)

Zarejestruj się i dołącz do największej społeczności programistów w Polsce.

Otrzymaj wsparcie, dziel się wiedzą i rozwijaj swoje umiejętności z najlepszymi.