Renkli yazı yazma

Pythonda colorama modülü ile yazılara renk veriyorum ancak şöyle bir durum var.

Printin başında verirsem başında boşluk bırakıyor, Önce verirsem bir satır atlatıyor.
Bir de verdiğim renk sadece o yazıda yazılsın istiyorum yani diğer yazılar için varsayılana dönmesini istiyorum. Bunu Style.RESET_ALL ile yaptım ancak bunu da onlarca yerde kullanmak insanı yoruyor. Zaten bunlar yazıda boşluk bıraktığı içinde pek sıcak bakmıyorum var mı uygun bir kullanımı?

Kodu gorebilir miyiz?

Bi de kullandigin isletim sistemini ve terminal emulatorunu soylemen lazim cunku colorama Windows gibi ANSI destegi olmayan sistemlerde turlu workaround’lar kullaniyor. ("-ler" dedigime bakma, desteklemeyen sadece Windows’un cmd’si var)

Alternatif ANSI sekanslarini dogrudan kullanmak:

print("\033[31mKirmizi\033[0m")

Ve evet, her renk degistirmek istediginde kod kullanmak zorundasin, ve rengi resetlemek de bir degisim. (Yoksa degistirmek istedigini bilgisayar nasil anlayacak?)

1 Beğeni

Windows’ta çalışır mı bilmiyorum ama bence şu modül daha kullanışlı:

1 Beğeni

Merhaba,

Sorunlarınızı sırasıyla cevaplamayı deneyeceğim. Eğer yine sorun yaşarsanız etiketlerseniz iyi olur çünkü buraya pek bakamayacağım.


Print’in Başında ve Öncesinde Yazılınca Sorun Yaşanması

main.py dosyamıza şunu yazalım :

from colorama import Fore, init
init(autoreset=True)

print(Fore.RED + "Kırmızı")
input()

Şu çıktıyı alacağız :

Gördüğünüz gibi ne boşluk var ne de satır atlanmış.


Verilen Rengin Her Seferinde Varsayılan Renge Döndürülmesi

Yukarıdaki koddan bir alıntı yapıyorum :

init(autoreset=True)

Buradaki autoreset=True kısmı renklerin otomatik olarak sıfırlanacağını gösteriyor. Şimdi kodda bir kelimeyi değiştirelim ve işe yarayıp yaramadığını görmek için başka bir yazı da ekleyelim :

main.py

from colorama import Fore, init
init(autoreset=False) #False olarak değiştirdik

print(Fore.RED + "Kırmızı")
print("Sorun çözüldü!")
input()

Bu sefer çıktımız şu şekilde :
(Neden yeni kullanıcılar 2 fotoğraf ekleyemiyor? @moderators)

İyi kodlamalar!

1 Beğeni

Nedense olmadı yanlış birdurum mu var acaba
sudo python3 setup.py install ile kurulum yapmıştım.

Linux olduğu için sanırım bu yöntem işe yaramadı initten dolayı

Evet bu işe yaradı kısa parçalar için kullanılabilir ancak uzun vade için pratik değil.

Evet haklısınız :slight_smile:

Python 3 kullandığına göre… print'in parantezleri nerede? :slightly_smiling_face:

1 Beğeni

Fonksiyon, sinif ve modul ve context manager’lar bunun icin var.

1 Beğeni

Screenshot_2021-07-10 verigak colors

Ben githubdaki açıklamadan bakarak denemiştim. :sweat_smile:

from colors import red, green, blue
sozluk={
    'müteşekkir': 'Teşekkür etmek',
    'mukaddes'  : 'Kutsal',
    'mukadderat': 'Kader'
}
istek = input("Anlamını istediğiniz kelime: ")
print(red("{} : {}".format(istek,sozluk[istek])))

Çıktı:

Evet haklısınız. Bu yöntemle de kolaymış.

ben böyle böyle yapıyorum

class Color_utils:
RED = “\033[1;31m”
GREEN = “\033[1;32m”
BLUE = “\033[1;34m”
YELLOW = “\033[1;33m”
BOLD = “\033[1;37m”
CYAN = “\033[1;36m” # Turkuaz
normal = “\033[1;0m”

def print_error(string):
print(Color_utils.RED,"[-]",Color_utils.BOLD,string,normal)
# Ama tek paramatre almasın *args yapın