Facebook - konwersja
Czytaj fragment
Pobierz fragment

  • Empik Go W empik go

Python dla wszystkich: Rozwiązania zadań programistycznych - ebook

Wydawnictwo:
Data wydania:
12 maja 2023
Format ebooka:
EPUB
Format EPUB
czytaj
na czytniku
czytaj
na tablecie
czytaj
na smartfonie
Jeden z najpopularniejszych formatów e-booków na świecie. Niezwykle wygodny i przyjazny czytelnikom - w przeciwieństwie do formatu PDF umożliwia skalowanie czcionki, dzięki czemu możliwe jest dopasowanie jej wielkości do kroju i rozmiarów ekranu. Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na tablecie
Aby odczytywać e-booki na swoim tablecie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. Bluefire dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na czytniku
Czytanie na e-czytniku z ekranem e-ink jest bardzo wygodne i nie męczy wzroku. Pliki przystosowane do odczytywania na czytnikach to przede wszystkim EPUB (ten format możesz odczytać m.in. na czytnikach PocketBook) i MOBI (ten fromat możesz odczytać m.in. na czytnikach Kindle).
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
czytaj
na smartfonie
Aby odczytywać e-booki na swoim smartfonie musisz zainstalować specjalną aplikację. W zależności od formatu e-booka oraz systemu operacyjnego, który jest zainstalowany na Twoim urządzeniu może to być np. iBooks dla EPUBa lub aplikacja Kindle dla formatu MOBI.
Informacje na temat zabezpieczenia e-booka znajdziesz na karcie produktu w "Szczegółach na temat e-booka". Więcej informacji znajdziesz w dziale Pomoc.
Czytaj fragment
Pobierz fragment

Python dla wszystkich: Rozwiązania zadań programistycznych - ebook

Książka zawiera materiały uzupełniające do bezpłatnego podręcznika "Python dla wszystkich: Odkrywanie danych z Python 3", będące rozwiązaniami ćwiczeń programistycznych z podręcznika i zadań programistycznych online. Książka kierowana jest do osób korzystających z ww. podręcznika do nauczania Pythona.

Kategoria: Programowanie
Zabezpieczenie: Watermark
Watermark
Watermarkowanie polega na znakowaniu plików wewnątrz treści, dzięki czemu możliwe jest rozpoznanie unikatowej licencji transakcyjnej Użytkownika. E-książki zabezpieczone watermarkiem można odczytywać na wszystkich urządzeniach odtwarzających wybrany format (czytniki, tablety, smartfony). Nie ma również ograniczeń liczby licencji oraz istnieje możliwość swobodnego przenoszenia plików między urządzeniami. Pliki z watermarkiem są kompatybilne z popularnymi programami do odczytywania ebooków, jak np. Calibre oraz aplikacjami na urządzenia mobilne na takie platformy jak iOS oraz Android.
ISBN: 9788396017635
Rozmiar pliku: 1,2 MB

FRAGMENT KSIĄŻKI

WSTĘP

Książka zawiera materiały uzupełniające do bezpłatnego podręcznika: Charles R. Severance, “Python dla wszystkich: Odkrywanie danych z Python 3”. Poniżej znajdują się rozwiązania ćwiczeń programistycznych z podręcznika i zadań programistycznych online, które napisałem podczas prowadzenia kursu wprowadzającego do Pythona. Opisy ćwiczeń pochodzą ze wspomnianego wyżej podręcznika. Książka kierowana jest do osób korzystających z ww. podręcznika do nauczania Pythona (zatem nie udostępniaj proszę tych materiałów w internecie).ROZWIĄZANIA ĆWICZEŃ Z PODRĘCZNIKA

Rozdział 2

Ćwiczenie 2-2

Napisz program, który wykorzystuje funkcję input() do poproszenia użytkownika o jego imię, a następnie przywita go, używając jego imienia.

Rozwiązanie: prog-02-02.py

------------------------------------------------------------------------

name = input("Podaj swoje imię: ")
print("Witaj " + name + "!")

------------------------------------------------------------------------

Ćwiczenie 2-3

Napisz program, który wyświetli użytkownikowi pytanie o liczbę godzin pracy i stawkę za godzinę w celu obliczenia wynagrodzenia.

Podaj liczbę godzin: 39
Podaj stawkę godzinową: 28.75
Wynagrodzenie: 1121.25

Na razie nie będziemy się martwić o to, by nasze wynagrodzenie miało dokładnie dwie cyfry po przecinku. Jeśli chcesz, możesz pobawić się wbudowaną funkcją Pythona round(), tak aby prawidłowo zaokrąglić wynagrodzenie do dwóch miejsc po przecinku.

Rozwiązanie: prog-02-03.py

------------------------------------------------------------------------

hrs = input("Podaj liczbę godzin: ")
hrs = float(hrs)

rt = input("Podaj stawkę godzinową: ")
rt = float(rt)

pay = hrs * rt
pay = round(pay, 2)
print("Wynagrodzenie: " + str(pay))

------------------------------------------------------------------------

Ćwiczenie 2-4

Załóżmy, że wykonujemy następujące instrukcje przypisania:

width = 17
height = 12.0

Dla każdego z poniższych wyrażeń podaj wartość wyrażenia i oraz typ (wartości wyrażenia).

1. width//2

2. width/2.0

3. height/3

4. 1 + 2 * 5

Rozwiązanie: prog-02-04.py

------------------------------------------------------------------------

width = 17
height = 12.0

print(width//2)
print(type(width//2))

print(width/2.0)
print(type(width/2.0))

print(height/3)
print(type(height/3))

print(1 + 2 * 5)
print(type(1 + 2 * 5))

------------------------------------------------------------------------

Ćwiczenie 2-5

Napisz program, który prosi użytkownika o podanie temperatury w skali Celsjusza, przelicza ją na skalę Fahrenheita i wyświetla przeliczoną temperaturę.

Rozwiązanie: prog-02-05.py

------------------------------------------------------------------------

celsius = input("Podaj temperaturę w skali Celsjusza: ")
celsius = float(celsius)

fahrenheit = (celsius * 9/5) + 32

print("Temperatura w skali Fahrenheita: " + str(fahrenheit))

------------------------------------------------------------------------

Rozdział 3

Ćwiczenie 3-1

Przepisz ponownie swój program obliczający wynagrodzenie, tak aby dać pracownikowi 1,5 raza większą stawkę godzinową za czas przepracowany powyżej 40 godzin.

Podaj liczbę godzin: 45
Podaj stawkę godzinową: 10
Wynagrodzenie: 475.0

Rozwiązanie: prog-03-01.py

------------------------------------------------------------------------

hrs = input("Podaj liczbę godzin: ")
hrs = float(hrs)

rt = input("Podaj stawkę godzinową: ")
rt = float(rt)

if hrs <= 40:
pay = hrs * rt
else:
pay = 40 * rt + (hrs - 40) * 1.5 * rt

pay = round(pay, 2)
print("Wynagrodzenie: " + str(pay))

------------------------------------------------------------------------

Ćwiczenie 3-2

Przepisz ponownie swój program płacowy, używając try i except, tak aby elegancko obsługiwał on nienumeryczne dane wejściowe, wyświetlając w takim przypadku wiadomość i kończąc swoje działanie. Poniżej znajdują się wyniki dwóch uruchomień programu:

Podaj liczbę godzin: 20
Podaj stawkę godzinową: dziewięć
Błąd, podaj wartość numeryczną

Podaj liczbę godzin: czterdzieści
Błąd, podaj wartość numeryczną

Rozwiązanie: prog-03-02.py

------------------------------------------------------------------------

try:
hrs = input("Podaj liczbę godzin: ")
hrs = float(hrs)

rt = input("Podaj stawkę godzinową: ")
rt = float(rt)

if hrs <= 40:
pay = hrs * rt
else:
pay = 40 * rt + (hrs - 40) * 1.5 * rt

pay = round(pay, 2)
print("Wynagrodzenie: " + str(pay))
except:
print("Błąd, podaj wartość numeryczną")

------------------------------------------------------------------------

Ćwiczenie 3-3

Napisz program, który poprosi użytkownika o wartość pomiędzy 0.0 a 1.0. Jeśli wartość jest poza zakresem, wypisz komunikat o błędzie. Jeśli wartość jest między 0.0 a 1.0, wypisz ocenę, korzystając z poniższej tabeli:

Wartość Ocena
>= 0.9 5,0
>= 0.8 4,5
>= 0.7 4,0
>= 0.6 3,5
>= 0.5 3,0
< 0.5 2,0

Podaj wartość: 0.95
5,0

Podaj wartość: doskonała
Niepoprawna wartość

Podaj wartość: 10.0
Niepoprawna wartość

Podaj wartość: 0.75
4,0

Podaj wartość: 0.5
3,0

Podaj wartość: 0.46
2,0

Uruchom program wielokrotnie, jak pokazano powyżej, tak aby przetestować różne wartości.

Rozwiązanie: prog-03-03.py

------------------------------------------------------------------------

score = input("Podaj wartość: ")
try:
score = float(score)
if score > 1.0 or score < 0.0:
print("Niepoprawna wartość")
elif score >= 0.9:
print("5,0")
elif score >= 0.8:
print("4,5")
elif score >= 0.7:
print("4,0")
elif score >= 0.6:
print("3,5")
elif score >= 0.5:
print("3,0")
else:
print("2,0")
except:
print("Niepoprawna wartość")

------------------------------------------------------------------------

Rozdział 4

Ćwiczenie 4-1

Uruchom program na swoim systemie i zobacz, jakie dostajesz liczby. Uruchom program więcej niż raz i zobacz, jakie tym razem dostajesz liczby.

Rozwiązanie: prog-04-01.py

------------------------------------------------------------------------

import random

for i in range(10):
x = random.random()
print(x)

------------------------------------------------------------------------

Ćwiczenie 4-2

Przesuń ostatnią linię programu na samą górę, tak aby wywołanie funkcji pojawiło się przed definicjami. Uruchom program i zobacz, jaki komunikat o błędzie otrzymasz.

Rozwiązanie: prog-04-02.py

------------------------------------------------------------------------

repeat_lyrics()

# błąd "NameError: name 'repeat_lyrics' is not defined"
# funkcja repeat_lyrics() nie została zdefiniowana przed jej użyciem

def print_lyrics():
print("Jestem sobie drwal i równy chłop.")
print('Pracuję w dzień i śpię całą noc.')

def repeat_lyrics():
print_lyrics()
print_lyrics()

------------------------------------------------------------------------

Ćwiczenie 4-3

Przesuń wywołanie funkcji na sam dół i przenieś definicję print_lyrics() po definicji repeat_lyrics(). Co się stanie, gdy uruchomisz taki program?

Rozwiązanie: prog-04-03.py

------------------------------------------------------------------------

def repeat_lyrics():
print_lyrics()
print_lyrics()

def print_lyrics():
print("Jestem sobie drwal i równy chłop.")
print('Pracuję w dzień i śpię całą noc.')

repeat_lyrics()

# program uruchomi się poprawnie, ponieważ definicja funkcji
# nie oznacza jej uruchomienia, więc print_lyrics() może być po repeat_lyrics()

------------------------------------------------------------------------

Ćwiczenie 4-5

Co wypisze następujący program Pythona?

def fred():
print("Zap")

def jane():
print("ABC")

jane()
fred()
jane()

Rozwiązanie: prog-04-05.py

------------------------------------------------------------------------

def fred():
print("Zap")

def jane():
print("ABC")

jane()
fred()
jane()

------------------------------------------------------------------------

Ćwiczenie 4-6

Przepisz ponownie swoje obliczenie wynagrodzenia z dodatkiem za nadgodziny i stwórz funkcję o nazwie computepay(), która przyjmuje dwa argumenty (parametry hours i rate).

Podaj liczbę godzin: 45
Podaj stawkę godzinową: 10
Wynagrodzenie: 475.0

Rozwiązanie: prog-04-06.py

------------------------------------------------------------------------

def computepay(hours, rate):
if hrs <= 40:
pay = hrs * rt
else:
pay = 40 * rt + (hrs - 40) * 1.5 * rt

pay = round(pay, 2)
return pay

try:
hrs = input("Podaj liczbę godzin: ")
hrs = float(hrs)

rt = input("Podaj stawkę godzinową: ")
rt = float(rt)

money = computepay(hrs, rt)

print("Wynagrodzenie: " + str(money))
except:
print("Błąd, podaj wartość numeryczną")

------------------------------------------------------------------------

Ćwiczenie 4-7

Napisz ponownie program z poprzedniego rozdziału do wyliczania ocen za pomocą funkcji o nazwie computegrade(), która przyjmuje jako argument wartość i zwraca ocenę jako napis.

Wartość Ocena
>= 0.9 5,0
>= 0.8 4,5
>= 0.7 4,0
>= 0.6 3,5
>= 0.5 3,0
< 0.5 2,0

Podaj wartość: 0.95
5,0

Podaj wartość: doskonała
Niepoprawna wartość

Podaj wartość: 10.0
Niepoprawna wartość

Podaj wartość: 0.75
4,0

Podaj wartość: 0.5
3,0

Podaj wartość: 0.46
2,0

Uruchom program kilkukrotnie, tak aby przetestować różne wartości.

Rozwiązanie: prog-04-07.py

------------------------------------------------------------------------

def computegrade(val):
if score > 1.0 or score < 0.0:
return "Niepoprawna wartość"
elif score >= 0.9:
return "5,0"
elif score >= 0.8:
return "4,5"
elif score >= 0.7:
return "4,0"
elif score >= 0.6:
return "3,5"
elif score >= 0.5:
return "3,0"
else:
return "2,0"

score = input("Podaj wartość: ")
try:
score = float(score)
grade = computegrade(score)
print(grade)
except:
print("Niepoprawna wartość")

------------------------------------------------------------------------

Rozdział 5

Ćwiczenie 5-1

Napisz program, który odczytuje liczby tak długo, aż użytkownik wprowadzi “gotowe”. Po wpisaniu “gotowe” wypisz sumę, ile wprowadzono liczb oraz średnią z tych liczb. Jeśli użytkownik wprowadzi coś innego niż liczba, to używając try i except wykryj jego błąd, wypisz komunikat o błędzie oraz przejdź do następnej liczby.

Wprowadź liczbę: 4
Wprowadź liczbę: 5
Wprowadź liczbę: złe dane
Nieprawidłowe wejście
Wprowadź liczbę: 7
Wprowadź liczbę: gotowe
16 3 5.333333333333333

Rozwiązanie: prog-05-01.py

------------------------------------------------------------------------

num = 0
total = 0

while True:
value = input("Wprowadź liczbę: ")

if value == "gotowe":
break

try:
value = int(value)
except:
print("Nieprawidłowe wejście")
continue

num = num + 1
total = total + value

print(total, num, total/num)

------------------------------------------------------------------------

Ćwiczenie 5-2

Napisz kolejny program, który będzie prosił o listę liczb tak jak wyżej, ale na końcu zamiast średniej wypisze zarówno największą, jak i najmniejszą wprowadzoną liczbę.

Rozwiązanie: prog-05-02.py

------------------------------------------------------------------------

largest = None
smallest = None

while True:
value = input("Wprowadź liczbę: ")

if value == "gotowe":
break

try:
value = int(value)
except:
print("Nieprawidłowe wejście")
continue

if largest is None or value > largest:
largest = value

if smallest is None or value < smallest:
smallest = value

print(largest, smallest)

------------------------------------------------------------------------

Rozdział 6

Ćwiczenie 6-1

Napisz pętlę while, która zaczyna się od ostatniego znaku napisu i działa od końca, do pierwszego znaku, wypisując każdą literę w osobnej linii, w odwrotnej kolejności.

Rozwiązanie: prog-06-01.py

------------------------------------------------------------------------

fruit = 'banan'

index = len(fruit) - 1
while index >= 0:
letter = fruit
print(letter)
index = index -1

------------------------------------------------------------------------

Ćwiczenie 6-2

Zakładając, że fruit jest napisem, co oznacza fruit?

Rozwiązanie: prog-06-02.py

------------------------------------------------------------------------

fruit = 'banan'

print(fruit) # wyświetli się cały napis

------------------------------------------------------------------------

Ćwiczenie 6-3

Hermetyzacja to styl programowania, w którym szczegóły danej implementacji są ukryte. Dokonaj hermetyzacji powyższego kodu poprzez zamknięcie go w funkcji o nazwie count() i uogólnij ten kod tak, by przyjmował jako argumenty napis i literę.

Rozwiązanie: prog-06-03.py

------------------------------------------------------------------------

def count(p_word, p_letter):
c = 0
for letter in p_word:
if letter == p_letter:
c = c + 1
return c

x = count('banan', 'a')
print(x)

------------------------------------------------------------------------

Ćwiczenie 6-4

Dla tekstowego typu danych istnieje metoda o nazwie count(), która jest podobna do funkcji z poprzedniego ćwiczenia. Przeczytaj dokumentację tej metody pod adresem:

https://docs.python.org/library/stdtypes.html#string-methods

Napisz wywołanie metody, które zliczy, ile razy litera “a” występuje w słowie “banan”.

Rozwiązanie: prog-06-04.py

------------------------------------------------------------------------

word = 'banan'
print(word.count('a'))

------------------------------------------------------------------------

Ćwiczenie 6-5

Mamy następujący kod Pythona, który przechowuje napis w zmiennej text:

text = 'X-DSPAM-Confidence: 0.8475'

------------------------------------------------------------------------

text = "X-DSPAM-Confidence: 0.8475"

index = text.find(' ') + 1
num = text
num = float(num)

print(num)

------------------------------------------------------------------------

------------------------------------------------------------------------

text = 'kajak'

# usunięcie litery 'k' z lewej i z prawej strony
print(text.strip('k'))

# zamiana litery 'a' na 'A'
print(text.replace('a', 'A'))

# znalezienie pierwszej pozycji (indeksu) litery 'a'
print(text.find('a'))

# znalezienie pozycji (indeksu) litery 'a', zaczynając od pozycji (indeksu) nr 2
print(text.find('a', 2))

# znalezienie pozycji (indeksu) litery 'k', między 2 a 5 pozycją (indeksem)
print(text.find('k', 2, 5))

------------------------------------------------------------------------

Podaj nazwę pliku: mbox-short.txt
FROM [email protected] SAT JAN 5 09:14:16 2008
RETURN-PATH:
RECEIVED: FROM MURDER (MAIL.UMICH.EDU )
BY FRANKENSTEIN.MAIL.UMICH.EDU (CYRUS V2.3.8) WITH LMTPA;
SAT, 05 JAN 2008 09:14:16 -0500

------------------------------------------------------------------------

fname = input('Podaj nazwę pliku: ')
fhand = open(fname)
for line in fhand:
print(line.rstrip().upper())

------------------------------------------------------------------------

X-DSPAM-Confidence: 0.8475

Podaj nazwę pliku: mbox.txt
Średni poziom pewności spamu: 0.894128046745

Podaj nazwę pliku: mbox-short.txt
Średni poziom pewności spamu: 0.750718518519

------------------------------------------------------------------------

fname = input('Podaj nazwę pliku: ')
fhand = open(fname)
count = 0
acc = 0
for line in fhand:
line = line.rstrip()
if not line.startswith('X-DSPAM-Confidence: '):
continue
index = line.find(' ') + 1
num = line
num = float(num)

count = count + 1
acc = acc + num

print('Średni poziom pewności spamu:', acc/count)

------------------------------------------------------------------------

Podaj nazwę pliku: mbox.txt
Mamy 1797 linii z tematem wiadomości w pliku mbox.txt

Podaj nazwę pliku: missing.txt
Nie można otworzyć pliku: missing.txt

Podaj nazwę pliku: trele morele
TRELE MORELE - co za bzdury!

------------------------------------------------------------------------

fname = input('Podaj nazwę pliku: ')
if fname == 'trele morele':
print("TRELE MORELE - co za bzdury!")
exit()
try:
fhand = open(fname)
except:
print('Nie można otworzyć pliku:', fname)
exit()
count = 0
for line in fhand:
if line.startswith('Subject:'):
count = count + 1
print('Mamy', count, 'linii z tematem wiadomości w pliku', fname)

------------------------------------------------------------------------

------------------------------------------------------------------------

def chop(t):
if len(t) == 0:
pass
elif len(t) == 1:
del t
else:
del t
del t

def middle(t):
return t

v =
print("v :", v)
chop(v)
print("chopped v:", v)

w =
print("w :", w)
x = middle(w)
print("middle w :", x)
print("w :", w)

------------------------------------------------------------------------

------------------------------------------------------------------------

fhand = open('prog-08-02.txt') # mbox-short.txt z dodanym 'From' w drugiej linijce
for line in fhand:
words = line.split()
# print 'Debug:', words
if len(words) == 0: continue
if words != 'From': continue
print(words)

------------------------------------------------------------------------

------------------------------------------------------------------------

fhand = open('prog-08-02.txt') # mbox-short.txt z dodanym 'From' w drugiej linijce
for line in fhand:
words = line.split()
# print 'Debug:', words
if len(words) < 3: continue # poprawka
if words != 'From': continue
print(words)

------------------------------------------------------------------------

------------------------------------------------------------------------

fhand = open('prog-08-02.txt') # mbox-short.txt z dodanym 'From' w drugiej linijce
for line in fhand:
words = line.split()
# print 'Debug:', words
if len(words) >= 3 and words == 'From':
print(words)

------------------------------------------------------------------------

Podaj nazwę pliku: romeo.txt

------------------------------------------------------------------------

fname = input('Podaj nazwę pliku: ')
fhand = open(fname)
used_words =
for line in fhand:
words = line.split()
for word in words:
if word not in used_words:
used_words.append(word)

print(sorted(used_words))

------------------------------------------------------------------------

From [email protected] Sat Jan 5 09:14:16 2008

Podaj nazwę pliku: mbox-short.txt
[email protected]
[email protected]
[email protected]

[email protected]
[email protected]
[email protected]
[email protected]
Mamy 27 linii, w których From jest pierwszym wyrazem

------------------------------------------------------------------------

fname = input('Podaj nazwę pliku: ')
fhand = open(fname)
count = 0
for line in fhand:
words = line.split()
if len(words) >= 2 and words == 'From': # wariant 1
print(words)
count = count + 1

print("Mamy", count, "linii, w których From jest pierwszym wyrazem")

------------------------------------------------------------------------

------------------------------------------------------------------------

fname = input('Podaj nazwę pliku: ')
fhand = open(fname)
mails =
for line in fhand:
words = line.split()
if len(words) >= 2 and words == 'From': # wariant 2
mails.append(words)
print(words)

print("Mamy", len(mails), "linii, w których From jest pierwszym wyrazem")

------------------------------------------------------------------------

------------------------------------------------------------------------

fname = input('Podaj nazwę pliku: ')
fhand = open(fname)
mails =
for line in fhand:
words = line.split()
if len(words) >= 2 and words == 'From': # wariant 3
mails.append(words)

for mail in mails:
print(mail)

print("Mamy", len(mails), "linii, w których From jest pierwszym wyrazem")

------------------------------------------------------------------------

Wprowadź liczbę: 6
Wprowadź liczbę: 2
Wprowadź liczbę: 9
Wprowadź liczbę: 3
Wprowadź liczbę: 5
Wprowadź liczbę: gotowe
Największa: 9.0
Najmniejsza: 2.0

------------------------------------------------------------------------

t =
while True:
line = input("Wprowadź liczbę: ")
if line == "gotowe":
break
n = float(line)
t.append(n)

print("Największa:", max(t))
print("Najmniejsza:", min(t))

------------------------------------------------------------------------

------------------------------------------------------------------------

fhand = open("words.txt")
d = {}
for line in fhand:
words = line.split()
for word in words:
d = 123

print('zdolny:', 'zdolny' in d)
print('klawiatura:', 'klawiatura' in d)
print('zdolny:', 'zdolny' in d.keys()) # można też i tak

------------------------------------------------------------------------

From [email protected] Sat Jan 5 09:14:16 2008

Podaj nazwę pliku: mbox-short.txt
{'Sat': 1, 'Fri': 20, 'Thu': 6}

------------------------------------------------------------------------

fname = input('Podaj nazwę pliku: ')
fhand = open(fname)
counts = {}
for line in fhand:
words = line.split()
if len(words) >= 3 and words == 'From':
day = words

# ew. krocej:
# counts = counts.get(day, 0) + 1

if day in counts:
counts += 1
else:
counts = 1

print(counts)

------------------------------------------------------------------------

Podaj nazwę pliku: mbox-short.txt
{'[email protected]': 2, '[email protected]': 3,
'[email protected]': 4, '[email protected]': 2, '[email protected]': 5,
'[email protected]': 3, '[email protected]': 1,
'[email protected]': 1, '[email protected]': 1,
'[email protected]': 4, '[email protected]': 1}

------------------------------------------------------------------------

fname = input('Podaj nazwę pliku: ')
fhand = open(fname)
counts = {}
for line in fhand:
words = line.split()
if len(words) >= 2 and words == 'From':
mail = words
counts = counts.get(mail, 0) + 1

print(counts)

------------------------------------------------------------------------

Podaj nazwę pliku: mbox-short.txt
[email protected] 5

Podaj nazwę pliku: mbox.txt
[email protected] 195

------------------------------------------------------------------------

fname = input('Podaj nazwę pliku: ')
fhand = open(fname)
counts = {}
for line in fhand:
words = line.split()
if len(words) >= 2 and words == 'From':
mail = words
counts = counts.get(mail, 0) + 1

max_key = None
max_val = 0

for mail in counts:
if counts > max_val:
max_key = mail
max_val = counts

print(max_key, max_val)

------------------------------------------------------------------------

Podaj nazwę pliku: mbox-short.txt
{'uct.ac.za': 6, 'media.berkeley.edu': 4, 'umich.edu': 7,
'iupui.edu': 8, 'caret.cam.ac.uk': 1, 'gmail.com': 1}

------------------------------------------------------------------------

fname = input('Podaj nazwę pliku: ')
fhand = open(fname)
counts = {}
for line in fhand:
words = line.split()
if len(words) >= 2 and words == 'From':
mail = words
domain = mail.split('@')
counts = counts.get(domain, 0) + 1

print(counts)

------------------------------------------------------------------------

From [email protected] Sat Jan 5 09:14:16 2008

Podaj nazwę pliku: mbox-short.txt
[email protected] 5

Podaj nazwę pliku: mbox.txt
[email protected] 195

------------------------------------------------------------------------

fname = input('Podaj nazwę pliku: ')
fhand = open(fname)
counts = {}
for line in fhand:
words = line.split()
if len(words) >= 2 and words == 'From':
mail = words
counts = counts.get(mail, 0) + 1

t =
for mail in counts:
s = (counts, mail)
t.append(s)

t.sort(reverse=True)
v, k = t
print(k, v)

------------------------------------------------------------------------

Podaj nazwę pliku: mbox-short.txt
04 3
06 1
07 1
09 2
10 3
11 6
14 1
15 2
16 4
17 2
18 1
19 1

------------------------------------------------------------------------

fname = input('Podaj nazwę pliku: ')
fhand = open(fname)
counts = {}
for line in fhand:
words = line.split()
if len(words) >= 6 and words == 'From':
time = words
h = time.split(":")
counts = counts.get(h, 0) + 1

t = list(counts.keys())
t.sort()

for key in t:
print(key, counts)

------------------------------------------------------------------------

------------------------------------------------------------------------

import string

fname = input('Podaj nazwę pliku: ')
fhand = open(fname)
counts = {}
for line in fhand:
to_remove = string.punctuation + string.whitespace + string.digits
line = line.translate(line.maketrans('','', to_remove))
line = line.lower()
words = line.split()
for word in words:
for letter in word:
counts = counts.get(letter, 0) + 1

total = sum(counts.values())

t = list(counts.keys())
t.sort()

for key in t:
norm_v = round(100 * (counts / total), 1)
print(key, ':', norm_v, '%')

------------------------------------------------------------------------

Podaj wyrażenie regularne: ^Author
mbox.txt ma 1798 linii, które pasują do ^Author

Podaj wyrażenie regularne: ^X-
mbox.txt ma 14368 linii, które pasują do ^X-

Podaj wyrażenie regularne: java$
mbox.txt ma 4175 linii, które pasują do java$

------------------------------------------------------------------------

import re

pattern = input('Podaj wyrażenie regularne: ')
no_lines = 0

fhand = open("mbox.txt")
for line in fhand:
line = line.rstrip('\n')
if re.search(pattern, line):
no_lines += 1

print("mbox.txt ma", no_lines, "linii, które pasują do", pattern)

------------------------------------------------------------------------

New Revision: 39772

Podaj nazwę pliku: mbox.txt
38549

Podaj nazwę pliku: mbox-short.txt
39756

------------------------------------------------------------------------

import re

fname = input('Podaj nazwę pliku: ')
fhand = open(fname)

nums =

for line in fhand:
line = line.rstrip('\n')
matches = re.findall('^New Revision: (\d+)$', line)
if len(matches) > 0:
nums.append(int(matches))
#nums.extend()

print(int(sum(nums)/len(nums)))

------------------------------------------------------------------------

------------------------------------------------------------------------

import socket

link = input("Podaj link (http) - ")
try:
domain = link.split('/')

mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysock.connect((domain, 80))
cmd = ('GET '+link+' HTTP/1.0\r\n\r\n').encode()
mysock.send(cmd)

while True:
data = mysock.recv(512)
if len(data) < 1:
break
print(data.decode(),end='')

mysock.close()
except:
print("Błędnie podany link")

------------------------------------------------------------------------

------------------------------------------------------------------------

import socket

LIMIT = 3000
received = 0
link = input("Podaj link (http) - ")
try:
domain = link.split('/')

mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysock.connect((domain, 80))
cmd = ('GET '+link+' HTTP/1.0\r\n\r\n').encode()
mysock.send(cmd)

while True:
data = mysock.recv(512)
if len(data) < 1:
break
if received + len(data) <= LIMIT:
print(data.decode(),end='')
elif received >= LIMIT:
pass
else:
to_display = LIMIT - received
print(data.decode(),end='')
received += len(data)

mysock.close()
print('\nPobrano ' + str(received) + ' znaków')
except:
print("Błędnie podany link")

------------------------------------------------------------------------

------------------------------------------------------------------------

import urllib.request

LIMIT = 3000
received = 0
link = input("Podaj link (http) - ")
try:
fhand = urllib.request.urlopen(link)

for line in fhand:
data = line.decode()
if received + len(data) <= LIMIT:
print(data,end='')
elif received >= LIMIT:
pass
else:
to_display = LIMIT - received
print(data,end='')
received += len(data)

print('\nPobrano ' + str(received) + ' znaków')
except:
print("Błędnie podany link")

------------------------------------------------------------------------

------------------------------------------------------------------------

# Aby uruchomić poniższy kod, poprzez wiersz linii
# poleceń zainstaluj bibliotekę BeautifulSoup:
#
# pip3 install beautifulsoup4
#

import urllib.request, urllib.parse, urllib.error
from bs4 import BeautifulSoup
import ssl

# Ignoruj błędy związane z certyfikatami SSL
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

url = input('Podaj link - ')
html = urllib.request.urlopen(url, context=ctx).read()
soup = BeautifulSoup(html, 'html.parser')

# Pobierz wszystkie znaczniki p
tags = soup('p')
print(len(tags))

------------------------------------------------------------------------

------------------------------------------------------------------------

import socket

link = input("Podaj link (http) - ")
try:
domain = link.split('/')

mysock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
mysock.connect((domain, 80))
cmd = ('GET '+link+' HTTP/1.0\r\n\r\n').encode()
mysock.send(cmd)

display = False
while True:
data = mysock.recv(512)
if len(data) < 1:
break
if display:
print(data.decode(),end='')
else:
pos = data.decode().find('\r\n\r\n')
if pos >= 0:
print(data.decode(),end='')
display = True

mysock.close()
except:
print("Błędnie podany link")

------------------------------------------------------------------------

------------------------------------------------------------------------

import urllib.request
import json
import ssl
import re

serviceurl = 'https://nominatim.openstreetmap.org/search.php?'

# Ignoruj błędy związane z certyfikatami SSL
ctx = ssl.create_default_context()
ctx.check_hostname = False
ctx.verify_mode = ssl.CERT_NONE

while True:
address = input('Podaj nazwę miejsca: ')
if len(address) < 1: break

parms = dict()
parms = address
parms = 'geojson'
parms = 1
parms = 'pl'

url = serviceurl + urllib.parse.urlencode(parms)

print('Pobieranie', url)
uh = urllib.request.urlopen(url, context=ctx)
data = uh.read().decode()
print('Pobrano:', len(data))

try:
js = json.loads(data)
except:
js = None

if not js or 'features' not in js or len(js) == 0:
print('==== Błąd pobierania ====')
print(data)
continue

location = js

if re.search("Stany Zjednoczone$", location):
elements = location.split(", ")
if not re.search("", elements): # Ann Arbor, MI
state = elements
else:
state = elements # Washington, WI
print(state)
else:
print(location)

------------------------------------------------------------------------
mniej..

BESTSELLERY

Kategorie: