![](/img/trans.png)
[英]How do i execute a line one word at a time verticaly and execute a line one letter at a time horizontally in python?
[英]How do I type one letter at a time for an input in Python
我最近讀到過如何在Python中一次輸入一個字母以查看舊學校並使用循環和時間來冷卻 - 但是,我的代碼有一個輸入。 有誰知道如何做和輸入(在我的代碼中,“你的名字是什么?”)
我已經嘗試更改輸入名稱但失敗了。 代碼只是像往常一樣立即打印出來
如果我正確理解您的要求,您可以打印每個字母並在最后使用輸入。 像這樣的東西:
output = "what is your name?"
for i in output:
print(i, end='')
x = input()
x
將是包含用戶輸入內容的字符串。
Imho,它並不酷,只是多余的。
如果您希望每個字母的外觀之間有延遲,請使用time
模塊。
import sys
import time
output = "what is your name?"
for i in output:
print(i, end='')
sys.stdout.flush()
time.sleep(0.1)
x = input()
注意使用sys.stdout.flush()
在輸出中立即推送每個字母。
這使它看起來像你在說什么
import time
output = "what is your name?"
blank = ""
for i in output:
blank = blank + i
print("\r"+blank, end='')
time.sleep(0.1)
x = input()
我們的想法是構建越來越大的輸出部分,並使用\\ r \\ n每次都替換控制台中的行。 在循環之間等待0.1秒會增加效果
如果你想做一些看起來像這樣的事情:
然后最簡單的方法是在過去的好時光中完成它。 然后發生的事情是該程序會向終端發送特殊代碼(當時它是一個真實的物理設備,而不僅僅是一個窗口),終端可以執行任何想要的代碼。 有代碼可以移動光標,改變顏色,發出嗶嗶聲以及許多你需要的漂亮東西。
目前仍在使用的一組通用代碼稱為ANSI轉義碼 。
有一個名為Colorama for Python的優秀軟件包可以完成所有繁重的工作並且是跨平台的。 我推薦使用它。
上面演示的源代碼:
from colorama import init, Fore, Style
import time
def print_old(message):
print(Fore.GREEN, end='', flush=True)
for c in message:
print(c, end='', flush=True)
time.sleep(0.1)
print(Style.RESET_ALL, end='', flush=True)
init()
print_old('What is your name? ')
name = input()
print_old('Nice to meet you %s\n' % name)
希望這就是你要找的東西。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.