Dersler

View on GitHub

EEM-241 İleri Düzey Programlama

2024-2025 Güz Dönemi

Ders 8 - Python Programlama

tuple (demet)

a=["muz","elma","armut","karpuz","kiraz"]
type(a)
    list
a=("muz","elma","armut","karpuz","kiraz")
type(a)
    tuple
a[0],a[-1],a[2:4],a[::-1]
('muz',
     'kiraz',
     ('armut', 'karpuz'),
     ('kiraz', 'karpuz', 'armut', 'elma', 'muz'))
a[0]="Muz"
    ---------------------------------------------------------------------------

    TypeError                                 Traceback (most recent call last)

    D:\Temps\Temp\ipykernel_3656\1863777897.py in <cell line: 1>()
    ----> 1 a[0]="Muz"
    

    TypeError: 'tuple' object does not support item assignment
type(a)
    tuple
a_list = list(a)
a_list
    ['muz', 'elma', 'armut', 'karpuz', 'kiraz']
a_list[0]="Muz"
a=tuple(a_list)
a
    ('Muz', 'elma', 'armut', 'karpuz', 'kiraz

’)

a=(3,2,1,5,3)
len(a), sum(a),max(a),min(a)

    (5, 14, 5, 1)
a=(1,2,"metin",5.0,True, [1,2,3])
a
    (1, 2, 'metin', 5.0, True, [1, 2, 3])
for i in a:
    print(f"{i} türü:{type(i)}")
    1 türü:<class 'int'>
    2 türü:<class 'int'>
    metin türü:<class 'str'>
    5.0 türü:<class 'float'>
    True türü:<class 'bool'>
    [1, 2, 3] türü:<class 'list'>

in kullanımı

metin="abc"
"a" in metin
    True
liste=[1,2,3,4,5]
3 in liste
    True
tpl=(1,2,3,4,5)
3 in liste
    True
tpl=(1,2,3,4,5)
3 not in liste
    False
a=(1,2,"metin",5.0,True, [1,2,3],"abc","xyzwq",1,"def")
for eleman in a:
    if type(eleman)==str and "e" in eleman:
        print(eleman)
    metin
    def
# a tuple ının 7 elemanının son harfine nasıl ulaşırım.
a[7][-1]
    'q

a="bir metin"
type(a)
    str
a=tuple(a)
a
    ('b', 'i', 'r', ' ', 'm', 'e', 't', 'i', 'n')
a="bir metin"
a=list(a)
a
    ['b', 'i', 'r', ' ', 'm', 'e', 't', 'i', 'n']
b=""
for karakter in a:
    b += karakter
b
    'bir metin

"--".join(a), "".join(a)
    ('b--i--r-- --m--e--t--i--n', 'bir metin')
x = 1,2,3
type(x)
    tuple
x=1,
type(x)
    tuple
x = 8,2,4
a,b,c = x
a,c
    (8, 4)
x= 1, 2, 4, 9, 1, 5
a,b=x

    ---------------------------------------------------------------------------

    ValueError                                Traceback (most recent call last)

    D:\Temps\Temp\ipykernel_3656\4102615415.py in <cell line: 1>()
    ----> 1 a,b=x
    

    ValueError: too many values to unpack (expected 2)
a,*c,b=x
x,a,b,c
    ((1, 2, 4, 9, 1, 5), 1, 5, [2, 4, 9, 1

])

x
    (1, 2, 4, 9, 1, 5

)

a,*c,b,d=x
a,b,d,c
    (1, 1, 5, [2, 4, 9])
x
    (1, 2, 4, 9, 1, 5

)

x.count(1),x.index(9)
    (2, 3

)

a=[4,2,1,2,3,4,5]
b=tuple(i**2 for i in a)
b
    (16, 4, 1, 4, 9, 16, 25)
# b tuple cift elemanlarında yeni bir tuple elde edelim.
c=tuple(i for i in b if i%2==0)
c
    (16, 4, 4, 16

)

set (küme)

a={1,2,3,4,5}
type(a),a
    (set, {1, 2, 3, 4, 5

})

a={1,2,3,4,5,1,4}
a
    {1, 2, 3, 4, 5

}

b={2,3,9,8,4}
a-b
    {1, 5

}

a.union(b), a.intersection(b)
    ({1, 2, 3, 4, 5, 8, 9}, {2, 3, 4

})

a=set()
a.add(1)
a.add(2)
a.add(1)
a
    {1, 2

}

a.remove(1)
a
    {2

}

a={"a",1,1.0,2,7,"abc",1}
a
    {1, 2, 7, 'a', 'abc

’}

a[0]
    ---------------------------------------------------------------------------

    TypeError                                 Traceback (most recent call last)

    D:\Temps\Temp\ipykernel_3656\1109539928.py in <cell line: 1>()
    ----> 1 a[0]
    

    TypeError: 'set' object is not subscriptable
x={i**2 for i in range(5)}
x
    {0, 1, 4, 9, 16}

Dictionary (Sözlük)

# sozlukte anahtar:deger seklinde veriler olur
a={"isim":"ali", "numara":123, "bolum":"eem"}
a
    {'isim': 'ali', 'numara': 123, 'bolum': 'eem

’}

a["bolum"],a["isim"]
    ('eem', 'ali

’)

a[0]
    ---------------------------------------------------------------------------

    KeyError                                  Traceback (most recent call last)

    D:\Temps\Temp\ipykernel_3656\1109539928.py in <cell line: 1>()
    ----> 1 a[0]
    

    KeyError: 0
a={"isim":"ali", "numara":123, "bolum":"eem",1:100}
a
    {'isim': 'ali', 'numara': 123, 'bolum': 'eem', 1: 100

}

a[1]
    100
a["ders"]="Programlama"
a["not"]=55
a
  {'isim': 'ali',
     'numara': 123,
     'bolum': 'eem',
     1: 100,
     'ders': 'Programlama',
     'not': 55}
a[0]=500
a
    {'isim': 'ali',
     'numara': 123,
     'bolum': 'eem',
     1: 100,
     'ders': 'Programlama',
     'not': 55,
     0: 500}
# a sozluğündeki eem'nin ortadaki harfine ulaşmak için:
a["bolum"][1]
    'e

a.values()
    dict_values(['ali', 123, 'eem', 100, 'Programlama', 55, 500])
a.keys()
    dict_keys(['isim', 'numara', 'bolum', 1, 'ders', 'not', 0

])

list(a.keys())[2][-1]
    'm'
a.items()
    dict_items([('isim', 'ali'), ('numara', 123), ('bolum', 'eem'), (1, 100), ('ders', 'Programlama'), ('not', 55), (0, 500)])
x,y=(1,2)
y
    2
for key,value in a.items():
    print(f"{key}: {value}")
    isim: ali
    numara: 123
    bolum: eem
    1: 100
    ders: Programlama
    not: 55
    0: 500
for x in a:
    print(x)
    isim
    numara
    bolum
    1
    ders
    not
    0
for x in a:
    print(a[x])
    ali
    123
    eem
    100
    Programlama
    55
    500
aile={
    "baba":{"isim":"ali", "yas":40, "meslek":"öğretmen"},
    "anne":{"isim":"ayşe","yas":35,"meslek":"memur"},
    "cocuk":{"isim":"mehmet","yas":10}
}
aile
    {'baba': {'isim': 'ali', 'yas': 40, 'meslek': 'öğretmen'},
     'anne': {'isim': 'ayşe', 'yas': 35, 'meslek': 'memur'},
     'cocuk': {'isim': 'mehmet', 'yas': 10}}
aile["cocuk"]["isim"]
    'mehmet'
aile["cocuk"]["meslek"]="Öğrenci"
aile
    {'baba': {'isim': 'ali', 'yas': 40, 'meslek': 'öğretmen'},
     'anne': {'isim': 'ayşe', 'yas': 35, 'meslek': 'memur'},
     'cocuk': {'isim': 'mehmet', 'yas': 10, 'meslek': 'Öğrenci'}}
for kisi in aile:
    print(aile[kisi]["isim"])
    ali
    ayşe
    mehmet
for bilgi in aile.values():
    print(bilgi["isim"])
    ali
    ayşe
    mehmet
x={1,2,3}
type(x)
    set
x={1:2}
type(x)
    dict
x=set()
# sayılar ve kareleri

sayilar_ve_kareleri = {}
for i in range(1,10):
    sayilar_ve_kareleri[i]=i**2
sayilar_ve_kareleri
    {1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81

}

metin="abcdeabddfaaabcbdbddeebdac"

harf_sayilari = dict() # {} yapabilirdik

for harf in metin:
    if harf not in harf_sayilari:
        harf_sayilari[harf]=1
    else:
        harf_sayilari[harf] += 1
harf_sayilari
    {'a': 6, 'b': 6, 'c': 3, 'd': 7, 'e': 3, 'f': 1}
for harf, sayi in harf_sayilari.items():
    print(f"{harf} harfinden {sayi} tane var")
    a harfinden 6 tane var
    b harfinden 6 tane var
    c harfinden 3 tane var
    d harfinden 7 tane var
    e harfinden 3 tane var
    f harfinden 1 tane var
for harf in harf_sayilari:
    print(f"{harf} harfinden {harf_sayilari[harf]} tane var")
    a harfinden 6 tane var
    b harfinden 6 tane var
    c harfinden 3 tane var
    d harfinden 7 tane var
    e harfinden 3 tane var
    f harfinden 1 tane var

Türlerin bool karşılıkları

bool(1),bool(0),bool(-1),bool([0]),bool([]),bool(""),bool("0")

    (True, False, True, True, False, False, True)

any all

a=[True, True,False]
all(a), any(a)
    (False, True)
a=[1,2,1,4,2,0,1,2,3]
all(a)
    False
sifir_var=False
for sayi in a:
    if sayi==0:
        sifir_var=True
        break
sifir_var

    True
if all(a):
    print("listenin icinde 0 yok")
else:
    print("listenin icinde 0 var")
    True
a=[1,2,1,4,2,0,1,6,2,3]
if any([i>5 for i in x]):
    print("listede 5'ten büyük en az 1 sayı var")
    [False, False, False, False, False, False, False, True, False, False]

enumerate

a="bu bir metindir."
i=0
for kar in a:
    print(f"{i}:{kar}", end=" ")
    i += 1
    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:. 
for i, kar in enumerate(a):
    print(f"{i}:{kar}", 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, start=1))
    [(1, 'b'),
     (2, 'u'),
     (3, ' '),
     (4, 'b'),
     (5, 'i'),
     (6, 'r'),
     (7, ' '),
     (8, 'm'),
     (9, 'e'),
     (10, 't'),
     (11, 'i'),
     (12, 'n'),
     (13, 'd'),
     (14, 'i'),
     (15, 'r'),
     (16, '.')]
a=[1,4,3,2,1]
b=[3,2,2,3,4]
c=[]
for i in range(len(a)):
    c.append(a[i]+b[i])
c
    [4, 6, 5, 5, 5]
i=0
c=[]
for sayi in a:
    c.append(sayi+b[i])
    i+=1
c
    [4, 6, 5, 5, 5]
c=[]
for i, sayi in enumerate(a):
    c.append(sayi+b[i]) 
c
    [4, 6, 5, 5, 5]

zip fonksiyonu

c=[]
for i,j in zip(a,b):
    c.append(i+j) 
c
    [4, 6, 5, 5, 5]
[i+j for i,j in zip(a,b)]
print(a)
print(b)
    [1, 4, 3, 2, 1]
    [3, 2, 2, 3, 4]
list(zip(a,b))
    [(1, 3), (4, 2), (3, 2), (2, 3), (1, 4)]
x,y = (1, 3)
y
    3
#a ve b listesinin elemanlarını kullanarak bir sozluk yapalım
a=[1, 4, 3, 2, 7]
b=[3, 2, 2, 3, 4]
c=dict()
for i,j in zip(a,b):
    c[i]=j
c
    {1: 3, 4: 2, 3: 2, 2: 3, 7: 4}
{i:j for i,j in zip(a,b)}
    {1: 3, 4: 2, 3: 2, 2: 3, 7: 4}
{x[0]:x[1] for x in zip(a,b)}
    {1: 3, 4: 2, 3: 2, 2: 3, 7: 4}
kisiler=["mehmet","ali","ahmet","ayşe"]
sehirler = ["isparta","burdur","antalya","denizli"]
i=0
for i in range(len(kisiler)):
    print(f"{kisiler[i]}: {sehirler[i]}")
    mehmet: isparta
    ali: burdur
    ahmet: antalya
    ayşe: denizli
for i, kisi in enumerate(kisiler):
    print(f"{kisi}: {sehirler[i]}")
    mehmet: isparta
    ali: burdur
    ahmet: antalya
    ayşe: denizli
for kisi, sehir in zip(kisiler,sehirler):
    print(f"{kisi}: {sehir}")
    mehmet: isparta
    ali: burdur
    ahmet: antalya
    ayşe: denizli

kutuphanelerden fonksiyon kullanma

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.sin)
    Help on built-in function sin in module math:
    
    sin(x, /)
        Return the sine of x (measured in radians).
    
    


math.e, math.pi
    (2.718281828459045, 3.141592653589793)
math.sqrt(16)
    4.0
from math import pi
pi
    3.141592653589793
import math as matematik
matematik.pi
    3.141592653589793
from math import pi as pi_sayisi
pi_sayisi
    3.141592653589793
from math import pi as pi_sayisi, e as e_sayisi
from math import sin,pi, radians
for derece in range(0,360,30):
    # derece_rad = (derece/180)*pi
    derece_rad = radians(derece)

    print(f"{derece:3} : {sin(derece_rad):.2f}")
      0 : 0.00
     30 : 0.50
     60 : 0.87
     90 : 1.00
    120 : 0.87
    150 : 0.50
    180 : 0.00
    210 : -0.50
    240 : -0.87
    270 : -1.00
    300 : -0.87
    330 : -0.50
from math import gcd as ebob
ebob(21,14)
    7
import math
math.factorial(100)
    93326215443944152681699238856266700490715968264381621468592963895217599993229915608941463976156518286253697920827223758251185210916864000000000000000000000000

fonksiyonlar

def topla(a,b,c):
    return a+b+c
topla(1,2,3)
    6
def topla(a,b,c):
    toplam = a+b+c
    return toplam
topla(1,2,3)
    6
def topla(a,b,c):
    parametreler = (a,b,c)
    toplam = 0
    for parametre in parametreler:
        if type(parametre)==int or type(parametre)==float:
            toplam += parametre
        else:
            print(f"{c} sayı değil")
    
    return toplam
topla(5,2,"3")
    3 sayı değil
    




    7
def topla(a,b,c):
    return a+b+c
topla(1,2)
    ---------------------------------------------------------------------------
    

    TypeError                                 Traceback (most recent call last)
    

    D:\Temps\Temp\ipykernel_14060\336.py in <cell line: 3>()
    

          1 def topla(a,b,c):
    

          2     return a+b+c
    

    ----> 3 topla(1,2)
    

    
    

    TypeError: topla() missing 1 required positional argument: 'c'
def topla(a,b=0,c=0):
    toplam = a+b+c
    return toplam
topla(1)
    1
def topla(a,b,*args):
    print(args)
topla(1,2,9,2,3,4,5)
    (9, 2, 3, 4, 5)
def topla(a,b,*args):
    toplam = a+b

    for arg in args:
        toplam += arg

    return toplam
topla(1,2,3,1,3,1,2,3,4,5,6,4,1)
    36
import math
def uzaklik(a:tuple, b:tuple)->float:
    """ birinci parametre x1,y1 şeklinde bir noktanın koordinatları olmalı,
    ikinci parametre x2,y2 şeklinde bir noktanın koordinatları olmalı,
    fonksiyon girilen noktalar arasındaki uzaklığı döndürür.
    """
    x1,y1 = a
    x2,y2 = b
    uzaklik = math.sqrt((x1-x2)**2+(y1-y2)**2)
    return uzaklik

uzaklik((1,1),(4,5))

    5.0
help(uzaklik)
    Help on function uzaklik in module __main__:
    
    uzaklik(a: tuple, b: tuple) -> float
        birinci parametre x1,y1 şeklinde bir noktanın koordinatları olmalı,
        ikinci parametre x2,y2 şeklinde bir noktanın koordinatları olmalı,
        fonksiyon girilen noktalar arasındaki uzaklığı döndürür.
    
    

lambda

a=lambda x: x+2
a(2)
    4
topla=lambda x,y:x+y
topla(1,4)
    5
tuple_topla = lambda x: x[0]+x[1]
a=(4,5)
tuple_topla(a)
    9
a=[(3,2),(1,4),(5,1)]
a
    [(3, 2), (1, 4), (5, 1)]
a.sort()
a
    [(1, 4), (3, 2), (5, 1)]
a.sort(key=lambda x:x[1])
a
    [(5, 1), (3, 2), (1, 4)]

karmaşık sayılar

a=3+5j
type(a)
    complex
b=5+7j
a+b
    (8+12j)
dir(a)
    ['__abs__',
     '__add__',
     '__bool__',
     '__class__',
     '__delattr__',
     '__dir__',
     '__divmod__',
     '__doc__',
     '__eq__',
     '__float__',
     '__floordiv__',
     '__format__',
     '__ge__',
     '__getattribute__',
     '__getnewargs__',
     '__gt__',
     '__hash__',
     '__init__',
     '__init_subclass__',
     '__int__',
     '__le__',
     '__lt__',
     '__mod__',
     '__mul__',
     '__ne__',
     '__neg__',
     '__new__',
     '__pos__',
     '__pow__',
     '__radd__',
     '__rdivmod__',
     '__reduce__',
     '__reduce_ex__',
     '__repr__',
     '__rfloordiv__',
     '__rmod__',
     '__rmul__',
     '__rpow__',
     '__rsub__',
     '__rtruediv__',
     '__setattr__',
     '__sizeof__',
     '__str__',
     '__sub__',
     '__subclasshook__',
     '__truediv__',
     'conjugate',
     'imag',
     'real']
a.conjugate(),a.real, a.imag
    ((3-5j), 3.0, 5.0)
a=3+4j
abs(a)
    5.0
import cmath
dir(cmath)
    ['__doc__',
     '__loader__',
     '__name__',
     '__package__',
     '__spec__',
     'acos',
     'acosh',
     'asin',
     'asinh',
     'atan',
     'atanh',
     'cos',
     'cosh',
     'e',
     'exp',
     'inf',
     'infj',
     'isclose',
     'isfinite',
     'isinf',
     'isnan',
     'log',
     'log10',
     'nan',
     'nanj',
     'phase',
     'pi',
     'polar',
     'rect',
     'sin',
     'sinh',
     'sqrt',
     'tan',
     'tanh',
     'tau']
a=3+4j
b=5+12j
a+b,a-b,a*b,a/b
    ((8+16j), (-2-8j), (-33+56j), (0.37278106508875736-0.09467455621301774j))
r=abs(a)
aci=cmath.phase(a)
aci_derece = (aci / cmath.pi)*180
r,aci_derece
    (5.0, 53.13010235415597)
def kartezyene_cevir(kutupsal_kar_sayi):
    r, theta = kutupsal_kar_sayi
    theta_rad=(theta/180)*cmath.pi
    return cmath.rect(r, theta_rad)
def kutupsala_cevir(z):
    r, theta= cmath.polar(z)
    theta_derece=(theta/cmath.pi)*180
    return (r, theta_derece)
x=kutupsala_cevir(3+4j + kartezyene_cevir((5.0, 53.13010235415597)))
x
    (10.0, 53.13010235415597)