如何在Python中跳过行

时间:2017-12-07 00:32:12

标签: python

我在计算机界遇到这个问题时遇到问题,我知道这可能是一个非常简单的练习但很好,我想我还有很多需要学习的东西。

当其中一个输入中没有输入任何内容时,就会出现问题。最后一个输入是"END"所以我想创建一些方法来跳过其他输入(想想goto)以防止出错。

我将不胜感激任何有关优化/结构改进的建议。

提前谢谢。

代码:

width = int(input())
second = input()
third = input()
fourth = input()
fifth = input()
sixth = input()


lenght_of_second = len(second)
lenght_of_third = len(third)
lenght_of_fourth = len(fourth) 
lenght_of_fifth = len(fifth)
lenght_of_sixth = len(sixth)


periods = width - lenght_of_second 

periods_on_side = periods // 2
reminder_periods = periods % 2
if second != "END":
   print("." * reminder_periods + "." * periods_on_side + second + periods_on_side * "." )






periods = width - lenght_of_third 

periods_on_side = periods // 2
reminder_periods = periods % 2
if third != "END":
   print("." * reminder_periods + "." * periods_on_side + third + periods_on_side * "." )




periods = width - lenght_of_fourth

periods_on_side = periods // 2
reminder_periods = periods % 2
if fourth != "END":
   print("." * reminder_periods + "." * periods_on_side + fourth + periods_on_side * "." )




periods = width - lenght_of_fifth 

periods_on_side = periods // 2
reminder_periods = periods % 2
if fifth != "END":
   print("." * reminder_periods + "." * periods_on_side + fifth + periods_on_side * "." )




periods = width - lenght_of_sixth

periods_on_side = periods // 2
reminder_periods = periods % 2
if sixth != "END":
   print("." * reminder_periods + "." * periods_on_side + sixth + periods_on_side * "." )

对于此程序,第一行输入是整数宽度。然后,有一些文字;第"END"行表示文本的结尾。

对于每行文字,您需要通过向左和向右添加句点..来打印出它的居中版本,以便每行文本的总长度为宽度。 (所有输入行的长度最多为。)

居中意味着如果可能,添加到左侧并添加到右侧的句点数应相等;如果需要,我们允许左侧比右侧多一个时段。

例如,输入:

13
Text
in
the
middle!
END  

正确的输出

.....Text....
......in.....
.....the.....           
...middle!...

1 个答案:

答案 0 :(得分:0)

我可能会在十年之后来,但我仍会为您提供一个简单的答案:使用循环

width = int(input("Introduce the width:"))
lines = []
lastline = input("Write a line of text: ")
while lastline != "END":
    lines.append(lastline)
    lastline = input("Write a line of text: ")
for i in lines:
    print(("{:.^%d}" % width).format(i))

这可以按照您在问题中的预期运作。我希望它可以帮助某人:)