Dersler

View on GitHub

EEM-251 İleri Düzey Programlama

2022-2023 Güz Dönemi Ders 11

Python programlama

liste=["muz","elma","armut","kivi","portakal"]
liste
    ['muz', 'elma', 'armut', 'kivi', 'portakal']
len(liste)
    5
liste.sort()
liste
    ['armut', 'elma', 'kivi', 'muz', 'portakal']
liste.sort(reverse=True)
liste
    ['portakal', 'muz', 'kivi', 'elma', 'armut']
liste[0]="Portakal"
liste
    ['Portakal', 'muz', 'kivi', 'elma', 'armut']
liste.sort()
liste
    ['Portakal', 'armut', 'elma', 'kivi', 'muz']
liste.sort(key=str.lower)
liste
    ['armut', 'elma', 'kivi', 'muz', 'Portakal']
liste[2]="Kivi"
liste.sort()
liste
    ['Kivi', 'Portakal', 'armut', 'elma', 'muz']
liste.sort(key=str.lower)
liste
    ['armut', 'elma', 'Kivi', 'muz', 'Portakal']

List Comprehension

list comprehension genel formu:
yeni_liste=[ifade for eleman in iterasyon_yapilabilir_veri if durum]

liste
    ['armut', 'elma', 'Kivi', 'muz', 'Portakal']
liste2=[]
for eleman in liste:
    liste2.append(eleman)
liste2
    ['armut', 'elma', 'Kivi', 'muz', 'Portakal']
liste3 =[eleman for eleman in liste]
liste3
    ['armut', 'elma', 'Kivi', 'muz', 'Portakal']
liste3 =["meyve "+eleman for eleman in liste]
liste3
    ['meyve armut', 'meyve elma', 'meyve Kivi', 'meyve muz', 'meyve Portakal']
liste
    ['armut', 'elma', 'Kivi', 'muz', 'Portakal']
# elma hariç listedeki meyveleri başka bir listeye ekleyelim.
a=[x for x in liste if x !="elma"]
a
    ['armut', 'Kivi', 'muz', 'Portakal']
# kivi hariç listedeki meyveleri başka bir listeye ekleyelim.
a=[x for x in liste if x !="kivi"]
a
    ['armut', 'elma', 'Kivi', 'muz', 'Portakal']
# kivi hariç listedeki meyveleri başka bir listeye ekleyelim.
a=[x for x in liste if x.lower() !="kivi"]
a
    ['armut', 'elma', 'muz', 'Portakal']
#icinde a harfi olan liste elemanlarını başka bir listeye eklemek
a=[i for i in liste if "a" in i]
a
    ['armut', 'elma', 'Portakal']
# listenin elemanlarını büyük harfe çevirip yeni bir liste yapalım
a=[i.upper() for i in liste]
a
    ['ARMUT', 'ELMA', 'KIVI', 'MUZ', 'PORTAKAL']
# listenin elemanları kaç tane ise o kadar "eem" elemanı olan bir liste elde edelim.
a=["eem" for i in liste]
a
    ['eem', 'eem', 'eem', 'eem', 'eem']
liste
    ['armut', 'elma', 'Kivi', 'muz', 'Portakal']
# uzunluğu 4'ten büyük olan liste elemanları
[i for i in liste if len(i)>4]
    ['armut', 'Portakal']
#0'dan 50'ye kadar 5 ve 7'nin katı olan sayıların listesi
[i for i in range(0,50) if i%5==0 or i%7==0]
    [0, 5, 7, 10, 14, 15, 20, 21, 25, 28, 30, 35, 40, 42, 45, 49]
#0'dan 50'ye kadar 3, 5 ve 7'nin katı olmayan sayıların listesi
print([i for i in range(0,50) if not(i%3==0 or i%5==0 or i%7==0)])
    [1, 2, 4, 8, 11, 13, 16, 17, 19, 22, 23, 26, 29, 31, 32, 34, 37, 38, 41, 43, 44, 46, 47]
#1'den n'ye kadar olan sayıların küplerinin listesini elde edilim.
n=10
[i**3 for i in range(1,10)]
    [1, 8, 27, 64, 125, 216, 343, 512, 729]
import random
help(random.randint)
    Help on method randint in module random:
    
    randint(a, b) method of random.Random instance
        Return random integer in range [a, b], including both end points.
# elemanları rastgele 0,10 aralığında olan 10 elemanlı liste
[random.randint(0,10) for i in range(10)]
    [5, 10, 0, 6, 0, 10, 3, 5, 6, 10]
# boyutu 10x3 olan bir liste elde edelim.Bu listenin elemanları rastele olsun.

a=[[random.randint(0,10),random.randint(0,10),random.randint(0,10)] 
   for i in range(10)]
a
    [[8, 5, 2],
     [6, 6, 1],
     [1, 2, 10],
     [7, 5, 2],
     [4, 9, 9],
     [10, 4, 9],
     [8, 9, 7],
     [2, 1, 2],
     [1, 0, 1],
     [7, 3, 5]]
len(a),len(a[0])
    (10, 3)
[random.randint(0,9) for i in range(5)]
    [4, 4, 0, 6, 5]
# boyutu 5x5 olan bir liste elde edelim.Bu listenin elemanları rastele olsun.

a=[[random.randint(0,9) for i in range(5)] for j in range(5)]
a
    [[6, 8, 2, 1, 3],
     [9, 3, 9, 7, 7],
     [9, 0, 9, 7, 7],
     [8, 6, 3, 6, 8],
     [1, 2, 9, 0, 1]]

Tuple - demet

a=["muz","elma","armut","kivi","portakal"]
type(a)
    list
a=("muz","elma","armut","kivi","portakal")
type(a)
    tuple
len(a)
    5
a
    ('muz', 'elma', 'armut', 'kivi', 'portakal')
a[0],a[3],a[-1],a[-2]
    ('muz', 'kivi', 'portakal', 'kivi')
a[1:3],a[-1:-3:-1]
    (('elma', 'armut'), ('portakal', 'kivi'))
a[::-1]
    ('portakal', 'kivi', 'armut', 'elma', 'muz')
a=(1,2, "metin",1.0,True)
a
    (1, 2, 'metin', 1.0, True)
for i in a:
    print(f"{i}: {type(i)}")
    1: <class 'int'>
    2: <class 'int'>
    metin: <class 'str'>
    1.0: <class 'float'>
    True: <class 'bool'>
if 1 in a:
    print("tupleda 1 sayısı var")
    tupleda 1 sayısı var
if 5 not in a:
    print("tupleda 5 sayısı yok")
    tupleda 5 sayısı yok
# a tuple ının 2. elemanın in sondan 2 harfi:
a[2][-2:]
    'in'
a=[1,2,3]
type(a)
    list
b=tuple(a)
b
    (1, 2, 3)
a="bir metin"
b=tuple(a)
b
    ('b', 'i', 'r', ' ', 'm', 'e', 't', 'i', 'n')
c=list(b)
c
    ['b', 'i', 'r', ' ', 'm', 'e', 't', 'i', 'n']
help(str.join)
    Help on method_descriptor:
    
    join(self, iterable, /)
        Concatenate any number of strings.
        
        The string whose method is called is inserted in between each given string.
        The result is returned as a new string.
        
        Example: '.'.join(['ab', 'pq', 'rs']) -> 'ab.pq.rs'
"-".join(c)
    'b-i-r- -m-e-t-i-n'
"".join(c)
    'bir metin'
a=(1,2,3,True)
b=(2,3,4,False)
a+b
    (1, 2, 3, True, 2, 3, 4, False)
a=(1, 2.0, "abc")
x,y,z=a
print(x,y,z)
    1 2.0 abc
a=(1,2,3,4,5,6)
x,y,z=a
    ---------------------------------------------------------------------------

    ValueError                                Traceback (most recent call last)

    Input In [85], in <cell line: 2>()
          1 a=(1,2,3,4,5,6)
    ----> 2 x,y,z=a
    

    ValueError: too many values to unpack (expected 3)
a=(1,2,3,4,5,6)
x,y,z,*t=a
print(x,y,z)
    1 2 3
t
    [4, 5, 6]
a=(1,2,3,4,5,6)
x,y,*t,z=a
print(x,y,z)
    1 2 6
a=(1,2)
a[0]
    1
a[0]=10
    ---------------------------------------------------------------------------

    TypeError                                 Traceback (most recent call last)

    Input In [99], in <cell line: 1>()
    ----> 1 a[0]=10
    

    TypeError: 'tuple' object does not support item assignment
a=(1,2)
b=a*3
b
    (1, 2, 1, 2, 1, 2)
b.count(1),b.count(3)
    (3, 0)
a.index(2)
    1
a=(4,2,1,5,2,1)
max(a),min(a),sum(a)
    (5, 1, 15)
# sorted(iterable, /, *, key=None, reverse=False)
sorted(a)
    [1, 1, 2, 2, 4, 5]
b=a[::-1]
b
    (1, 2, 5, 1, 2, 4)
# a listesinin elemanlarının karelerini kullanarak bir tuple elde edelim.
a=[2,3,4,5,6]
#yontem 1
b=tuple([i**2 for i in a])
print(b)
#yontem 2
c=tuple(i**2 for i in a)
print(c)

    (4, 9, 16, 25, 36)
    (4, 9, 16, 25, 36)
# a tuple ının çift elemanlarının karelerinden bir tuple elde edelim

a=(1,2,5,3,1,3,54,6,7,8,5,4,3,2,2,2)
tuple(i**2 for i in a if i%2==0)
    (4, 2916, 36, 64, 16, 4, 4, 4)

Kümeler

a={1,2,3}
type(a)
    set
b={1,2,3,3,2,4}
b
    {1, 2, 3, 4}
# bir listedeki tekrar eden elemanları çıkarma
b=[1,2,3,3,2,4]
list(set(b))
    [1, 2, 3, 4]
a={1,2,3,3}
len(a)
    3
a={1,2,3,"abc","ab","abc"}
a
    {1, 2, 3, 'ab', 'abc'}
for i in a:
    print(i,end=" ")
    1 2 3 abc ab 
a.add(10)
a.add(1)
a.add(2)
a.add(3)
a
    {1, 10, 2, 3, 'ab', 'abc'}
a.remove("ab")
a
    {1, 10, 2, 3, 'abc'}
#kesisim birlesim fark
#intersection union, difference
a={1,2,3,4}
b={3,4,5,6}
a.union(b),a.intersection(b), a.difference(b)
    ({1, 2, 3, 4, 5, 6}, {3, 4}, {1, 2})
# 5'e kadar olan sayilarin karelerinden comprehension ile bir küme elde edelim.
{i**2 for i in range(5)}
    {0, 1, 4, 9, 16}

Dictionary - Sözlük

# sozlukte anahtar ve deger ciftleri bulunur
a={"isim":"Ali", "bolum":"eem", "numara":123}
a
    {'isim': 'Ali', 'bolum': 'eem', 'numara': 123}
a["numara"]
    123
a["isim"]
    'Ali'
a["isim"]="Mehmet"
a
    {'isim': 'Mehmet', 'bolum': 'eem', 'numara': 123}
len(a)
    3
a={0:5, 2:7, "abc":"def", "x":[1,2,3], "y":{1:2,"1":"3"}}
a
    {0: 5, 2: 7, 'abc': 'def', 'x': [1, 2, 3], 'y': {1: 2, '1': '3'}}
a["y"]["1"],a["y"][1],a["abc"][0]
    ('3', 2, 'd')
a[0]
    5
a[1]

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

    KeyError                                  Traceback (most recent call last)

    Input In [148], in <cell line: 1>()
    ----> 1 a[1]
    

    KeyError: 1
a[1]=123
a
    {0: 5, 2: 7, 'abc': 'def', 'x': [1, 2, 3], 'y': {1: 2, '1': '3'}, 1: 123}
a.keys()
    dict_keys([0, 2, 'abc', 'x', 'y', 1])
a.values()
    dict_values([5, 7, 'def', [1, 2, 3], {1: 2, '1': '3'}, 123])
a.items()
    dict_items([(0, 5), (2, 7), ('abc', 'def'), ('x', [1, 2, 3]), ('y', {1: 2, '1': '3'}), (1, 123)])
for anahtar in a:
    print(anahtar, end=" ")
    0 2 abc x y 1 
for anahtar in a:
    print(a[anahtar],  end=" ")
    5 7 def [1, 2, 3] {1: 2, '1': '3'} 123 
for deger in a.values():
    print(deger, end=" ")
    5 7 def [1, 2, 3] {1: 2, '1': '3'} 123 
aile={
    "baba":{"isim":"mehmet","yas":50, "meslek":"ogretmen"},
    "anne":{"isim":"ayşe","yas":45, "meslek":"hemşire"},
    "cocuk1":{"isim":"zeynep","yas":15, "meslek":"öğrenci"},
    "cocuk2":{"isim":"hasan","yas":18, "meslek":"işsiz"} 
}
aile["baba"]["yas"],aile["cocuk2"]["yas"]
    (50, 18)
aile["baba"]["brans"]="Matematik"
aile
    {'baba': {'isim': 'mehmet',
      'yas': 50,
      'meslek': 'ogretmen',
      'brans': 'Matematik'},
     'anne': {'isim': 'ayşe', 'yas': 45, 'meslek': 'hemşire'},
     'cocuk1': {'isim': 'zeynep', 'yas': 15, 'meslek': 'öğrenci'},
     'cocuk2': {'isim': 'hasan', 'yas': 18, 'meslek': 'işsiz'}}
aile["cocuk1"]["isim"]
    'zeynep'
for birey in aile:
    print(f'{birey} adı:{aile[birey]["isim"]}')
    baba adı:mehmet
    anne adı:ayşe
    cocuk1 adı:zeynep
    cocuk2 adı:hasan
#sayılar ve karelerinden bir sozluk elde edelim
a=dict()
for i in range(10):
    a[i]=i**2
a

    {0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}
a={i:i**2 for i in range(10,20)}
print(a)
    {10: 100, 11: 121, 12: 144, 13: 169, 14: 196, 15: 225, 16: 256, 17: 289, 18: 324, 19: 361}
kelimeler=["özge","anne", "bahri", "göze","baba","ihbar"]
kelimeler
    ['özge', 'anne', 'bahri', 'göze', 'baba', 'ihbar']
kelime1="özge"
kelime2="göze"
k1=list(kelime1)
k2=list(kelime2)
k1.sort()
k2.sort()
if k1==k2:
    print(f"{kelime1}-{kelime2} anagramdır")
    özge-göze anagramdır
kelime1="özge"
kelime2="anne"
k1=list(kelime1)
k2=list(kelime2)
k1.sort()
k2.sort()
if k1==k2:
    print(f"{kelime1}-{kelime2} anagramdır")
else:
    print("kelimeler anagram degil")
    kelimeler anagram degil
kelime1="abcabacdea"
harf_sayilari=dict()
for harf in kelime1:
    if harf not in harf_sayilari:
        harf_sayilari[harf]=1
    else:
        harf_sayilari[harf]+=1
harf_sayilari
    {'a': 4, 'b': 2, 'c': 2, 'd': 1, 'e': 1}