├── Amiral Battı └── main.py ├── Asal Sayı Bulma └── main.py ├── Bilgisayar Bilgilerini Öğrenme └── main.py ├── Dosya Okuma └── main.py ├── README.md ├── TV Kanalları Yayın Akışı └── main.py ├── Yazıyı Tersten Yazdırma └── main.py ├── Zamanlayıcı └── main.py ├── Zar Oyunu ├── better.py └── main.py ├── _config.yml └── Çarpım Tablosu ├── __init__.py └── main.py /Amiral Battı/main.py: -------------------------------------------------------------------------------- 1 | from random import randint 2 | board = [] 3 | sayac = 0 4 | puan = 250 5 | for i in range(5): 6 | board.append(["0"]*5) 7 | 8 | def print_board(board): 9 | for satir in board: 10 | print (" ".join(satir)) 11 | def rand(board): 12 | return randint(1,len(board)-1) 13 | 14 | print("-" * 35) 15 | print("Amiral battı oyununa hoş geldiniz") 16 | print("-" * 35) 17 | print("Puanınız:", puan) 18 | print("-" * 35) 19 | print_board(board) 20 | 21 | gemi_satir = rand(board) 22 | gemi_sutun = rand(board) 23 | gemi1_satir = rand(board) 24 | gemi1_sutun = rand(board) 25 | gemi2_satir = rand(board) 26 | gemi2_sutun = rand(board) 27 | 28 | while True: 29 | if(gemi_satir == gemi1_satir and gemi_sutun == gemi1_sutun): 30 | gemi1_satir = rand(board) 31 | gemi1_sutun = rand(board) 32 | continue 33 | elif (gemi_satir == gemi2_satir and gemi_sutun == gemi2_sutun): 34 | gemi2_satir = rand(board) 35 | gemi2_sutun = rand(board) 36 | continue 37 | elif (gemi1_satir == gemi2_satir and gemi1_sutun == gemi2_sutun): 38 | gemi2_satir = rand(board) 39 | gemi2_sutun = rand(board) 40 | continue 41 | else: 42 | print("-" * 35) 43 | tahmin_satir = int(input("Satır giriniz: ")) 44 | tahmin_sutun = int(input("Sütun giriniz: ")) 45 | 46 | if (tahmin_satir == gemi_satir and tahmin_sutun == gemi_sutun)\ 47 | or (tahmin_satir == gemi1_satir and tahmin_sutun == gemi1_sutun) \ 48 | or (tahmin_satir == gemi2_satir and tahmin_sutun == gemi2_sutun): 49 | if board[tahmin_satir - 1][tahmin_sutun - 1] == "/": 50 | print("-" * 35) 51 | print("Zaten tahmin ettiniz") 52 | print_board(board) 53 | print(puan) 54 | else: 55 | print("-" * 35) 56 | print("Tebrikler gemiyi batırdınız!") 57 | board[tahmin_satir - 1][tahmin_sutun - 1] = "/" 58 | print("Puanınız:",puan) 59 | print("-" * 35) 60 | print_board(board) 61 | sayac += 1 62 | else: 63 | if (tahmin_satir < 0 or tahmin_sutun < 0) or (tahmin_satir >5 or tahmin_sutun >5): 64 | print("-" * 35) 65 | print("Alan sınırları dışında değer girdiniz") 66 | 67 | elif board[tahmin_satir - 1][tahmin_sutun - 1] == "X": 68 | print("-" * 35) 69 | print("Zaten tahmin ettiniz") 70 | print("-" * 35) 71 | print_board(board) 72 | else: 73 | print("-" * 35) 74 | print("Vuramadınız") 75 | board[tahmin_satir - 1][tahmin_sutun - 1] = "X" 76 | puan -= 10 77 | print("Puanınız:", puan) 78 | print("-" * 35) 79 | print_board(board) 80 | 81 | if sayac == 3: 82 | print("-" * 35) 83 | print("Tebrikler bütün gemileri batırdınız ve oyunu kazandınız") 84 | print("-" * 35) 85 | break -------------------------------------------------------------------------------- /Asal Sayı Bulma/main.py: -------------------------------------------------------------------------------- 1 | # coding=utf-8 2 | 3 | """ 4 | Girdiğimiz bir sayıya kadar ki asal olan bütün sayıları listeleme 5 | """ 6 | 7 | deger = int(input("Kaça kadar ki asal sayıları arıyorsunuz? : ")) 8 | asal = [] 9 | 10 | for i in range(2, deger): 11 | for j in range(2, i): 12 | if i % j == 0: 13 | break 14 | else: 15 | asal.append(i) 16 | 17 | print("\n0 - {} arasında toplam {} tane asal sayı vardır.".format(deger, len(asal))) 18 | -------------------------------------------------------------------------------- /Bilgisayar Bilgilerini Öğrenme/main.py: -------------------------------------------------------------------------------- 1 | # coding=utf-8 2 | 3 | """ 4 | Bilgisayar bilgilerini öğrenme 5 | Bu benim bilgisayarım için doğru bir şekilde çalıştı. 6 | Ama sizin bilgisayarınızda farklılık gösterebilir veya çalışmayadabilir. 7 | Eğer Ubuntu kullanıyorsanız %75 doğru çalışacaktır. 8 | 9 | """ 10 | 11 | import os 12 | 13 | b = os.uname() 14 | print(b) 15 | print(""" 16 | İşletim sistemi : {} {} 17 | Bilgisayar adı : {} 18 | Sürüm : {} 19 | Sürüm tarihi : {} 20 | """.format( 21 | b.sysname, b.machine, 22 | b.nodename, 23 | b.release, 24 | b.version)) 25 | 26 | """ 27 | Uygulamayı çalıştırdığınızda böyle bir sonuç elde etmeniz lazım 28 | 29 | İşletim sistemi : Linux x86_64 30 | Bilgisayar adı : l50a1d2 31 | Sürüm : 4.13.0-36-generic 32 | Sürüm tarihi : #40-Ubuntu SMP Fri Feb 16 20:07:48 UTC 2018 33 | 34 | """ 35 | -------------------------------------------------------------------------------- /Dosya Okuma/main.py: -------------------------------------------------------------------------------- 1 | # coding=utf-8 2 | 3 | """ 4 | Dosya okuma ve yazma işlemleri 5 | Öğrenci notlarını tutan bir dosya olsun 6 | """ 7 | 8 | # Yazmak için dosya oluştur 9 | 10 | dosya = open('notlar.text', 'w') 11 | 12 | notlar = { 13 | "ali": 45, 14 | "ahmet": 90, 15 | "veli": 75, 16 | "mehmet": 60, 17 | "serdar": 85, 18 | "ayse": 40 19 | } 20 | 21 | for item in notlar.items(): 22 | dosya.write(str(item)) 23 | dosya.write('\n') 24 | 25 | dosya.close() 26 | 27 | # Dosyayı okumak için tekrar açtık 28 | dosya = open('notlar.text', 'r') 29 | for i in dosya.readlines(): 30 | print(i) 31 | 32 | dosya.close() 33 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## Hoş geldiniz 2 | 3 | burda bahsedilen dosyalara [github](https://github.com/erensenell/python-projeleri) da bulunmaktadır. 4 | 5 | 6 | ### Python projeleri 7 | 8 | - Asal Sayı Bulma 9 | - Bilgisayar Bilgilerini Öğrenme 10 | - Çarpım Tablosu 11 | - Dosya Okuma 12 | - TV Kanalları Yayın Akışı 13 | - Yazıyı Tersten Yazdırma 14 | - Zamanlayıcı 15 | - Zar Oyunu 16 | - Amiral Battı 17 | 18 | -------------------------------------------------------------------------------- /TV Kanalları Yayın Akışı/main.py: -------------------------------------------------------------------------------- 1 | # coding=utf-8 2 | 3 | """ 4 | Tv kanalları yayın akışı 5 | """ 6 | import requests 7 | 8 | from bs4 import BeautifulSoup 9 | 10 | 11 | def get_channels(): 12 | url = "https://www.tvyayinakisi.com/" 13 | html = requests.get(url).content.decode('utf-8') 14 | soup = BeautifulSoup(html, 'html.parser') 15 | 16 | channels = [] 17 | soup_channels = soup.select('.channel-card-list.channel-card-list--page-home a') 18 | for i, channel in enumerate(soup_channels, start=1): 19 | url = channel.attrs['href'] 20 | name = channel.select_one('.name').get_text() 21 | channels.append({ 22 | 'order': i, 23 | 'name': name, 24 | 'url': url 25 | }) 26 | 27 | return channels 28 | 29 | 30 | def get_streams(url): 31 | html = requests.get(url).content.decode('utf-8') 32 | soup = BeautifulSoup(html, 'html.parser') 33 | 34 | streams = [] 35 | soup_streams = soup.select('.active ul li') 36 | for i, stream in enumerate(soup_streams, start=1): 37 | time = stream.select_one('p.time').get_text(strip=True) 38 | name = stream.select_one('p.name').get_text(strip=True) 39 | type = stream.select_one('p.type').get_text(strip=True) 40 | 41 | streams.append({ 42 | "time": time, 43 | "name": name, 44 | "type": type 45 | }) 46 | 47 | return streams 48 | 49 | 50 | def print_channels(channels): 51 | for channel in channels: 52 | print(channel['order'], '-', channel['name']) 53 | 54 | 55 | def print_streams(streams): 56 | for stream in streams: 57 | print("[{}] {} {}".format( 58 | stream['time'], stream['type'].ljust(15), stream['name'] 59 | )) 60 | 61 | 62 | def main(): 63 | print("Select a channel\n") 64 | channels = get_channels() 65 | print_channels(channels) 66 | choice = int(input('>> ')) 67 | selected = channels[choice - 1] # index starts from 0 68 | streams = get_streams(selected['url']) 69 | print_streams(streams) 70 | 71 | 72 | if __name__ == '__main__': 73 | main() 74 | -------------------------------------------------------------------------------- /Yazıyı Tersten Yazdırma/main.py: -------------------------------------------------------------------------------- 1 | # coding=utf-8 2 | 3 | """ 4 | Girilen bir yazıyı tersten yazdırma 5 | 6 | # ----- BÜTÜN CÜMLEYİ TERS ÇEVİRME ----- 7 | # Bu yöntem cümleyi tümüyle ters çeviriyor 8 | # tersini_alma fonksiyonu direkt bu işlemi yapmaktadır 9 | 10 | # ----- KELİME KELİME TERSİNE ÇEVİRME ----- 11 | # Bu yöntem cümleyi kelime kelime ters çeviriyor 12 | # Öncelikle cümleyi boşluk karakterine göre split(ayırma) yapıp bir diziye atayalım 13 | # Sonra bu dizinin her elemanını tersine çevirelim 14 | # Zaten tersini alma fonksiyonu gelen stringi tersine çeviriyordu 15 | # O yüzden bizde burda her bir stringimizi teker teker o fonksiyona göndereceğiz 16 | # Tersini aldıktan sonra " ".join ile dizimiz birleşik yazacağız 17 | """ 18 | 19 | print("NOT: - Türkçe karakter sorunu maalesef var :( -\n") 20 | 21 | girilen_yazi = input("cümle girin: ") 22 | yazinin_tersi = "" 23 | 24 | 25 | def tersini_alma(yazi, tersi): 26 | for i in range(len(yazi) - 1, -1, -1): 27 | tersi += yazi[i] 28 | return tersi 29 | 30 | 31 | kelimeler = [] 32 | for i in girilen_yazi.split(' '): 33 | kelimeler.append(tersini_alma(i, "")) 34 | 35 | cumle_halinde_tersi = tersini_alma(girilen_yazi, yazinin_tersi) 36 | kelime_halinde_tersi = " ".join(kelimeler) 37 | 38 | print( 39 | """ 40 | Cümlenin orjinali: {} 41 | 42 | Tamamen tersi alınmış hali: {} 43 | 44 | Kelime kelime tersi alınmış hali: {} 45 | 46 | """.format(girilen_yazi, cumle_halinde_tersi, kelime_halinde_tersi)) 47 | -------------------------------------------------------------------------------- /Zamanlayıcı/main.py: -------------------------------------------------------------------------------- 1 | # coding=utf-8 2 | 3 | """ 4 | Zamanlayıcı kullanımı 5 | Tarihi gösteren küçük bir uygulama 6 | """ 7 | 8 | import time 9 | import os 10 | import platform 11 | 12 | 13 | def temizle(): 14 | if platform.system() == 'Linux' or platform.system() == 'Darwin': 15 | os.system('clear') 16 | else: 17 | os.system('cls') 18 | 19 | 20 | while True: 21 | 22 | zaman = time.localtime() 23 | yil = zaman[0] 24 | ay = zaman[1] 25 | gun = zaman[2] 26 | saat = zaman[3] 27 | dakika = zaman[4] 28 | saniye = zaman[5] 29 | 30 | time.sleep(1) 31 | temizle() 32 | 33 | print(""" 34 | tarih: {}/{}/{} 35 | saat : {}:{}:{} 36 | """.format(gun, ay, yil, saat, dakika, saniye)) 37 | -------------------------------------------------------------------------------- /Zar Oyunu/better.py: -------------------------------------------------------------------------------- 1 | import time 2 | import random 3 | 4 | 5 | def generate(): 6 | while True: 7 | yield random.randint(1,6), random.randint(1,6) 8 | time.sleep(.1) 9 | 10 | 11 | c = 1 12 | for i, j in generate(): 13 | if i == j == 6: 14 | print(f"Found: {c}") 15 | break 16 | else: 17 | print(f'Try: {c}', end='\r') 18 | c += 1 19 | -------------------------------------------------------------------------------- /Zar Oyunu/main.py: -------------------------------------------------------------------------------- 1 | # coding=utf-8 2 | 3 | import random 4 | import time 5 | 6 | """ 7 | 2 adet zar atılsın ve her iki zarın değeri de 6 olduğunda program dursun. 8 | İki zar da 6 gelene kadar kaç kez zar atıldığını bildiren programı yazınız. 9 | """ 10 | 11 | i = 1 12 | while True: 13 | zar_1 = random.randint(1, 6) 14 | zar_2 = random.randint(1, 6) 15 | 16 | if zar_1 == 6 and zar_2 == 6: 17 | print("""Deneme {}:\t({},{}) *** """.format(i, zar_1, zar_2)) 18 | time.sleep(2) 19 | break 20 | 21 | print("""Deneme {}:\t({},{}) """.format(i, zar_1, zar_2)) 22 | i += 1 23 | time.sleep(0.5) 24 | 25 | print("""\n*** {}. denemede (6,6) geldi ***""".format(i)) 26 | 27 | # @ozcaan11 28 | -------------------------------------------------------------------------------- /_config.yml: -------------------------------------------------------------------------------- 1 | theme: jekyll-theme-hacker -------------------------------------------------------------------------------- /Çarpım Tablosu/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/erensnl/python-projeleri/323a089e0c4ce782fdaa338ae14ef55479d848a1/Çarpım Tablosu/__init__.py -------------------------------------------------------------------------------- /Çarpım Tablosu/main.py: -------------------------------------------------------------------------------- 1 | #!/usr/bin/python3 2 | # -*- coding: utf-8 -*- 3 | 4 | from random import randint 5 | 6 | """ 7 | Küçük çapta bir çarpım tablosu uygulaması 8 | """ 9 | 10 | print("-" * 50) 11 | print("\t\tHOŞGELDİNİZ..") 12 | print("-" * 50, "\n") 13 | 14 | 15 | def carpim(i, j, r): 16 | if r != "-1": 17 | result = str(i * j) 18 | if result == r: 19 | print("\t\t***** Doğru *****") 20 | else: 21 | print("\t!!! Yanlış cevap %s olacaktı" % result) 22 | else: 23 | 24 | secim() 25 | 26 | 27 | def basla(rng_1, rng_2): 28 | if rng_1 > 10: 29 | x = 10 30 | else: 31 | x = 5 32 | for i in range(0, x): 33 | for j in range(0, x): 34 | sayi_1 = randint(rng_1, rng_2) 35 | sayi_2 = randint(rng_1, rng_2) 36 | print("_" * 50, "\n") 37 | print("\t%d x %d kaça eşittir? (çıkış = -1)" % (sayi_1, sayi_2)) 38 | sonuc = input("sonuc >> ") 39 | carpim(sayi_1, sayi_2, sonuc) 40 | 41 | if i == 4 and j == 4: 42 | print("\n *-- Bu bölüm bitti bir üst bölüme geçebilsiniz --*\n") 43 | secim() 44 | 45 | 46 | def secim(): 47 | print(" Hangi seviyeden başlamak istiyorsunuz (çıkış = -1) ?\n") 48 | print(" 1 - Kolay ") 49 | print(" 2 - Orta ") 50 | print(" 3 - Zor") 51 | print(" 4 - Çok zor\n") 52 | 53 | svy = input(" >> ") 54 | 55 | if svy == "1": 56 | basla(1, 6) 57 | 58 | elif svy == "2": 59 | basla(6, 12) 60 | 61 | elif svy == "3": 62 | basla(12, 25) 63 | 64 | elif svy == "4": 65 | basla(25, 100) 66 | 67 | else: 68 | exit(0) 69 | 70 | 71 | if __name__ == '__main__': 72 | secim() 73 | 74 | # @ozcanyarimdunya 75 | --------------------------------------------------------------------------------