Dersler

View on GitHub

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']]