Programowanie w Pythonie(13): Listy i funkcje

W tej lekcji przypomnimy sobie informacje o listach i funkcjach, a także poznamy nowe sposoby pomagające w wygodniejszej pracy z obiektami w Pythonie. Będzie to między innymi usuwanie elementów z listy (na kilka sposobów), czy praca z listami funkcjach. Będziemy na przemian ćwiczyć i uczyć się.

Dostęp do elementów listy

Ćwiczenie: Mamy listę k = [2, 3, 5, 7]. Wykonaj polecenia:

  • Wypisz z niej pierwszy element.
  • Wypisz z niej elementy od drugiego i trzeci jako osobną listę.
  • Podmień pierwszy element listy, nadpisując go jego pięciokrotnością.
  • Dodaj do listy kolejną liczbę pierwszą za pomocą metody .append().

Usuwanie elementów z listy

Istnieje kilka sposobów na usuwanie elementów z listy.

Można do tego użyć metody .pop(), która jako argument przyjmuje indeks elementu, a następnie zwraca ten element. Zobacz, co się stanie:

1
2
3
print(n)
n.pop(1)
print(n)

Innym sposobem jest metoda .remove(). Jako argument przyjmuje element, który chcemy usunąć (nie jego indeks). Skasuje ona pierwszy element pasując do naszego zapytania, który znajdzie w liście. Przetestuj samodzielnie:

1
2
3
print(n)
n.remove(7)
print(n)

Kolejnym sposobem jest funkcja del(). Usunie ona element podany jako argument, ale w przeciwieństwie do .pop(), nie zwróci go jako wynik. Spróbuj sam:

1
2
3
print(n)
del(n[2])
print(n)

No to teraz funkcje

Zajmiemy się teraz modyfikowaniem właściwości funkcji.

Ćwiczenie: Na początek, zmień poniższą funkcję tak, by przemnażała podany w niej argument przez 5 i zwracała wynik

1
2
3
4
5
liczba = 25
def moja_funkcja(k):
..return k * 3

print(moja_funkcja(liczba))

Teraz przypomnimy sobie, jak używać więcej niż jednego argumentu w definiowanej przez nas funkcji. Stwórz funkcję, która będzie przyjmowała jako argumenty liczby xy, a następnie zwróci jako wynik ich sumę. Czy ta funkcja będzie działać również dla stringów?

Nowe możliwości

Lista może być takim samym argumentem dla funkcji jak string, czy liczba. Zobacz:

1
2
3
4
def moja_funkcja(k):
  return k
k = [2, 3, 5]
print(moja_funkcja(k))

Ćwiczenie: Zmień w poniższej funkcji jej kod tak, aby zwracała tylko element listy na pierwszym miejscu, zamiast całej listy.

1
2
3
4
5
6
def dodawacz(k):
  k[1] += 7
  return k

k = [2, 3, 5]
print(moja_funkcja(k))

Ćwiczenie: Stwórz funkcję, która będzie zwracała listę z podwojonymi elementami innej listy, użytej jako argument tej funkcji. Inaczej mówiąc: mając listę [2,3,5], zwróci [4,6,10].

Funkcja range

Funkcja range() to użyteczny skrót do szybkiego generowania listy z kolejnymi liczbami. Może ona przyjmować trzy argumenty w następującej kolejności:

range(start, stop, krok)

Przykłady użycia:

  • range(3) => [0,1,2],
  • range(2,5) => [2,3,4],
  • range(1,6,2) => [1, 3, 5].

Ćwiczenie: Stwórz funkcję, która będzie zwracała listę z listami parzystymi od 0 do liczby n podanej przez użytkownika. Dla n=11 powinniśmy dostać listę [0,2,4,6,8,10]. Użyj do tego funkcji range().

Ćwiczenia na deser

Ćwiczenie: Stwórz funkcję, która będzie sumę wszystkich liczb całkowitych, zawartych w liście. Dla listy [2,3,5] powinieneś otrzymać wartość 10.

Ćwiczenie: Stwórz funkcję, która dokona konkatenacji wszystkich stringów zawartych w danej liście i przedzieli je znakiem spacji. Dla listy ['Geralt','z','Rivii'] powinieneś otrzymać nowego stringa równego "Geralt z Rivii".

Ćwiczenie: Stwórz funkcję, która mając dwie listy jako argument zwróci jedną listę z każdym z elementów obu list.

Nauczyciel matematyki i przedmiotów informatycznych w Dwujęzycznych Szkołach im. Władysława Kopalińskiego w Bielsku-Białej. Autor wielu publikacji poświęconych nauce podstaw programowania, w tym „Scratch. Nauka programowania przez zabawę”, wydanej drukiem przez wydawnictwo Komputer Świat. Entuzjasta wykorzystywania nowych nowoczesnych narzędzi w czasie lekcji. Prywatnie miłośnik koszykówki i aktywnego wykorzystywania czasu.

Dodaj komentarz

Twój adres email nie zostanie opublikowany. Pola, których wypełnienie jest wymagane, są oznaczone symbolem *

This site uses Akismet to reduce spam. Learn how your comment data is processed.