2016-07-01 75 views
0

所以我用這個代碼片段:爲什麼我的程序只打印一行而不是單行?

def print_slow(str): 
    for letter in str: 
    print letter, 
    time.sleep(.1) 

從這個鏈接上SO:printing slowly (Simulate typing) 如果符合我的需求。但是,我的代碼到目前爲止是這樣的:

import time 
import random 
import sys 
def print_slow(str): 
    for letter in str: 
    print letter, 
    time.sleep(.5) 
print_slow("MEME QUEST!") 
time.sleep(.5) 
print_slow("BY XXX XXXXX") 

但是,當我運行此代碼時,它將同時打印兩個代碼片段。有什麼辦法可以把它們放在單獨的線上嗎?

編輯:向print_slow函數添加額外的打印工作,謝謝。

+1

刪除'print letter,'中的逗號。逗號字面上告訴它禁止換行並繼續在同一行上打印 – CoryKramer

+0

@CoryKramer:這就是要點,他們*希望用*那個逗號來打印'緩慢'的東西。缺少的是一個簡單的'print'來寫新行。 –

回答

2

您錯過了一個換行符;通常是print輸出,但如果在最後添加,逗號,則不適用。

你可以插入電話之間一個額外的空白printprint_slow()寫一個:

print_slow("MEME QUEST!") 
print 
time.sleep(.5) 
print_slow("BY XXX XXXXX") 
print 

只需要添加額外的print語句的功能:

def print_slow(str): 
    for letter in str: 
     print letter, 
     time.sleep(.1) 
    print 

空白print寫缺少換行符。

或者,\n換行符添加到您打印文本:

print_slow("MEME QUEST!\n") 
time.sleep(.5) 
print_slow("BY XXX XXXXX\n") 

但考慮到相同的0.1秒的延遲適用於過寫換行符。

0

你可以只簡單地增加一個換行符

print_slow("MEME QUEST!\n") 
0

逗號你

print letter, 

語句後,從打印到一個新行抑制它。

嘗試

import time 

def print_slow(string): 
     for letter in string: 
      print letter, 
      time.sleep(.1) 
     print '\n' 

print_slow("hello") 
print_slow("world") 

我敢肯定有實現這種更清潔的方式,但是這應該解決您的問題。

相關問題