EEM-251 İleri Düzey Programlama
2022-2023 Güz Dönemi Ders 12
Python programlama
any ve all fonksiyonlari
# any all
a=[True, False, False]
any(a)
True
# any all
a=[False, False, False]
any(a)
False
x=[1,2,3,4,5,6,7,9,0,1,2,3,4,5,6,7,9]
# x listesinde 0 var mı?
var_mi=False
for i in x:
if i==0:
var_mi=True
if var_mi:
print("listede 0 var")
else:
print("listede 0 yok")
listede 0 var
all([True, True, True]),all([True, True, False]), all([1,1,1]),all([1,1,0])
(True, False, True, False)
bool(0),bool(-1)
(False, True)
if not all(x):
print("listede 0 var")
else:
print("listede 0 yok")
listede 0 var
### enumerate
a="bu bir metindir."
# a stringinde bulunan her bir karakterin kaçinci
# indexte olduğunu yazdıralım
for i in range(len(a)):
print(f"{i}:{a[i]}", end=" ")
0:b 1:u 2: 3:b 4:i 5:r 6: 7:m 8:e 9:t 10:i 11:n 12:d 13:i 14:r 15:.
list(enumerate(a))
[(0, 'b'), (1, 'u'), (2, ' '), (3, 'b'), (4, 'i'), (5, 'r'), (6, ' '), (7, 'm'), (8, 'e'), (9, 't'), (10, 'i'), (11, 'n'), (12, 'd'), (13, 'i'), (14, 'r'), (15, '.')]
a="bu baska bir metindir."
# a stringinde bulunan her bir karakterin kaçinci
# indexte olduğunu yazdıralım
for i, kar in enumerate(a):
print(f"{i}:{kar}", end=" ")
0:b 1:u 2: 3:b 4:a 5:s 6:k 7:a 8: 9:b 10:i 11:r 12: 13:m 14:e 15:t 16:i 17:n 18:d 19:i 20:r 21:.
a="bu baska bir metindir."
for i, kar in enumerate(a,start=1):
print(f"{i}:{kar}", end=" ")
1:b 2:u 3: 4:b 5:a 6:s 7:k 8:a 9: 10:b 11:i 12:r 13: 14:m 15:e 16:t 17:i 18:n 19:d 20:i 21:r 22:.
lst=[5,6,2,8,1,2,3,4,5]
# a stringinde bulunan her bir karakterin kaçinci
# indexte olduğunu yazdıralım
for i, item in enumerate(lst,start=1):
print(f"{i}:{item}", end=" ")
1:5 2:6 3:2 4:8 5:1 6:2 7:3 8:4 9:5
zip fonksiyonu
a=(1,5,3,2,5)
b=("abc","def","ghi","xyz",123)
list(zip(a,b))
[(1, 'abc'), (5, 'def'), (3, 'ghi'), (2, 'xyz'), (5, 123)]
for i, j in zip(a,b):
print(i,j,end=" ")
1 abc 5 def 3 ghi 2 xyz 5 123
#iki vektör toplamı
a=[1,5,3,7,1]
b=[4,2,1,4,6]
toplam=[]
for i in range(len(a)):
toplam.append(a[i]+b[i])
toplam
[5, 7, 4, 11, 7]
#iki vektör toplamı
a=[1,5,3,7,1]
b=[4,2,1,4,6]
toplam=[]
i=0
for x in a:
toplam.append(x+b[i])
i+=1
toplam
[5, 7, 4, 11, 7]
#iki vektör toplamı
a=[1,5,3,7,1]
b=[4,2,1,4,6]
toplam=[]
for i,x in enumerate(a):
toplam.append(x+b[i])
toplam
[5, 7, 4, 11, 7]
#iki vektör toplamı
a=[1,5,3,7,1]
b=[4,2,1,4,6]
toplam=[]
for x,y in zip(a,b):
toplam.append(x+y)
toplam
[5, 7, 4, 11, 7]
#a ve bnin elemanlarından bir sözlük yapalım
a=[1,5,3,7,9]
b=[4,2,1,4,6]
c=dict()
for x,y in zip(a,b):
c[x]=y
c
{1: 4, 5: 2, 3: 1, 7: 4, 9: 6}
{x:y for x,y in zip(a,b)}
{1: 4, 5: 2, 3: 1, 7: 4, 9: 6}
kisiler=["ali","mehmet","ayse","zeynep"]
sehirler=["isparta","antalya","burdur","afyon"]
for numara, (kisi, sehir) in enumerate(zip(kisiler, sehirler),start=1):
print(f"{numara}: {kisi} - {sehir}")
1: ali - isparta 2: mehmet - antalya 3: ayse - burdur 4: zeynep - afyon
#enumerate ve zip olmadan
kisiler=["ali","mehmet","ayse","zeynep"]
sehirler=["isparta","antalya","burdur","afyon"]
i=0
for kisi in kisiler:
print(f"{i+1}: {kisi} - {sehirler[i]}")
i+=1
1: ali - isparta 2: mehmet - antalya 3: ayse - burdur 4: zeynep - afyon
#enumerate ve zip olmadan
kisiler=["ali","mehmet","ayse","zeynep"]
sehirler=["isparta","antalya","burdur","afyon"]
for i in range(len(kisiler)):
print(f"{i+1}: {kisiler[i]} - {sehirler[i]}")
1: ali - isparta 2: mehmet - antalya 3: ayse - burdur 4: zeynep - afyon
kütüphane ve kütüphaneden fonksiyon eklemek
import math
dir(math)
['__doc__', '__loader__', '__name__', '__package__', '__spec__', 'acos', 'acosh', 'asin', 'asinh', 'atan', 'atan2', 'atanh', 'ceil', 'comb', 'copysign', 'cos', 'cosh', 'degrees', 'dist', 'e', 'erf', 'erfc', 'exp', 'expm1', 'fabs', 'factorial', 'floor', 'fmod', 'frexp', 'fsum', 'gamma', 'gcd', 'hypot', 'inf', 'isclose', 'isfinite', 'isinf', 'isnan', 'isqrt', 'ldexp', 'lgamma', 'log', 'log10', 'log1p', 'log2', 'modf', 'nan', 'perm', 'pi', 'pow', 'prod', 'radians', 'remainder', 'sin', 'sinh', 'sqrt', 'tan', 'tanh', 'tau', 'trunc']
help(math.radians)
Help on built-in function radians in module math: radians(x, /) Convert angle x from degrees to radians.
help(math.sin)
Help on built-in function sin in module math: sin(x, /) Return the sine of x (measured in radians).
# her 30 derece artan derecelerde sin fonksiyinun degerini görelim
for derece in range(0,361,30):
# print(derece, end=" ")
print(f"sin({derece}) = {math.sin(math.radians(derece))}")
sin(0) = 0.0 sin(30) = 0.49999999999999994 sin(60) = 0.8660254037844386 sin(90) = 1.0 sin(120) = 0.8660254037844387 sin(150) = 0.49999999999999994 sin(180) = 1.2246467991473532e-16 sin(210) = -0.5000000000000001 sin(240) = -0.8660254037844385 sin(270) = -1.0 sin(300) = -0.8660254037844386 sin(330) = -0.5000000000000004 sin(360) = -2.4492935982947064e-16
#kutuphaneler veya kutuphanelerden fonskiyon ekleme şekilleri:
import math
math.pi
3.141592653589793
from math import pi
pi
3.141592653589793
from math import pi ,cos
cos(pi)
-1.0
from math import pi as pi_sayisi, cos as cosinus
cosinus(pi_sayisi)
-1.0
import math as matematik
matematik.pi
3.141592653589793
import math
ebob=math.gcd
ebob(21,14)
7
from math import factorial
factorial(100)
93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000
Fonksiyonlar
def topla(a,b,c):
return a+b+c
topla(1,5,7)
13
def topla(a,b,c):
toplam=a+b+c
return toplam
topla(1,5,7)
13
def topla(a,b,c):
parametreler=(a,b,c)
toplam=0
for i in parametreler:
if type(i)==int or type(i)==float:
toplam+=i
else:
print(f"girilen parametrenin türü yanlis: {i}")
return toplam
topla(1,5,"a")
girilen parametrenin türü yanlis: a 6
def topla(a,b,c=1):
return a+b+c
topla(1,2,3)
6
topla(1,2)
4
topla(a=1,c=5,b=3)
9
def topla(a=1,b=2,c=3):
return a+b+c
topla(10), topla()
(15, 6)
topla(1,2,3,4)
--------------------------------------------------------------------------- TypeError Traceback (most recent call last) Input In [68], in <cell line: 1>() ----> 1 topla(1,2,3,4) TypeError: topla() takes from 0 to 3 positional arguments but 4 were given
def topla(a,b,c,*args):
toplam=a+b+c
# print(args)
for arg in args:
toplam += arg
return toplam
topla(1,2,3,4,5,6,7,8,9,10)
55
topla(1, 1/2, 2**3, math.sin(1))
10.341470984807897
def selamlama(isim, gun=""):
print(f"Merhaba {isim}", end=" ")
if gun:
print(f"bu gün {gun}")
else:
print("")
selamlama("ali", gun="persembe")
Merhaba ali bu gün persembe
#iki nokta arasındaki uzakliği bulan fonksiyon
# def uzaklik(nokta1: tuple, nokta2: tuple)->float:
# yukarıdakı tanımalamada tuple ve float ifadeleri zorunlu ve kısıtlayıcı değil
# sadece bilgilendirme amaçlı
def uzaklik(nokta1: tuple, nokta2: tuple)->float:
""" tuple cinsinden girilen x-y koordinat sistemindeki
iki nokta arasındaki uzaklığı bulan fonkisyon
"""
x_uzaklik=nokta1[0]-nokta2[0]
y_uzaklik=nokta1[1]-nokta2[1]
return math.sqrt(x_uzaklik**2+y_uzaklik**2)
uzaklik((1,1),(4,5))
5.0
help(uzaklik)
Help on function uzaklik in module __main__: uzaklik(nokta1: tuple, nokta2: tuple) -> float tuple cinsinden girilen x-y koordinat sistemindeki iki nokta arasındaki uzaklığı bulan fonkisyon
def topla_kareal_kupal(a,b,*args, **kwargs):
print(args)
print(kwargs)
topla_kareal_kupal(1,2,3,4,5,kare=True,us=5)
(3, 4, 5) {'kare': True, 'us': 5}
def topla_kareal_kupal(a,b,*args, **kwargs):
sonuc=a+b+sum(args)
if "kare" in kwargs and kwargs["kare"]==True:
sonuc = sonuc**2
if "us" in kwargs:
sonuc = sonuc**kwargs["us"]
return sonuc
topla_kareal_kupal(1,2,3,4,5,kare=True,us=3)
11390625
topla_kareal_kupal(1,2,3,4,5,kare=True,us=1)
225
topla_kareal_kupal(1,2,3)
6
lambda fonksiyonu
kare_al = lambda x: x*x
kare_al(5)
25
topla=lambda x, y: x+y
topla(2,3)
5
lst=[(1,5),(2,3),(5,2),(4,1)]
lst
[(1, 5), (2, 3), (5, 2), (4, 1)]
lst.sort()
lst
[(1, 5), (2, 3), (4, 1), (5, 2)]
lst.sort(key=lambda i:i[1] )
lst
[(4, 1), (5, 2), (2, 3), (1, 5)]
map fonksiyonu
def topla2(x):
return x+2
a=[1,2,3,4,5,6]
b=[]
for i in a:
b.append(topla2(i))
b
[3, 4, 5, 6, 7, 8]
list(map(topla2,a))
[3, 4, 5, 6, 7, 8]
list(map(lambda x: x+2, a))
[3, 4, 5, 6, 7, 8]
a=[1,3,5,2,1,3,2]
b=[]
for i in a:
b.append(i**2)
b
[1, 9, 25, 4, 1, 9, 4]
b=[i**2 for i in a]
b
[1, 9, 25, 4, 1, 9, 4]
b=list(map(lambda x:x**2,a))
b
[1, 9, 25, 4, 1, 9, 4]
# a listesinin elemanlari ile b listesinin elemanlarını toplayalım
a=[1,2,3,4]
b=[5,6,7,8]
c=[i+j for i,j in zip(a,b)]
c
[6, 8, 10, 12]
def topla(x):
return x[0]+x[1]
list(map(topla, zip(a,b)))
[6, 8, 10, 12]
list(zip(a,b))
[(1, 5), (2, 6), (3, 7), (4, 8)]
list(map(lambda x:x[0]+x[1] , zip(a,b)))
[6, 8, 10, 12]
list(map(lambda i,j:i+j, a, b))
[6, 8, 10, 12]
lst=("abc","def","ghij")
list(map(list, lst))
[['a', 'b', 'c'], ['d', 'e', 'f'], ['g', 'h', 'i', 'j']]