2017-08-04 96 views
1

我在Python 2.7中編寫了一個文本冒險,現在想要輸出一個漂亮的輸出。我已經試着用Tkinter製作一個GUI,但它不起作用,因爲用戶的文本輸入無法在Tk中解碼,我需要它用於德語變音。所以現在我試圖在python外殼或者jupyter筆記本上直接獲得好的輸出。問題是,那個時候我做了打印語句,我得到一個輸出,如:Python:字符串中的單詞在輸出中被去除

這是一個文本和一點點EXA

mple顯示的問題。


但是我當然不想讓單詞被剝離,就像'example'一樣。它應該是這樣的:

這是一個文本和一點點

例子來說明這個問題。


我厭倦了顯示器的寬工作和思考的,這將是很好的後80個字符的字符串分割,但與條件,它應該只在空白被分裂,而不是在一個字。我想要做這樣的事情:

def output(string): 
    for pos, char in enumerate(string): 
     if pos <= 80 and pos >=70 and char == " ": 
      templist = string.split(char) 
      ... 

字符串是不變的,所以我想我有隱蔽它在列表中,但我不知道如何把字符串和的分割位置一起列出。也許我覺得太複雜了。

有沒有辦法說:如果字符串長度超過80個字符,請將字符串以最近的空格分隔爲第80個字符。

+0

後實際輸入的字符串(超過80個字符)和預期結果 – RomanPerekhrest

+0

我想有Python庫這一點。 – quamrana

回答

2

使用textwrap module

例如,如果你想40個字符線寬:

import textwrap 
a = '''This is a text and just a little example to show the problem.''' 
print("\n".join(textwrap.wrap(a,40))) 
##This is a text and just a little example 
##to show the problem. 
+0

這正是我正在尋找的東西(比令人沮喪的編碼長達數小時:D)也許我用不一致的關鍵字進行搜索。非常感謝,我很感激。 – FabianPeters

0

我認爲你正在尋找的textwrap模塊。

text_wrap.fill(your_text, width=your_width)

+0

這是模塊,我在找什麼。非常感謝您的回答,我很感激。 – FabianPeters

1

我想看看前80個字符的字符串,並找到空格字符最後一次出現,再有分裂您的字符串。您可以使用rfind()此:

string = "This is a text and just a little example to show the problem" 
lines = [] 
while string: 
    index = string[:80].rfind(' ') 
    if index == -1: 
     index = 80 
    lines.append(string[:index]) 
    string = string[index:].lstrip() 
+0

這是一個有趣的方式來做到這一點。我也會嘗試這種方式。謝謝! – FabianPeters

+0

我寫這篇文章時並不知道'textwrap'庫。這可能是更好的方法 – TallChuck

相關問題