Yıldızlarla veya rakam ve harflerin kendilerini kullanarak büyük rakamlar, büyük harfler oluşturma

Linux’tan bahseidyorsunuz değil mi hoam? Ev dizinine kurulabiliyorsa bir araştırıp kurmaya çalışayım.

1 Beğeni

Hocam bunlar hazır kütüphaneden mi çağırılıyor?

Pardon hocam. Evet kod kısmını copy-paste yapmalıydım, ekran görüntüsü yerine. Ders içeriği gayet güzel anlatıldığı için, fonksiyon konusuna kadar tüm anlatılanları anlayarak ilerlediğim için daha önce forumda bir şey sorma ihtiyacım olmamıştı. Konular ilerledikçe ve yavaş yavaş bir şeyleri yapmaya başladıkça takıldığım yerler artmaya başladı ve buraya daha sık gelir oldum. Forum kurallarına daha çok dikkat etmeye özen göstereceğim. Teşekkürler…

Çok iyi anladım hocam, çok haklısınız. Çok teşekkürler…

1 Beğeni

Microsoft Store üzerinden indireceğiniz, herhangi bir uygulama zaten ev dizininize iner. Arkadaşın dediği gibi Debian terminali varsa eğer indirebilirsiniz.

1 Beğeni

Bunlar hazir program, yaptigim alintida [terminalde, zsh’de] calistirilma komutlarini ve ciktilarini goruyorsun.

Daha ziyade soyle bir sey:

import textwrap

mapping = {
    '1': """
        11 
         1 
         1 
         1 
        111
        """,
    '2': """
        2222
           2
        2222
        2   
        2222
        """,
    '3': """
        3333
           3
         333
           3
        3333
        """
}
mapping = { k: textwrap.dedent(v) for k, v in mapping.items() }

def concat(s1, s2):
    return "\n".join((s1l + "  " + s2l) for s1l, s2l in zip(s1.split("\n"), s2.split("\n")))

print(mapping['1'])
print(concat(concat(mapping['1'], mapping['2']), mapping['3']))

11 
 1 
 1 
 1 
111

    
11   2222  3333
 1      2     3
 1   2222   333
 1   2        3
111  2222  3333
    
4 Beğeni

Rakamların matrisini sadece birer kere oluşturup skor sonucuna göre çağırmanın yöntemini buldum ve sorunu çözdüm. İlgilenip görüş belirten her arkadaşa ayrı ayrı teşekkür ederim, Allah razi olsun…
Kullanmak isteyen, ilgilenen, merak eden olabilir diye aşağıda yöntemimi bırakıyorum.

score = [[["00000000"],
          ["00    00"],
          ["00    00"],
          ["00    00"],
          ["00    00"],
          ["00    00"],
          ["00000000"]],

         [["    1111"],
          ["      11"],
          ["      11"],
          ["      11"],
          ["      11"],
          ["      11"],
          ["      11"]],

         [["22222222"],
          ["      22"],
          ["      22"],
          ["22222222"],
          ["22      "],
          ["22      "],
          ["22222222"]],

         [["33333333"],
          ["      33"],
          ["      33"],
          ["33333333"],
          ["      33"],
          ["      33"],
          ["33333333"]],

         [["44    44"],
          ["44    44"],
          ["44    44"],
          ["44444444"],
          ["      44"],
          ["      44"],
          ["      44"]],

         [["55555555"],
          ["55      "],
          ["55      "],
          ["55555555"],
          ["      55"],
          ["      55"],
          ["55555555"]],

         [["66666666"],
          ["66      "],
          ["66      "],
          ["66666666"],
          ["66    66"],
          ["66    66"],
          ["66666666"]],

         [["77777777"],
          ["      77"],
          ["      77"],
          ["      77"],
          ["      77"],
          ["      77"],
          ["      77"]],

         [["88888888"],
          ["88    88"],
          ["88    88"],
          ["88888888"],
          ["88    88"],
          ["88    88"],
          ["88888888"]],

         [["99999999"],
          ["99    99"],
          ["99    99"],
          ["99999999"],
          ["      99"],
          ["      99"],
          ["99999999"]]]

hyphen = [["     "],
          ["     "],
          ["     "],
          [" ### "],
          ["     "],
          ["     "],
          ["     "]]

team1 = int(input("İlk takımın skorunu girin: "))
team2 = int(input("İkinci takımın skorunu girin: "))

score1 = score[team1]
score2 = score[team2]

scoreboard = [["#" for x in range(12)] for y in range(7)]

for i in range(7):
    scoreboard[i] = score1[i] + hyphen[i] + score2[i]

print()

for i in scoreboard:
    print(*i)

Örnek Çıktı:

    1111       22222222
      11             22
      11             22
      11  ###  22222222
      11       22      
      11       22      
      11       22222222

44    44       33333333
44    44             33
44    44             33
44444444  ###  33333333
      44             33
      44             33
      44       33333333
2 Beğeni

Estağfurullah, hocalık kim biz kimiz,
ben hala acemi bir python öğrencisiyim.
vakit buldukça kendimi geliştirme konusunda bir şeyler denemeye çalışıyorum.

Harikulade siteler, çok beğendim. Paylaşım için teşekkürler

1 Beğeni

Hortlattığım için özür dilerim ama her bir şekil için ayrı ayrı liste oluşturmaya gönlüm el vermedi. Yine de sözlük kullanmaktan uzak duramadım ve şöyle bir çözüm yöntemi geliştirdim.

# Şekil bilgileri sekiller sözlüğünde saklanır.
# Her bir 3 sayı, şu bilgileri içerir: abc -> a: satır numarası, b: başlangıç indeksi, c: yazdırılacak şekil miktarı
# Örneğin 0 sayısı için ilk satırda '00000000' olmalıdır. Buna göre ilk satır için 008 yazılmalıdır. (Her bir satır 8 birim genişliğindedir.)
# İkinci satırda ise '00    00' olması için 102:162 yazılmalıdır vb.

sekiller = {0: "008:102:162:202:262:302:362:402:462:502:562:608",
            1: "044:162:262:362:462:562:662",
            2: "008:162:262:308:402:502:608",
            3: "008:162:262:326:462:562:608",
            4: "002:062:102:162:202:262:308:462:562:662",
            5: "008:102:202:308:462:562:608",
            6: "008:102:202:308:402:462:502:562:608",
            7: "008:162:262:362:462:562:662",
            8: "008:102:162:202:262:308:402:462:502:562:608",
            9: "008:102:162:202:262:308:462:562:608",
            '-': "324"}

# Girilen şeklin bilgisine göre bir liste ayarlar.
def donustur(sekil):
    # elemanları ':' sembolüne göre ayırırız.
    sekil_bilgileri = sekiller[sekil].split(':')
    yerel_liste = []

    # liste elemanlarını tam sayı (integer) yapar ve listeyi 'return' eder.
    def tam_sayi_yap(yazi):
        return (int(yazi[i]) for i in range(len(yazi)))

    for n in range(7):
        # 7 elemanlı bir liste oluşturur. 7 sayısı dikey uzunluktur. Her bir eleman 8 birimlik bir boşluktur.
        yerel_liste.append(8 * ' ')

    for sekil_bilgisi in sekil_bilgileri:
        i1, i2, miktar = tam_sayi_yap(sekil_bilgisi)
        # Belirtilen indeks aralığına gerekli şekilleri yerleştirir.
        yerel_liste[i1] = yerel_liste[i1][:i2] + miktar * str(sekil) + yerel_liste[i1][i2+miktar:]

    return yerel_liste

def birlestir_donustur_ve_yazdir(liste):
    for i in range(len(liste)):
        liste[i] = donustur(liste[i])

    for i in range(7):
        for sekil in liste:
            # Her bir şeklin aynı satırını yan yana yazar. Sonra alt satıra geçer.
            print(sekil[i], end=" ")
        print('')

yazdirilacaklar = [3, '-', 2]  # Tuple olmamalı, liste olmalı.
birlestir_donustur_ve_yazdir(yazdirilacaklar)

Çıktı:

33333333          22222222 
      33                22 
      33                22 
  333333   ----   22222222 
      33          22       
      33          22       
33333333          22222222

Çeşitli fonksiyonlar ile terminalde görüntülenmek istenen şekli büyük haline çeviriyoruz. Bunun için de sözlük içerisinde o şekle dair bilgiler barındıran string’leri kullanıyoruz. Kod içerisinde yorum satırları ile açıklamaya çalıştım, umarım faydası olur.

yazdirilacaklar = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]  # Tuple olmamalı, liste olmalı.
birlestir_donustur_ve_yazdir(yazdirilacaklar)
00000000     1111 22222222 33333333 44    44 55555555 66666666 77777777 88888888 99999999 
00    00       11       22       33 44    44 55       66             77 88    88 99    99 
00    00       11       22       33 44    44 55       66             77 88    88 99    99 
00    00       11 22222222   333333 44444444 55555555 66666666       77 88888888 99999999 
00    00       11 22             33       44       55 66    66       77 88    88       99 
00    00       11 22             33       44       55 66    66       77 88    88       99 
00000000       11 22222222 33333333       44 55555555 66666666       77 88888888 99999999

yerel_liste[i1] = yerel_liste[i1][:i2] + miktar * str(sekil) + yerel_liste[i1][i2+miktar:]
satırını şununla değiştirince çok daha güzel bir görüntü oluşuyor aslında.
yerel_liste[i1] = yerel_liste[i1][:i2] + miktar * '|' + yerel_liste[i1][i2+miktar:]

||||||||     |||| |||||||| |||||||| ||    || |||||||| |||||||| |||||||| |||||||| |||||||| 
||    ||       ||       ||       || ||    || ||       ||             || ||    || ||    || 
||    ||       ||       ||       || ||    || ||       ||             || ||    || ||    || 
||    ||       || ||||||||   |||||| |||||||| |||||||| ||||||||       || |||||||| |||||||| 
||    ||       || ||             ||       ||       || ||    ||       || ||    ||       || 
||    ||       || ||             ||       ||       || ||    ||       || ||    ||       || 
||||||||       || |||||||| ||||||||       || |||||||| ||||||||       || |||||||| ||||||||
1 Beğeni

Farklı yazıtipleri kullanmak isterseniz, aşağıdaki konuya da göz atabiirsiniz.

3-0
 .d8888b.                .d8888b.     
d88P  Y88b              d88P  Y88b    
     .d88P              888    888    
    8888"               888    888    
     "Y8b.              888    888    
888    888    888888    888    888    
Y88b  d88P              Y88b  d88P    
 "Y8888P"                "Y8888P"   
                                          
 _______                __      
/ ___   )              /  \     
\/   )  |              \/) )    
    /   )    _____       | |    
  _/   /    (_____)      | |    
 /   _/                  | |    
(   (__/\              __) (_   
\_______/              \____/       


                                                        
       444444444                        222222222222222       
      4::::::::4                       2:::::::::::::::22     
     4:::::::::4                       2::::::222222:::::2    
    4::::44::::4                       2222222     2:::::2    
   4::::4 4::::4                                   2:::::2    
  4::::4  4::::4                                   2:::::2    
 4::::4   4::::4                                2222::::2     
4::::444444::::444   ---------------       22222::::::22      
4::::::::::::::::4   -:::::::::::::-     22::::::::222        
4444444444:::::444   ---------------    2:::::22222           
          4::::4                       2:::::2                
          4::::4                       2:::::2                
          4::::4                       2:::::2       222222   
        44::::::44                     2::::::2222222:::::2   
        4::::::::4                     2::::::::::::::::::2   
        4444444444                     22222222222222222222  

                                         
2 Beğeni