Jak wydrukować czerwone serce w Pythonie 3
Muszę wydrukować emoji z czerwonym sercem ❤️️ z kodem Unicode w Pythonie 3, ale zawiera on dwa kody unikodowe (\ U00002764 i \ U0000FE0F). Jak mam to wydrukować?
Na przykład zielone serce print("\U0001F49A")
Odpowiedzi
>>> print("\u2764\ufe0f")
❤️
To, czy to „działa”, zależy od posiadanej czcionki i obsługiwanych przez nią glifów. Oto ten sam znak w niekodowanej czcionce (dosłownie skopiuj / wklej z powyższego):
❤️
Mówiąc bardziej szczegółowo, U + 2764 jest HEAVY BLACK HEARTi zazwyczaj renderuje się jako czarne serce: ❤
U + FE0F jest VARIATION SELECTOR 16znakiem łączącym, który modyfikuje poprzedni znak, w tym przypadku zmieniając kolor serca na czerwony.
Żaden z tych punktów kodowych nie ma więcej niż cztery cyfry szesnastkowe, więc używanie długiej \U00000000postaci nie jest konieczne.
(Co jest warte, w powyższym tekście widzę czarne serce w czcionce kodu i czerwone w zwykłej czcionce tekstu podstawowego. W terminalu MacOS czerwone serce renderuje się inną czcionką, więc widzę jako czerwone serce również w Pythonie REPL).
Żaden z dwóch unicodes nie zadziałał dla mnie - oba wydrukowały czarne serca. Czerwone serce wymaga połączenia dwóch unikodów:
print("\u2764\uFE0F")
Wyjaśnienie, dlaczego wymaga dwóch unikodów, można znaleźć tutaj .