簡體   English   中英

如何在與輸入相同的行中打印消息? (Python)

[英]How to print a message in same line as a input? (python)

當用戶確認輸入時,我想在輸入的同一行打印一條消息,在這種情況下,是正確或不正確的符號。

我嘗試使用 end='',但它似乎不起作用

answer = input('Capital of Japan: ', end=' ')
if answer == 'Tokyo':
    print('✔')
else:
    print('❌')

因此,如果用戶鍵入“東京”,這就是我希望顯示的內容:

Capital of Japan: Tokyo ✔ 

相反,我收到此錯誤:

    answer = input('Capital of Japan: ', end=' ')
TypeError: input() takes no keyword arguments

如果您的終端支持 ANSI CSI 代碼,則:

CSI = '\x1B['
q = 'Capital of Japan: '
answer = input(q)
c = len(q) + len(answer)
result = '✔' if answer == 'Tokyo' else '❌'
print(f'{CSI}F{CSI}{c}C {result}')

CSI n F 將 cursor 移動到上一行。 n 默認為 1。

CSI n C 將 cursor 向前移動 n 個位置。 n 默認為 1

例子:

Capital of Japan: Tokyo ✔

您可以借助 ANSI 轉義碼完成您的任務。 用這個:

    import colorama as cr

    cr.init(autoreset=True)
    LINE_UP = "\033[1A"
    LINE_CLEAR = "\x1b[2K"
    Question = "Capital of Japan: "
    answer = input(Question)
    if answer == "Tokyo":
        print(LINE_UP, LINE_CLEAR, Question + answer + 
              f"{cr.Fore.GREEN} ✔")
    else:
        print(LINE_UP, LINE_CLEAR, Question + answer + 
              f"{cr.Fore.RED} ❌")

在 colorama 的幫助下,您可以在終端中打印彩色文本。 LINE_UP 將 cursor 設置為上一行,LINE_CLEAR 清除新文本的空洞線

answer = input('Capital of Japan: ')
print('Capital of Japan: ', answer, ' ', end='', flush=True)
if answer == 'Tokyo':
    print('✔', end='')
else:
    print('❌', end='')

或者

answer = input('Capital of Japan: ', end=' ')
if answer == 'Tokyo':
    print('✔', end='')
else:
    print('❌', end='')

我覺得真的做不到。 在 cmd 的最后一行用\b試試 position cursor。我這樣試過:

answer = input('Capital of Japan: ')
if answer == 'Tokyo':print(f'\b\bCapital of Japan: {answer} ✔', end=' ')
else:print(f'\b\bCapital of Japan: {answer} ❌', end=' ')

但我還沒有讓它工作。 我想出的一個解決方案是在下面打印另一行,並為圖標/表情符號找到一些間距以放置在響應下方。 代碼是這樣的。

answer = input(print('Capital of Japan: ', end=' '))
if answer == 'Tokyo':print('\b' + ' ' * len('Capital of Japan: ') + '✔', end=' ')
else:print('\b' + ' ' * len('Capital of Japan: ') + '❌', end=' ')

給出這樣的結果:

Capital of Japan:  example
                  ❌
Capital of Japan:  Tokyo            
                  ✔

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM