Przykładowe zadania i rozwiązania, poradniki w języku Python 3.7.3!
Nie jesteś zalogowany na forum.
Strony: 1
Zadanie 1 (1 pkt) Korzystając z Python comprehensions wygeneruj listę 10 krotek postaci (0,1),(1,2),(2,3) itd.
def zad1():
# klasycznie
lista = []
for i in range(10):
lista.append((i,i+1))
# python comprehension
lista = [(i, i+1) for i in range(10)]
return lista
print(zad1())
print(len(zad1()))
# Zadanie 2 (1 pkt) Napisz funkcję, która przyjmuje tekst jako parametr wejściowy. Funkcja zapisuje wyrazy rozpoczynające się z małych liter do jednej listy a te rozpoczynające się z wielkich liter do drugiej listy. Wyświetl te listy.
def zad2(tekst):
wyrazy = tekst.split(" ")
print(wyrazy)
male = []
duze = []
for wyraz in wyrazy:
if wyraz[0].islower():
male.append(wyraz)
elif wyraz[0].isupper():
duze.append(wyraz)
# lub python comprehension
male = [wyraz for wyraz in wyrazy if wyraz[0].islower()]
print(male)
print(duze)
print(zad2("Ala ma kota."))
# Zadanie 3 (1 pkt) Napisz funkcję, która przyjmuje „n” oraz „symbol” jako parametr wejściowy. Funkcja wypisuje na wyjściu X w poniższej formie na podstawie podanych parametrów. Np. (n=3, symbol=”O”). Funkcja działa tylko wtedy gdy „n” jest nieparzyste.
O_O
_O_
O_O
def zad3(n, symbol='O'):
if n % 2 == 0:
return
czesc1 = [symbol + '_'*i + symbol for i in range(n-2, 0, -2)]
for i in czesc1:
print(i)
print('_O_')
czesc1.reverse()
for i in czesc1:
print(i)
print(zad3(4))
# Zadanie 4 (1 pkt) Napisz funkcję, która z klawiatury przyjmuje wartości postaci: indeks_studenta:punkty, np.
123456:10 a następnie zapisuje te dane do słownika dodając punkty do siebie jeżeli taki indeks już w słowniku istnieje. Funkcja kończy działanie po wpisaniu STOP zamiast indeks_studenta:punkty.
def zad4():
slownik = {}
while True:
wejscie = input("Podaj wartoĹci postaci indeks:punkty lub koniec aby zakoĹczyÄ\n")
if wejscie == 'koniec':
break
rekord = wejscie.split(":")
if rekord[0] in slownik.keys():
slownik[rekord[0]] += int(rekord[1])
else:
slownik[rekord[0]] = int(rekord[1])
# slownik.update({rekord[0]: int(rekord[1])})
return slownik
Zadanie 5 (2 pkt) Pobierz plik z http://wmii.uwm.edu.pl/~kropiak/wd/zamowienia_50.csv i napisz funkcję, która
wczyta plik (zobacz, że pierwszy wiersz to etykiety kolumn) i policzy sumę zamówień dla poszczególnych państw.
def zad5():
# 1 wczytujemy plik
with open("zamowienia_50.csv") as plik:
dane = plik.readlines()
print(dane)
# 2 podzeliÄ wiersz
dane = dane[1:]
print(dane)
sumy = {}
for wiersz in dane:
wartosci = wiersz.split(';')
if wartosci[0] in sumy.keys():
sumy[wartosci[0]] += float(wartosci[2].rstrip('\n'))
else:
sumy[wartosci[0]] = float(wartosci[2].rstrip('\n'))
print(sumy)
print(zad5())
Zadanie 8 (2 pkt)
Napisz funkcję, która przyjmuje tekst jako parametr wejściowy. Funkcja wypisuje na wyjściu tekst
otoczony w ramką postaci:
##################################
# Podany tekst. #
# #
##################################
Żeby nie było zbyt łatwo to są dodatkowe warunki:
- tekst ma być dzielony na linie o długości max. 80 znaków (razem ze znakiem # oraz spacją po # w
linii i przed # w linii),
- tekst nie może być podzielony w połowie wyrazu
tekst = """This paper reports empirical evidence that a neural networks model is applicable to the
statistically reliable prediction of foreign exchange rates. Time series data and technical
indicators such as moving average, are fed to neural nets to capture the underlying ârulesâ of the
movement in currency exchange rates. The trained recurrent neural networks forecast the
exchange rates between American Dollar and four other major currencies, Japanese Yen, Swiss
Frank, British Pound and EURO. Various statistical estimates of forecast quality have been
carried out. Obtained results show, that neural networks are able to give forecast with coefficient
of multiple determination not worse then 0.65. Linear and nonlinear statistical data
preprocessing, such as Kolmogorov-Smirnov test and Hurst exponents for each currency were
calculated and analyzed. """
def zad8(tekst):
wyrazy = tekst.split()
print('#' * 80)
linia = ''
for wyraz in wyrazy:
if len(linia + ' ' + wyraz) > 76:
print('# ' + linia + " " * (80-len(linia)-4) + ' #')
linia = wyraz + ' '
else:
linia += wyraz + ' '
print('#' * 80)
print(zad8(tekst))
Edit by SpeX
Offline
Strony: 1