1.4.4. Pobierz n liczb¶
ZADANIE: Pobierz od użytkownika n liczb i zapisz je w liście. Wydrukuj: elementy listy i ich indeksy, elementy w odwrotnej kolejności, posortowane elementy. Usuń z listy pierwsze wystąpienie elementu podanego przez użytkownika. Usuń z listy element o podanym indeksie. Podaj ilość wystąpień oraz indeks pierwszego wystąpienia podanego elementu. Wybierz z listy elementy od indeksu i do j.
POJĘCIA: lista, metoda, notacja wycinkowa, tupla.
Wszystkie poniższe przykłady warto wykonać w konsoli Pythona.
Treść komunikatów w funkcjach print()
można skrócić.
Można również wpisywać kolejne polecenia do pliku i sukcesywnie go uruchomiać.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 | #! /usr/bin/env python3
# -*- coding: utf-8 -*-
from random import randint
ile = int(input("Ile liczb wylosować? "))
lista = [] # pusta lista
for i in range(0, ile):
lista.append(randint(0, 100))
print(lista)
print("Dodawanie elementów na końcu listy")
for i in range(0, 3):
liczba = int(input("Podaj liczbę: "))
lista.append(liczba)
print(lista)
print("Zawartość listy ([indeks] wartość):")
for i, v in enumerate(lista):
print("[", i, "]", v)
print("Elementy w odwróconym porządku:")
for e in reversed(lista):
print(e, end=" ")
print()
print("Elementy posortowane rosnąco:")
for e in sorted(lista):
print(e, end=" ")
print()
e = int(input("Którą liczbę usunąć? "))
lista.remove(e)
print(lista)
print("Wstawianie elementów do listy")
a, i = eval(input("Podaj element i indeks oddzielone przecinkiem: "))
lista.insert(i, a)
print(lista)
print("Wyszukiwanie i zliczanie elementu w liście")
e = int(input("Podaj liczbę: "))
print("Liczba wystąpień: ")
print(lista.count(e))
print("Indeks pierwszego wystąpienia: ")
if lista.count(e):
print(lista.index(e))
else:
print("Brak elementu w liście")
print("Pobieramy ostatni element z listy: ")
print(lista.pop())
print(lista)
print("Część listy (notacja wycinkowa):")
i, j = eval(input("Podaj indeks początkowy i końcowy oddzielone przecinkiem: "))
print(lista[i:j])
print()
print("Tupla to lista niemodyfikowalna.")
print("Próba zmiany tupli generuje błąd:")
tupla = tuple(lista)
tupla[0] = 100
|
Na początku z modułu random
importujemy funkcję randint(a, b)
,
która służy do generowania liczb z przedziału [a, b]. Wylosowane liczby
dodajemy do listy.
Lista (zob. lista) to sekwencja indeksowanych danych, zazwyczaj tego samego typu.
Listę tworzymy ujmując wartości oddzielone przecinkami w nawiasy kwadratowe,
np. lista = [1, 'a']
. Dostęp do elementów sekwencji uzyskujemy podając
nazwę i indeks, np. lista[0]
. Elementy indeksowane są od 0 (zera!).
Z każdej sekwencji możemy wydobywać fragmenty dzięki notacji wycinkowej
(ang. slice, zob. notacja wycinkowa), np.: lista[1:4]
.
Informacja
Sekwencjami w Pythonie są również napisy i tuple.
Funkcje działające na sekwencjach:
len()
– zwraca ilość elementów;enumerate()
– zwraca obiekt zawierający indeksy i elementy sekwencji;reversed()
– zwraca obiekt zawierający odwróconą sekwencję;sorted(lista)
– zwraca kopię listy posortowanej rosnąco;sorted(lista, reverse=True)
– zwraca kopię listy w odwrotnym porządku;
Lista ma wiele użytecznych metod:
.append(x)
– dodaje x do listy;.remove(x)
– usuwa pierwszy x z listy;.insert(i, x)
– wstawia x przed indeksem i;.count(x)
– zwraca ilość wystąpień x;.index(x)
– zwraca indeks pierwszego wystąpienia x;.pop()
– usuwa i zwraca ostatni element listy;.sort()
– sortuje listę rosnąco;.reverse()
– sortuje listę w odwróconym porządku.
Tupla to niemodyfikowalna lista. Wykorzystywana jest do zapamiętywania
i przekazywania wartości, których nie powinno się zmieniać.
Tuple tworzymy podając wartości w nawiasach okrągłych, np. tupla = (1, 'a')
lub z listy za pomocą funkcji: tuple(lista)
. Tupla może powstać
również poprzez spakowanie wartości oddzielonych przecinkami,
np. tupla = 1, 'a'
. Próba zmiany wartości w tupli generuje błąd.
Funkcja eval()
interpretuje swój argument jako kod Pythona.
W instrukcji a, i = eval(input("Podaj element i indeks oddzielone przecinkiem: "))
podane przez użytkownika liczby oddzielone przecinkiem interpretowane są jako tupla,
która następnie zostaje rozpakowana, czyli jej elementy zostają przypisane
do zmiennych z lewej strony. Przetestuj w konsoli Pythona:
>>> tupla = 2, 6
>>> a, b = tupla
>>> print(a, b)
1.4.4.1. Zadania dodatkowe¶
Utwórz w konsoli Pythona dowolną listę i przećwicz notację wycinkową.
Sprawdź działanie indeksów pustych i ujemnych, np. lista[2:], lista[:4], lista[-2], lista[-2:]
.
Posortuj trwale dowolną listę malejąco. Utwórz kopię listy posortowaną rosnąco.
Materiały Python 101
udostępniane przez
Centrum Edukacji Obywatelskiej na licencji
Creative Commons Uznanie autorstwa-Na tych samych warunkach 4.0 Międzynarodowa.
Utworzony: | 2022-05-22 o 19:52 w Sphinx 1.5.3 |
---|---|
Autorzy: | Patrz plik “Autorzy” |