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)