- Jaki będzie rezultat wykonania poniższych fragmentów kodu?
v = 1 def foo(): v = 2 print v print v foo() print v
v = 1 def foo(): global v v = 2 print v print v foo() print v
- Przepisz poniższy program tak, aby uniknąć użycia zmiennych globalnych (zachowaj sposób wyliczania wyniku taki jak w funkcji f).
a = 2 b = 5 c = 0 def f(): global c for i in range(b): c += i ** a f() print c
- Jaki będzie rezultat wykonania poniższych fragmentów kodu?
for i in range(4): print '+' print i
i = 0 l = [i for i in range(4)] print i
i = 4 print i for i in range(i): print i print i
- Otwórz IPythona. Zadeklaruj następujące zmienne:
l = [1,2,3] t = (1,2,3) s = 'napis' ls = ['n','a','p','i','s']
spróbuj podmienić element 2 na 5 w zmiennych l i t oraz literę ‘a’ na ‘z’ w zmiennych s oraz ls.
- Jaki będzie rezultat wykonania poniższych fragmentów kodu?
def foo(l): print 'otrzymano: ' , l # dodaj elementy l.append('elem') print 'po dodaniu: ' , l l = [1,2,3] print 'przed wywołaniem foo: ' , l foo(l) print 'po wywołaniu: ' , l
def foo(l): print 'otrzymano: ' , l # zmień referencję l = ['a','b','c'] print 'po zmianie: ' , l l = [1,2,3] print 'przed wywołaniem foo: ' , l foo(l) print 'po wywołaniu: ' , l
def foo(v): print 'otrzymano: ' , v # zmień referencję v = 'a' print 'po zmianie: ' , v v = 1 print 'przed wywołaniem foo: ' , v foo(v) print 'po wywołaniu: ' , v
- Jaki będzie rezultat wykonania poniższych fragmentów kodu?
4 == 2**2
4 is 2**2
1000 == 10**3
1000 is 10**3
[] is []
[] == []
a = [1,2,3] b = a b is a b == a
a = [1,2,3] b = a[:] b is a b == a
- Napisz funkcję dodaj_wiersz(m), która dla macierzy m w postaci listy list wymiaru k x l doda na końcu macierzy wiersz składający się z l zer. Funkcja dodaj_wiersz musi przejść poniższe testy:
>>> m = [[0, 0], [0, 0]] >>> dodaj_wiersz(m) [[0, 0], [0, 0], [0, 0]] >>> n = [[3, 2, 5], [1, 4, 7]] >>> dodaj_wiersz(n) [[3, 2, 5], [1, 4, 7], [0, 0, 0]] >>> n [[3, 2, 5], [1, 4, 7]]
- Napisz funkcję dodaj_kolumne(m), która dla macierzy m w postaci listy list wymiaru k x l doda na końcu każdego wiersza macierzy m 0. Funkcja dodaj_kolumnę musi przejść poniższe testy:
>>> m = [[0, 0], [0, 0]] >>> dodaj_kolumne(m) [[0, 0, 0], [0, 0, 0]] >>> n = [[3, 2, 5], [1, 4, 7]] >>> dodaj_kolumne(n) [[3, 2, 5, 0], [1, 4, 7, 0]] >>> n [[3, 2, 5], [1, 4, 7]]
- Jaki będzie rezultat wykonania poniższych fragmentów kodu?
y=42 def f(x): global y x+=y y+=x+y return x print f(y), y
m=[1,2,3] def g(l): global m if len(l)<=1: return l else: m[0]+=1 l[1]=m return l+g(l[:-1]) print g([7,8,9]), m
- (★) Napisz domknięcie, które dla dowolnej funkcji przed jej wywołaniem wyświetli argumenty wywołania tej funkcji.