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}