Odpakowywanie
1. Wstęp do wstępu
def retTuple(x, y):
# Użyj przecinka, aby utworzyć jednoelementową krotkę
result = x * y,
return result
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
2. Wstęp właściwy
def sums(numbers):
# Inicjalizuj zmienne do przechowywania sum
sum_even = 0
sum_odd = 0
# Iteruj się po liście i sumuj elementy na pozycjach parzystych i nieparzystych
for i, num in enumerate(numbers):
if i % 2 == 0:
sum_even += num
else:
sum_odd += num
# Zwróć wynik w postaci krotki
return sum_even, sum_odd
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
3. And now for something completely different
monty = ( "completely different.", "And now for", "something" )
# Rozpakowanie krotki i wyświetlenie poprawnego cytatu
x, y, z = monty
print(y, z, x)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
4. Symbol zastępczy
def second_element(sequence):
# Inicjalizuj zmienną do przechowywania drugiego elementu
second = None
# Iteruj się przez elementy krotki z użyciem enumerate
for index, value in enumerate(sequence):
# Jeśli jesteśmy na drugim elemencie (indeks 1), przypisz go do zmiennej second
if index == 1:
second = value
# Zwróć drugi element
return second
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
5. Ćwiczenie - BMI
def bmi(person):
# Rozpakowanie danych z listy person
name, birthdate, weight_kg, height_cm = person
# Przeliczenie wzrostu z cm na m
height_m = height_cm / 100
# Obliczenie wartości BMI
bmi_value = round(weight_kg / (height_m ** 2), 2)
return bmi_value
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
6. Zbieranie
def cityCountry(data):
# Rozpakowanie pierwszych dwóch elementów listy, resztę zbierzmy w jednej zmiennej
city, country, *rest = data
# Połączenie nazwy miejscowości i kraju oddzielonych przecinkiem i spacją
result = city + ', ' + country
return result
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
7. Ćwiczenie - przedostatni
def before_last(sequence):
before_last_element = None
last_element = None
for item in sequence:
before_last_element, last_element = last_element, item
return before_last_element
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
8. Ćwiczenie: Rekurencyjna długość listy
def length(sequence, licznik=0):
if bool(sequence) == True:
licznik += 1
_, *sequence = sequence
return length(sequence, licznik)
else:
return licznik
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
9. Funkcja enumerate()
def findGreater( oil, value ):
odp = []
for i, el in enumerate(oil):
if el >= value:
odp.append(i)
return odp
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
10. Ćwiczenie - uznania
def dashFormat(password_1, password_2, letter):
# Zmiana litery na małe litery, aby ułatwić porównanie
password_1 = [c.lower() for c in password_1]
letter = letter.lower()
# Przeszukiwanie pierwszego hasła w poszukiwaniu litery
for i, c in enumerate(password_1):
if c == letter:
# Znaleziono literę, uzupełnienie drugiego hasła
password_2[i] = letter
return password_2
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
11. Ćwiczenie - konwersja na system dziesiętny
def valueToDecimal(value, base):
decimal_value = 0
value = value[::-1] # Odwróć wartość, aby łatwiej było obliczyć wartość dziesiętną
for i, digit in enumerate(value):
decimal_value += int(digit) * (base ** i)
return decimal_value
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
12. Funkcja enumerate() cd.
def monthReport(data):
result = [] # Inicjalizuj pustą listę na wynik
for day_number, (total_tests, positive_tests) in enumerate(data, 1):
if positive_tests > 0.5 * total_tests: # Warunek na więcej niż 50% testów pozytywnych
result.append(day_number)
return result
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
13. Funkcja zip()
def weightedRating(rating, weight):
# Zainicjuj pustą listę wynikową
result = []
# Iteruj przez odpowiadające sobie elementy rating i weight
for r, w in zip(rating, weight):
# Oblicz ocenę pomnożoną przez wagę i zaokrąglij do jednego miejsca po przecinku
weighted_score = round(r * w, 1)
# Dodaj obliczoną wartość do listy wynikowej
result.append(weighted_score)
return result
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
14. Ćwiczenie - słownik niem.-ang.
def gerEngDict(ger, eng):
# Użyj funkcji zip() do połączenia dwóch list w pary
pairs = zip(ger, eng)
# Utwórz słownik za pomocą wyrażenia słownikowego
dictionary = {ger_word: eng_word for ger_word, eng_word in pairs}
return dictionary
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
15. Ćwiczenie - egzaminy
def who_failed(reports, thresholds):
# Inicjuj pustą listę na niezdanych uczniów
failed_students = []
# Iteruj przez listę wyników i progi zdawalności
for i in range(len(reports)):
# Pobierz imię i wynik ucznia z raportu
name, score = reports[i]
# Pobierz próg zdawalności dla danego egzaminu
threshold = thresholds[i]
# Sprawdź, czy wynik jest mniejszy od progu zdawalności
if score < threshold:
# Jeśli tak, dodaj imię ucznia do listy niezdanych
failed_students.append(name)
return failed_students
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -