Uploaded by paxihaf845

Python

advertisement
Instalowanie Pythona
Podstawowym sposobem zainstalowania Pythona na komputerze jest odwiedzenie oficjalnej
strony Python www.python.org i pobieranie odpowiedniej wersji. Instalacja może być sprawdzona
w wierszu poleceń w Windows, wpisujemy: python - -version.
Napiszmy pierwszy kod Python za pomocą wiersza poleceń
W konsoli wpisujemy python, aby wystartować z możliwością pisania kodu i wpisujemy
następujący kod:
Print ('Hello World')
i naciśnij enter.
Właśnie napisaliśmy nasz pierwszy program w języku Python, wyświetlając komunikat za pomocą
Funkcji drukowania w języku Python.
Oczywiście do pisania większych programów użyjemy środowiska IDE. Preferowanym
rozszerzeniem plików Python jest „.py”, np. Hello_world.py i można go uruchomić z konsoli,
wpisując pełną ścieżkę do pliku w oknie poleceń.
Na przykład, jeśli zapisaliśmy nasz program Hello_world na pulpicie. Ścieżka do pliku może być:
C: \ Users \ nazwa_komputera \ Desktop \ Hello_World.py. Aby uruchomić nasz program:
Po prostu otwórz okno poleceń i wpisz „ścieżkę do pliku”.
Można pisać skrypty Pythona za pomocą notatnika: utwórz plik tekstowy notatnika >> Po otwarciu
wpisz swój kod Python w pliku >> Zapisz jako >> wybierz lokalizację zapisu swojego kodu >> W
„Nazwa pliku”, nazwij plik z rozszerzeniem „.py”, np. program.py i Zapisz.
Możesz także przeciągać i upuszczać ten plik do okna poleceń i uruchomiać go, naciskając enter.
Ćwiczenie: spróbuj napisać programy do wyświetlania tekstu przy użyciu funkcji
drukowania opisane w powyższym przykładzie.
Anaconda Navigator
Jest to graficzny interfejs użytkownika do uruchamiania Pythona i jest on specjalnie
zoptymalizowany do data science za pomocą Pythona. Ułatwia on zarządzanie pakietami i
bibliotekami Python dla data science. Jest to część dystrybucji Anaconda, która jest dostarczana
z wersją Pythona (najnowsza Anaconda - Python 3.7, maj 2019), tj. Jeśli nie masz
zainstalowanego Pythona, Anaconda zainstaluje wersję Pythona na komputerze.
Najważniejszą zaletą korzystania z anakondy są funkcje „kliknij, aby uruchomić” oferuje ona
uruchomienie dowolnego pakietu zainstalowanego na jej ścieżce dostępu. Łatwe jest również
tworzenie wirtualnych środowisk do instalowania i uruchamiania różnych wersji Python i innych
programów do analizy danych, takich jak „R”. Środowiska wirtualne to ścieżki (lub foldery)
specyficzne dla niektórych aplikacji lub pakietów w systemie operacyjnym.
Anaconda jest również wyposażona w interaktywne IDE (zintegrowane środowisko
programowania) do uruchamiania kodu w języku Python. Spyder IDE, wykorzystuje interfejs
konsoli i skryptu; notatnik Jupyter, który uruchamia interaktywną konsolę Python i graficzny
interfejs użytkownika w przeglądarce; Jupyter Lab itp. Będziemy używać notatnika Jupyter do
programowania w języku Python.
Aby zainstalować anaconda navigator, przejdź do strony www.anaconda.com/downloads i
pobierz najnowszą wersję dystrybucji anakondy.
Otwórz notatnik Jupyter, klikając przycisk Uruchom-Launch za pomocą nawigatora anakonda,
lub otwórz konsolę anakondy i wpisz: Jupyter notebook. Po otwarciu Jupytera kliknij New >>, a
następnie, kliknij python 3 / python [default].
Otworzy się edytor Python, w którym możemy pisać i wykonywać kod w czasie rzeczywistym.
Pliki Jupyter notebook są zapisywane jako „. ipynb ” i można uzyskać do nich dostęp / otworzyć przeglądając
lokalizację plików za pomocą strony eksploratora Jupyter Notebook. Jupyter obsługuje także Markdown i
inne funkcje kodowania na żywo, które to umożliwiają łatwe adnotowanie kod.
Instrukcje, polecenia i wyrażenia
Języki programowania wysokiego poziomu nie różnią się tak bardzo od języka ludzkiego. Kierują
się określonym wzorem i zasadą. Gdy ta reguła zostanie pominięta, daje błąd. W języku nazywa
się to błędem gramatycznym; w programowaniu nazywa się to błędem składni.
Znakiem # oznaczamy komentarz – ta linia jest pomijana. Komentarze mają ilustrować kod i
poprawiać jego czytelność. Korzystanie z Jupyter oferuje również więcej opcji ulepszania
czytelności kodu. Ponieważ korzysta on z frameworka internetowego, obsługuje „markdown”
(który jest sposobem formatowania tekstów na stronach internetowych).
Typy danych Python
Typy danych determinują atrybuty elementów wyrażenia zadeklarowane przez programistę.
Python, podobnie jak każdy inny język programowania, posiada szczególne typy danych:
Liczby (tj. int, float, zespolone itp.)
String
Listy
Krotki-Tuples
Słowniki
Booleany
Formatowanie print
Liczby
Liczby są reprezentowane w Pythonie jako liczby całkowite, zmiennoprzecinkowe lub liczby
zespolone.
Liczby całkowite
- int ()
Możemy wykonywać operacje arytmetyczne na liczbach całkowitych bezpośrednio z ścieżki (lub w
notatniku Jupyter).
Operacje arytmetyczne z Pythonem:
Wejście: ​5 + 10
Wyjście: ​15
Wejście: ​ 20–12
Wyjście: ​ 8
Wejście: ​ 3 * 5
Wyjście: ​ 15
Wejście: ​ 20/5
Wyjście: ​ 4.0
Dodawanie, odejmowanie i mnożenie liczb całkowitych z inną liczbą całkowitą daje liczbę całkowitą.
Wynikiem dzielenia jest liczba zmiennoprzecinkowa. Kolejność działań jest następująca: wyrażenia w nawiasie, potęgowanie, dzielenie, mnożenie, dodawanie, odejmowanie. Istnieją też
inne operacje arytmetyczne na liczbach całkowitych.
Ilustruje to poniższy kod:
Wejście: # Ten kod próbuje określić operacje porządkowe za pomocą liczb całkowitych
(7-2 * 2) ** 3 / (12-3 ** 2)
Wyjście: 9.0
** jest znakiem potęgowania w Pythonie (niektóre inne języki pozwalają na użycie „^”).
Ćwiczenie: Wypróbuj kilka innych operacji arytmetycznych na liczbach całkowitych. Pamiętaj, aby
przestrzegać kolejności operacji arytmetycznych, aby uniknąć błędów.
Początkowo istniało ograniczenie liczby znaków dopuszczalnych dla typu int (), ale zostało
zniesione w nowych wersjach Pythona. Teraz możemy zadeklarować typ całkowity z dowolną liczbą
znaków numerycznych (oczywiście mamy limit pamięci komputera!). Python konwertuje liczby
całkowite na dziesiętne, a następnie wykonuje operację arytmetyczną.
Zakładając, że musimy pomnożyć 52 przez 158. 5 w podstawie 2 to „101”, a 15 w podstawie 8 to
„17”
Wejście: # Ten kod mnoży liczby całkowite w różnych podstawach i wyświetla ekwiwalent dziesiętny
# aby podać 101 w podstawie 2, używamy 0b101
# aby określić 17 w podstawie 8, używamy 0o17
0b101 * 0o17
Wyjście: 75
Float
Liczby zmiennoprzecinkowe - liczby rzeczywiste zdefiniowane w matematyce. Wszystkie operacje
numeryczne, które są możliwe przy użyciu liczb całkowitych, mogą być również używane z liczbami
zmiennoprzecinkowymi.
Python 3 obsługuje operacje zmiennoprzecinkowe w prosty sposób. W Python 2 podczas dzielenia
przynajmniej jedna z liczb (zwykle dzielnik) zawsze musi być reprezentowany jako liczba
zmiennoprzecinkowa, aby uniknąć błędu obcięcia w wyniku.
Liczby całkowite mają nieograniczoną reprezentację w Pythonie, natomiast już nie. Maksymalna
wartość, jaką może przyjąć liczba zmiennoprzecinkowa, jest mniejsza niż 1,8e308 (czyli uważana
za nieskończoność w Pythonie).
Wejście: 1,8e308
Wejście inf
Na drugim końcu są liczby zmiennoprzecinkowe - mają minimalną wartość 1e-325 która jest
uważana za zero.
Wejście: 1e-325
Wejście 0,0
Liczby zespolone
Liczby zespolone w Pythonie są reprezentowane przez ich rzeczywiste i urojone części, i
wszystkie reguły operacji matematycznych, które mają zastosowanie do liczb całkowitych i liczb
zmiennoprzecinkowych.W Pythonie liczby zespolone są reprezentowane jako
{real} + {imaginary} j.
Przykład: napisz program do obliczania iloczynu 5 + 3i i 2 + 4i (5 + 3j i 2 + 4j lub 5 + j3 i 2 + j4)
We: # Ten program oblicza iloczyn liczb zespolonych
(5 + 3j) * (2 + 4j)
Wy: (-2 + 26j)
String
Jest to przedstawienie znaków tekstowych w języku programowania. W Python, ciągi znaków są
podawane między znakami cudzysłowu, pojedynczymi, podwójnymi lub potrójnymi. Przykład:
Spróbujmy utworzyć ciągi znaków z pojedynczym, podwójnym i trzema cudzysłowami. Możesz
zauważyć, że Python wyświetla te same wyniki.
We: 'Michael Foster'
Wy: 'Michael Foster'
We: ”David Beckham”
Wy: 'David Beckham'
We: ”””Guillermo Giovani”””
Wy: 'Guillermo Giovani'
Dlaczego nie trzymać się jednej konwencji? Odpowiedź jest oczywista - sposób pisania w języku
angielskim.
Łączenie ciągów tekstowych
Chociaż nie jest możliwe wykonywanie operacji arytmetycznych na ciągach (ciągi są
interpretowane jako tekst), ciągi znaków można łączyć ze sobą lub replikować.
Przykład: Załóżmy, że chcemy napisać imię przypadkowej osoby. Mamy imię i nazwisko.
We: 'Fire' + 'cracker!'
Wy: 'Fire cracker'
W tym przykładzie wprowadzamy spację przed słowem „cracker”. Aby nie otrzymać „Firecracker”.
Przykład: Spróbujmy teraz zreplikować ciąg. Wyobraźmy sobie, że musimywpisać to samo zdanie
100 razy. W tym przykładzie powtórzymy stwierdzenie „Kocham programowanie w języku Python
super ”trzy razy.
We: print(”Uwielbiam programowanie w języku Python, jest niesamowity\n” * 3)
Wy: Uwielbiam programowanie w języku Python, jest niesamowite
Uwielbiam programowanie w języku Python, jest niesamowite
Uwielbiam programowanie w języku Python, jest niesamowite
Funkcja drukowania umożliwia korzystanie z opcji formatowania, takich jak nowy znak wiersza \n
w powyższym kodzie.
Zmienne
Zmienną to miejsce w pamięci do przechowywania danych, dopóki nie będą potrzebne. Aby
zadeklarować zmienną, nazywamy ją np. „x”, i przypisujemy wartość określonego typu danych.
Następnie przypisana mu wartość staje się wartością zmiennej. Przykłady w Pythonie:
We: x = 5
y = 10
x+y
Wy: 15
Obie zmienne będą miały ten sam typ danych int () jak przypisane im dane.
Ćwiczenie: spróbuj sprawdzić typ drugiej zmiennej y. Zmień wartości x oraz y i wykonaj z nimi
dodatkowe operacje. Pamiętaj, że zmienne mogą pomieścić łańcuchy, pamiętaj tylko, aby wstawić
cudzysłowy.
Istnieje kilka zasad deklarowania zmiennych Python: Po pierwsze, Python zmienne mogą
zaczynać się tylko znakiem podkreślenia (_) lub literą alfabetu. Nie można użyć cyfry lub znaków
specjalnych tj. @, $,% itd. Ponadto Python ma pewne zastrzeżone nazwy funkcji, np. print, if, else
itp. Tych nazw nie można używać do deklarowania zmiennych aby uniknąć sprzecznych operacji
Pythona. Ponadto w deklaracji zmiennej zaleca się stosowanie konwencji nazewniczych. Jeśli
mamy zmienną z wieloma słowami, oddzielamy je znakiem podkreślenia: nazwa_zmiennej,
matric_Number, total_Number_Of_Cars itp.
Przykład: zbudujmy bardziej skomplikowany program do zilustrowania łańcucha.
We: # Ten program łączy imię i nazwisko oraz wyświetla pełne imię i nazwisko.
First_name = 'James'
Last_name = 'Potter'
Fullname = First_name + ' ' + Last_name
print (Fullname)
Wy: James Potter
Sprawdźmy atrybut zmiennej „Fullname”.
We: type(Fullname)
Wy: str
Ponownie zbudujmy bardziej skomplikowaną wersję programu, który akceptuje dane wejściowe
użytkownika dla imienia, nazwiska i wieku, a następnie wyświetla informacje. W tym przykładzie
użyto funkcji input (), a jej składnią może być wydedukowana z kodu.
We: # Ten program wyświetla nazwy
First_name = input ('Jak masz na imię? \t')
Last_name = input ('Podaj nazwisko? \t')
Age = str (input („Wiek? \t'))
Fullname = First_name + ' ' + Last_name
print ('Witaj' + Fullname + '\ n\n')
Print ('Musi być miło mieć' + Age + '; Jestem komputerem, nie mam wieku!')
Może być również łatwo zaobserwować konwersję typu danych zmiennej wiekowej na a string za
pomocą funkcji str (). Jest to również możliwe do konwersji na inne dane typy tj. int () do konwersji
na liczby całkowite, float () do konwersji do liczb zmiennoprzecinkowych i liczb zespolonych () do
zamiany na liczby zespolone.
Ćwiczenia
1. Utwórz prosty program, który przyjmie imię trzech przyjaciół i wita ich w restauracji np.
McDonalds.
2. Napisz program, który przyjmuje wartość całkowitą i wyświetla ją jako liczbę
zmiennoprzecinkową.
3. Napisz prosty program, który akceptuje wartość temperatury w stopniach Celsjusza, i
wyświetla ekwiwalent Fahrenheitach.
Podpowiedź:
Listy
Listy w języku Python nie różnią się tak bardzo od ogólnej idei list w zwykłym języku. Jest to tylko
zbiór wartości w sekwencji oddzielonej przecinkami. Listy mogą przechowywać wartości z
różnymi typami danych, tj. listę Pythona można łączyć z sekwencją liczb całkowitych, liczb
zmiennoprzecinkowych, łańcuchów itp. Listy można przypisywać do zmiennych na ich podstawie
deklaracji i kilka operacji na liście jest zilustrowane w następujących przykładach:
# Przykład
[1,2,3,4,6] # Lista liczb całkowitych
[12.1,13.42,15.6,18.93,20.0] # Lista float
['New', 'Takeen', 'Extra'] # Lista ciągów znaków
['True', 'False'] # Lista wyrażeń boolowskich
['Derek', 25, 125.50, True,] # Lista różnych typów danych
Aby zadeklarować listę w języku Python, używane są nawiasy kwadratowe [], a wartości są
oddzielone przecinkami. Wszystkie zadeklarowane powyżej listy pokazują, w jaki sposób listy
Python są elastyczne do przechowywania danych dowolnego rodzaju. Listy te zostały jednak
zadeklarowane do jednorazowej oceny. Lepszą praktyką jest przypisywanie list do zmiennych w
celu ponownego wykorzystania.
Aby uruchomić powyższy przykład, skopiuj i uruchom każdą listę osobno, jeśli kopiujesz
wszystkie powyższe listy, Python zwróci tylko wynik ostatnio zadeklarowanej listy.
Indeksowanie list
Po zadeklarowaniu listy, do każdej wartości na liście można uzyskać dostęp za pomocą metody
zwanej indeksowaniem. Chodzi o to, że każdy element na określonej liście ma identyfikator
umożliwiający dostęp do niego, a indeksowanie list to proces pobierania elementów listy za
pomocą ich identyfikatorów.
Aby skorzystać z indeksowania listy, należy najpierw przypisać listę do zmiennej. Warto też
zauważyć, że indeksowanie list w języku Python jest zależne od kierunku. Indeksowanie zaczyna
się od lewej do prawej, Python rozpoczyna indeksowanie od „0”, podczas gdy
indeksowanie od prawej do lewej rozpoczyna się od -1.
Przykład: Weźmy trzeci element z listy.
W []: Random_List = [1,2,3,4, 'jedzenie']
Random_List [2]
Wy []: 3
Alternatywnie, moglibyśmy pobrać wartość 3 z Random_List za pomocą polecenia Random_List [-3];
nie jest to jednak powszechna konwencja. Istnieją również inne wersje list - zagnieżdżone listy.
Przykład: To jest zagnieżdżona lista
Random_List2 = [[1,2,3,4, 'integers'], 'food', [12.3,5.2,10.0, 'floats']]
Aby zrozumieć listy zagnieżdżone, wyobraź sobie rosyjskie 'matrioszki' ;-) Ta analogia
przedstawia, to samo podejście do indeksowania dla list, które są zagnieżdżone w innych listach.
Przykład: Weźmy wartość 10.0 z Random_List2.
W []: Random_List2 = [[1,2,3,4, 'liczby całkowite'], 'food', [12.3,5.2,10.0, 'floats']]
Random_List2 [2] [2]
Wy []: 10,0
Korzystając z pierwszego polecenia, Random_List2 [2], udało się pobrać zagnieżdżoną listę
zawierającą pożądaną wartość 10,0. Jeśli policzymy, ta lista jest trzecim elementem w
Random_List2. Teraz, po użyciu pierwszego indeksu, pobieramy listę, możemy teraz również
indeksować tę nową listę. W ramach tego lista „Random_List2 [2]” ma wartość 10.0, która jest
trzecim elementem pod indeksem 2 (indeksy Pythona zaczynają się od zera, możemy również wybrać go
za pomocą „-2”), więc aby go pobrać, po prostu indeksujemy tę listę pod numerem 2: „Random_List2
Przykład: Stwórzmy program, który akceptuje informacje o użytkowniku i wyświetla niektóre wyniki.
W []: # Program, który akceptuje dane użytkownika
user_Data = eval (input ('''Podaj swoje dane w następującej
kolejności:
['Nazwisko', wiek, wzrost (w cm), żonaty (wpisz True/False)]
'''))
Podaj swoje dane w następującej kolejności:
['Nazwisko', wiek, wzrost (w cm), żonaty (wpisz True/False)]
['James Franco', 41, 180, False]
Wynik:
Metoda „eval” w powyższym kodzie służy do oceny wszelkich danych wejściowych sugerowanych przez
użytkownika. To pozwala Pythonowi zaakceptować dane wejściowe w postaci literału i interpretować go jako
kod Pythona. W tym przypadku Python rozpoznaje dane wejściowe jako listę
z uwagi na użycie []. Przypisuje również odpowiedni typ danych do każdego elementu jak określono na liście.
Po przygotowaniu listy user_Data możemy przypisać każdy element na liście do odpowiadających
im zmiennych i wydrukować pożądany wynik:
W []: Nazwisko = user_Data[0]
Wiek = user_Data[1]
Wzrost = user_Data[2]
M_Status = user_Data[3]
print (('''Oto twoje dane
Nazwisko: {}
Wiek: {}
Wzrost: {} m
Żonaty: {} ''').format (Nazwisko,Wiek,Wzrost,M_Status))
Wy:
Oto twoje dane
Nazwisko: James Franco
Wiek: 41 lat
Wzrost: 188 cm
Żonaty: Fałsz
Nowa metoda wprowadzona tutaj to '. format'. Oto jak działa: Z listy user_Data, którą
zadeklarowaliśmy w pierwszej komórce, bierzemy każdy element i przypisujemy je do zmiennych
„Nazwisko, Wiek, Wzrost i M_Status”.
Aby wyświetlić wszystkie te elementy bez konieczności łączenia łańcuchów (string) lub zmieniany
typu danych, do drukowania na ekranie możemy użyć funkcji drukowania z potrójnymi
cudzysłowami z użyciem wiele linii. Alternatywnie moglibyśmy zastosować pojedyncze lub
podwójne cudzysłowy wraz z opcjami zmiany linii/tabulacji, tj. \ n lub \ t.
Metoda '. format' to sposób kontrolowania drukowania. Musimy tylko wstawić { } w miejsca, w
które pójdą wartości, a następnie określić kolejność. Zakładając, że chcemy wydrukować coś w
stylu np.: Mam 5 lat i mam 20 PLN.
W []: print (('Mam {} lat i mam {}.').format (5, '20 PLN'))
Wy
Mam 5 lat i mam 20 PLN.
W powyższym kodzie 20 PLN musiało zostać określone jako ciąg-string. Lepsze podejście
polegałoby na zastosowaniu przypisania zmiennej, tj. przypisaniu 5 i 20 PLN do zmiennej i
przekazania ich do metody „.format”.
Ćwiczenie: Napisz program, który wyświetla historię konta bankowego klienta.
Indeksowanie zakresu (podział na listy)
Zakładając, że musimy pobrać zakres elementów z listy, powiedzmy pierwsze trzy elementów,
możemy to osiągnąć poprzez indeksowanie zakresu lub tzw. slicing. Operator zasięgu jest
dwukropkiem ':', a technika ma następującą składnię: Nazwa listy [zakres dla startu : koniec
zakresu +1].
Przykład: Pobierz nazwy zwierząt z poniższej listy [„Cat”, „Dog”, „Goat”, „Jaguar”, „Lion”] i
przypisz je do zmiennej domestic_animals.
W []: Animals = ['Cat', 'Dog', 'Goat', 'Jaguar', 'Lion']
domestic_Animals = Animals [0:3]
print (domestic_Animals)
Wy:
['Cat', 'Dog', 'Goat']
Alternatywnie, jeśli nasze pożądane dane zaczynają się od pierwszego elementu, nie ma takiej
potrzeby aby określić indeks „0” (lub indeks „-1” w indeksie od prawej do lewej), możemy pobrać
dane również za pomocą 'domestic_Animals = Animals [: 3]'. Możemy zauważyć, że element
„Goat” ma indeks „2”, jednak zakres składnia wymaga podania argumentu „koniec zakresu” jako
„koniec zakresu +1” czyli 3 w tym przypadku.
To samo podejście stosuje się w przypadku bardziej skomplikowanego przechwytywania
danych, jak na przykładzie:
Napisz program, który wybierze trzy różne smakołyki z listy jedzenie i wydrukuje wiadomość.
W []: food_list = ['ryż', 'sałatka', ['ciasto', 'lody', 'ciastka', 'pączki'],'fasola']
treats = food_list [2] [1:4]
Print ('Uwielbiam {}, {} i {}.'.format(treats[0], treats[1], treats[2]))
Wy:
Uwielbiam lody, ciastka i pączki.
Indeksowanie ciągów
Ciągi-string to tylko kilka „połączonych” znaków. Stąd wszystkie operacje indeksowania list mają
również zastosowanie do łańcuchów.
Przykład: Weź słowo „except” z ciągu.
W []: # Ten program ilustruje indeksowanie ciągów
String = „Exceptional”
# index -slice
new_string = String [:6]
# Drukowanie wyniku
print (new_string)
Wy:
Except
Przykład: Zbieranie słów z dowolnego elementu na liście.
W []: # pobieranie słowa „medical” z listy
word_list = ['nautical',['medieval', 'extravaganza'],'extra']
word = word_list[1][0][:4] + word_list [0][5:8]
print(word)
Wy:
Medical
Przećwicz warianty indeksowania list i ciągów, będą one bardzo przydatne na kolejnych
zajęciach.
Przypiszemy nowe elementy do listy. Pierwszy przypadek to ponowne przypisanie elementu. Listy
są zmienne, co oznacza, że mogą one pozwolić na zmianę początkowej deklaracji. Możemy
ponownie przypisać elementy listy za pomocą indeksowania, a także możemy dodawać lub
usuwać elementy z listy przy użyciu metod .append, .insert, .extend, .remove.
Przykład: Oto lista owoców, którymi chcemy manipulować ['Apple', 'Orange', 'Banana', 'Cashew',
'Almond'].
W []: # Deklaracja listy owoców
fruits = ['Apple', 'Orange', 'Banana', 'Cashew', 'Almond']
fruits
Wy []: [„Apple”, „Orange”, „Banana”, „Cashew”, „Almond”]
Teraz ponownie przypiszmy drugi element na liście, tj. „Orange” i zmień go na „Guawa”
W []: fruits [1] = 'Guawa'
fruits
Wy []: ['Apple', 'Guava', 'Banana', 'Cashew', 'Almond']
Zauważ, że guawa została zaindeksowana jako drugi element na liście. Jednak, pomarańcza
została usunięta / wymieniona.
W tej metodzie wykorzystano ideę zmiennego przypisania. Element „Orange” jest zmienną na
liście owoców, a jej nazwa oparta jest na indeksie, tj. fruits [1], podobnie jak nazwa zmiennej
„banana” to owoce [2]. Więc to jest po prostu kwestia ponownego przypisania wartości zmiennej.
Tej samej metody można użyć do ponownego przypisania dowolnych elementów na tej
liście.
Przykład: Ponowne przypisanie dla listy zagnieżdżonej. Najpierw bieżemy zagnieżdżony
element do ponownego przypisania, a następnie przypisujemy mu nową wartość.
W []: # Ponowne przypisanie zagnieżdżonego elementu.
New_list = ['Apple', ['Orange','Guava'], 'Banana', 'Cashew', 'Almond']
New_list
Wy []: ['Apple', ['Orange','Guava'], 'Banana', 'Cashew', 'Almond']
W []: New_list [1] [0] = 'Mango'
New_list
Wy []: ['Apple', ['Orange','Guava'], 'Banana', 'Cashew', 'Almond']
Ćwiczenie: teraz spróbuj zmienić element „target” na „targeting” na tej liście:
nest = [1,2,3, [4,5, [„target”]]]
Korzystając z naszej początkowej listy owoców, użyjmy metody .append. Ta metoda używa
przekazanej do niej wartość i dodaje ją na końcu listy. Można dodać tylko jeden element do listy
na raz. Jeśli więcej niż jeden element zostanie przekazany do metody, to dodaje go jako listę
podrzędną do listy zamierzonej.
Przykład: Dodaj owoc Pawpaw do listy owoców i ustaw jako ostatni element.
W []: # Deklaracja listy owoców
fruits = ['Apple', 'Orange', 'Banana', 'Cashew', 'Almond']
fruits.append ('Pawpaw')
fruits
Wy []:
['Apple', 'Orange', 'Banana', 'Cashew', 'Almond', 'Pawpaw']
Aby dodać listę podrzędną, użyj metody .append (‘[sub-list elements]’)
Przykład: Dodajmy podlistę węglowodanów do listy żywności
W []: # Deklarowanie listy potraw
foods = ['Beans','plantain','fish']
foods.append(['Rice', 'Wheat'])
foods
Wy []:
['Beans', 'plantain', 'fish',['Rice',
'Wheat']]
Teraz zastosujmy inną metodę „.extend”. Ta metoda dodaje również dane wejściowe wartości na
końcu listy. Jednak w przeciwieństwie do metody .append, w przypadku wielu wartości
wejściowych, metoda .extend dodaje każdy element do listy, tym samym rozszerza indeks listy.
Przykład: Użyj metody .extend, aby dodać dwa elementy na końcu listy.
W []: # Deklaracja listy potraw
foods=['Beans','plantain','fish']
foods.extend(['Rice','Wheat'])
foods
Wy []: ['Beans','plantain', 'fish','Rice',
'Wheat']
Obie metody .append i .extend akceptują tylko jeden argument wejściowy. Jeśli jest więcej niż
jeden, zamakamy wejścia w nawias kwadratowy.
Wyobraźmy sobie przypadek, w którym chcemy dodać element do dowolnej części listy bez
zastępowania elementu w tym indeksie. Metoda .insert jest odpowiednia do tego celu.
Akceptuje również jeden argument i wstawia wartość o podanym indeksie.
Metoda .insert ma następującą składnię: ListName.insert (pożądany indeks, Nowa wartość)
ListName to nazwa listy, którą mamy manipulować. Pożądanym indeksem jest oczekiwana
pozycja tego elementu, a Nowa wartość to element, który ma być wstawiony pod określonym
indeksem.
Przykład: Zastanów się nad poniższą listą liczb całkowitych i dodaj odpowiednią wartość, aby
uzyskać poprawną sekwencję. Count_to_ten = [1,2,4,5,6,7,8,10].
W []: # Ten program ilustruje metodę .insert.
Count_to_ten = [1,2,4,5,6,7,8,10]
Count_to_ten.insert (2,3)
Count_to_ten.insert (8,9)
Count_to_ten
Wy []: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Teraz lista „Count_to_ten” ma zwiększony rozmiar i indeksowanie o wartość 1, tj. Count_to_ten
= [1,2,3,4,5,6,7,8,10]. Teraz możemy dodać wartość 9 do właściwego indeksu 8 jak w czwartym
wierszu kodu.
Pamiętaj o rozszerzeniu indeksu przed przypisaniem elementów. Następnie następujący kod
osiągnąłby ten sam wynik:
W []: Count_to_ten = [1,2,4,5,6,7,8,10]
Count_to_ten.insert (7,9)
Count_to_ten.insert (2,3)
Count_to_ten
Wy: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Jest tak, ponieważ wstawienie wartości na liście przesuwa elementy listy o indeks wstawienia po
prawej stronie. Każdy z przesuniętych elementów ma teraz indeks zwiększany o liczbę
wstawionych elementów, tj. jeśli element miał indeks z 3 na liście, a do jego indeksu lub przed
indeksem wstawiono dwie pozycje - ten element ma teraz indeks 5. Ostatnią metodą, którą
rozważalibyśmy przy operacjach list, jest metoda .remove.
Służy do usuwania elementu z listy. Ma również podobną składnię z metoda .insert i
korzysta z indeksowania list.
Przykład: Dodajmy wartość 11 do listy Count_to_ten, a następnie wyczyśćmy ją przy użyciu
metody .remove.
W []: # Korzystanie z listy wyników z ostatniego przykładu
Count_to_ten.append (11)
Count_to_ten
Wy []: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10,11]
W []: # Resetowanie z powrotem do 10
Count_to_ten.remove (11)
Wy []: [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
Metoda .remove nie wymaga specyfikacji indeksu niechcianego elementu. Tylko nazwę lub
wartość potrzebną jest element do usunięcia.
Ćwiczenie: utwórz listę samochodów i ćwicz na niej różne manipulacje. Ćwiczyć dodawanie do
listy, usuwanie elementów itp.
Można też wykonać dodawanie i mnożenie listy (powtarzanie), tak jak w przypadku łańcuchów.
Przykład:
W []: # Dodawanie i mnożenie list
List1 =['A','B','C','D']
List2 =[1,2,3,4]
CombinedList = List1 + List2
CombinedList
Out []: [„A”, „B”, „C”, „D”, 1, 2, 3, 4]
W []: # Mnożenie list
List2 * 2
Out []: [1, 2, 3, 4, 1, 2, 3, 4]
Download