Linux’tan bahseidyorsunuz değil mi hoam? Ev dizinine kurulabiliyorsa bir araştırıp kurmaya çalışayım.
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…
Microsoft Store üzerinden indireceğiniz, herhangi bir uygulama zaten ev dizininize iner. Arkadaşın dediği gibi Debian terminali varsa eğer indirebilirsiniz.
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
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
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
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:]
|||||||| |||| |||||||| |||||||| || || |||||||| |||||||| |||||||| |||||||| ||||||||
|| || || || || || || || || || || || || ||
|| || || || || || || || || || || || || ||
|| || || |||||||| |||||| |||||||| |||||||| |||||||| || |||||||| ||||||||
|| || || || || || || || || || || || ||
|| || || || || || || || || || || || ||
|||||||| || |||||||| |||||||| || |||||||| |||||||| || |||||||| ||||||||
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