1

現在Pythonでゲームを作っています。

コードを読みたい:

[00:00:00]   Name|Hello!

これが私のコードです:

print(Fore.YELLOW + Style.BRIGHT + '['),
print strftime("%H:%M:%S"),
print ']',
print(Style.BRIGHT + Fore.RED + ' Name'),
print(Fore.BLACK + '|'),
print(Fore.WHITE + Style.DIM + 'Hello!')
time.sleep(5)

代わりに、何らかの理由で、次のようになります。

[ 00:00:00 ]    Name | Hello!

このコードの何が問題なのか、またはそれを修正する方法がわかりません。

私が得ることができるすべての助けに本当に感謝します!ありがとうございました。

4

2 に答える 2

5

単一のprintステートメントとコンマを使用して印刷すると、常に末尾のスペースが印刷されます。

すべてが連結された1 つのprint ステートメントを使用するかsys.stdout.write()、余分なスペースなしで端末に直接書き込むために使用します。

print Fore.YELLOW + Style.BRIGHT + '[' + strftime("%H:%M:%S") + ']',

また

sys.stdout.write(Fore.YELLOW + Style.BRIGHT + '[')
sys.stdout.write(strftime("%H:%M:%S"))
sys.stdout.write(']')

または文字列フォーマットを使用します:

print '{Fore.YELLOW}{Style.BRIGHT}[{time}] {Style.BRIGHT}{Fore.RED} Name {Fore.BLACK}| {Fore.WHITE}{Style.DIM}Hello!'.format(
    Style=Style, Fore=Fore, time=strftime("%H:%M:%S"))
于 2013-08-01T21:26:16.967 に答える
1

もう 1 つのオプションは、end=""print() のオプションを使用することです。これは改行を印刷せず、最後に余分なスペースも追加しません。

print(Style.BRIGHT + Fore.RED + ' Name', end="")
print(Fore.BLACK + '|', end="")
print(Fore.WHITE + Style.DIM + 'Hello!')

endこのオプションは Python 3 でのみ使用できることに注意してください。from __future__ import print_function

于 2013-08-01T23:00:22.763 に答える