Online konzol: https://repl.it/ Google tananyag: https://developers.google.com/edu/python ==== Feladatok ==== 1.) Írjon kódot amely bekér egy fájlnevet és kiírja a kiterjesztését 2.) Kérje be egy kör sugarát és számítsa ki a területét és írassa ki 2 tizedesjegy pontossággal. 3.) Kérjen be egy számjegyet (n) és képezze az n + nn + nnn számot. Pl. n = 6 -> 738 4.) Készítsen egy foo() függvényt minta dokumentációval és írassa ki azt. 5.) Írjon programot, amely két megadott pont közötti távolságot számítja a síkban: p1[1,2] p2[3,4] 6.) Készítsen egy listát 10 elemmel, ahol minden elem négyzetszám és írja ki az 3. elemtől: eredeti lista: [1,2,9,16,25,36... eredmény: 9,16,25 7.) Adott a és b lista, írassa ki a közös elemeket: a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89], b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] 8.) Kérjen be egy mondatot a felhasználótól és írja ki szavanként visszafelé: pl. aa bb cc --> cc bb aa 9.) Készítsen függvény dekorátort, amely hívás előtt és után kiírja a 'before' és 'after' szavakat 10.) Készítsünk egy cache dekorátort, amely paraméterben adott ideig tárolja egy függvény visszatérő értékét További Python feladatok és megoldások (angol): https://github.com/zhiwehu/Python-programming-exercises/blob/master/100%2B%20Python%20challenging%20programming%20exercises.txt ==== Minta megoldás ==== 1.) filename = input("Input filename: ") splitted = filename.split(".") print ("here you are the extension of the file: %s" % splitted[-1]) 2.) from math import pi r = float(input ("Radius : ")) print("r = %0.2f, area = %0.2f" % (r, pi * r**2)) 3.) a = int(input("type an integer: ")) n1 = int("%s" % a) n2 = int("%s%s" % (a,a)) n3 = int("%s%s%s" % (a,a,a)) print(n1+n2+n3) 4.) def foo(): """ Documentation for foo() function. No return value and args """ print(foo.__doc__) 5.a) import math p1 = [1, 2] p2 = [3, 4] distance = math.sqrt( ((p1[0]-p2[0])**2)+((p1[1]-p2[1])**2) ) print(distance) 5.b) from collections import namedtuple import math Point = namedtuple('Point', ['x', 'y']) p1 = Point(0,0) p2 = Point(x=2,y=3) dist = math.sqrt((p1.x - p2.x) ** 2 + (p1.y - p2.y) ** 2) print(dist) 6.) l = list() for i in range(1,11): l.append(i**2) print(l[3:]) "list comprehension"-el rövidebb: k = [ i ** 2 for i in range(1,11) ] print(k[3:]) 7.) a = [1, 1, 2, 3, 5, 8, 13, 21, 34, 55, 89] b = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13] c = set(a).intersection(b) print(set(x for x in a if x in b)) print(c) 8.) s = input('Sentence :') l = s.split(' ') r = [item for item in l[::-1]] print(' '.join(r)) 9.) def logger(f): def decorator(): print('before') f() print('after') return decorator @logger def my_func(): print("my_func") my_func() 10.) import time current_time_millis = lambda: int(round(time.time() * 1000)) def cache(expiration_time): def cache_decorator(f): memo = {} def helper(x): if x not in memo: memo[x] = {'value':f(x), 'time': current_time_millis()} else: if current_time_millis() - memo[x]['time'] > expiration_time: memo[x] = {'value':f(x), 'time': current_time_millis()} else: print("from cache: %s" % memo[x]['value']) return memo[x] return helper return cache_decorator @cache(5000) def long_calc(val): print(val) return val long_calc(12) time.sleep(6) long_calc(12) long_calc(12) long_calc(10)