我如何在一行中打印输出而不是创建新行?

问题描述 投票:0回答:1

出于某种原因,我似乎找不到该程序出了问题的地方。它只需要一个文件并反转文件中的文本,但是由于某些原因,所有单独的句子都打印在新的句子上,因此我需要它们在同一行上打印。

这是我的代码供参考:

def read_file(filename):
    try:
        sentences = []
        with open(filename, 'r') as infile:
            sentence = ''
            for line in infile.readlines():
                if(line.strip())=='':continue
                for word in line.split():

                    if word[-1] in ['.', '?', '!']:
                        sentence += word
                        sentences.append(sentence)
                        sentence = ''
                    else:
                        sentence += word + ' '
        return sentences
    except:
        return None


def reverse_line(sentence):
    stack = []
    punctuation=sentence[-1]
    sentence=sentence[:-1].lower()
    words=sentence.split()
    words[-1] = words[-1].title()
    for word in words:
        stack.append(word)
    reversed_sentence = ''
    while len(stack) != 0:
        reversed_sentence += stack.pop() + ' '
    return reversed_sentence.strip()+punctuation


def main():
    filepath = input('File: ')
    sentences = read_file(filepath)
    if sentences is None:
        print('Unable to read data from file: {}'.format(filepath))
        return
    for sentence in sentences:
        reverse_sentence = reverse_line(sentence)
        print(reverse_sentence)


main()
python-3.x
1个回答
1
投票

您可以使用end关键字参数:

print(reverse_sentence, end=' ')

new的默认值为\n,最后打印一个新的行字符。

https://docs.python.org/3.3/library/functions.html#print

© www.soinside.com 2019 - 2024. All rights reserved.