如何在多个不同的行上多次打印消息?

时间:2019-05-31 18:35:10

标签: python

对于刚接触python的初学者来说,在这种事情上并不是很擅长,所以请不要整顿我在reddit上的糟糕经历。

但是,我无法获得用户输入来重复该字符串x次,但是我无法使其在不同的行上重复。

我以多种不同的方式尝试了\ n多次(我使用的唯一东西),但是我只是得到了无效的语法,但我还没有真正尝试过多地更改基本代码。

age = int(input("how old are you?: "))

agedifference = 100 - age

print ("you will be 100 in",agedifference,"years") * int(input("pick a number: "))

所以基本上我需要用户选择一个数字(例如4),然后在4条不同的行上将短语重复4次。

如果您能给出一个带有深入解释的解决方案,我将不胜感激(没有深入了解新事物的想法)

4 个答案:

答案 0 :(得分:0)

尝试一下(假设您使用的是python3):

age = int(input("how old are you?: "))

agedifference = 100 - age

print(f"you will be 100 in {agedifference} years\n" * int(input("pick a number: ")))

对于python2:

age = int(input("how old are you?: "))

agedifference = 100 - age

print("you will be 100 in {} years\n".format(agedifference) * int(input("pick a number: ")))

答案 1 :(得分:0)

针对您想要的内容有很多解决方案:

经典的for循环:

for _ in range(num):
    print(f"you will be 100 in {agedifference} years")

在python中,打印默认情况下会结束该行,您可以通过修改函数的end参数来更改此行为。

更多蟒蛇皮的衬里:

print('\n'.join([f"you will be 100 in {agedifference} years"] * num))

此功能利用了多种python功能:

  • str.join(iterable)将通过串联包含在iterable中的所有元素来创建一个字符串,并通过在两者之间添加str来加入它们。
  • list * int重复list int次中的所有元素。
  • f-string是在字符串中插入变量而不必串联字符串的多种方法之一。

答案 2 :(得分:0)

您也可以执行以下操作:

您要求用户输入年龄,然后计算年龄差异。

然后,您要求用户输入必须重复的时间。

然后使用for循环将输出循环到用户指定的次数。

age = int(input("how old are you?: "))

agedifference = 100 - age

times = int(input("pick a number: "))

for i in range(0,times):
    print ("you will be 100 in",agedifference,"years")

答案 3 :(得分:0)

代码发生的事情是您将print()的返回值None乘以用户输入的数字。相反,您应该重复在print()函数中传递的字符串。

在此处调用print()函数时,请确保打印的字符串以\n结尾。同样,我的示例需要Python> = 3.6,因为该字符串的格式设置方式(在字符串之前带有'f'),因此它被称为literal string interpolation

最后,要摆脱打印空行的最后一行返回,请将参数end=''添加到对print()的调用中(因为此字符已经在您的打印字符串中)。 / p>

age = int(input("how old are you?: "))

age_difference = 100 - age

repetitions = int(input("pick a number: "))

print(f"you will be 100 in {age_difference} years\n" * repetitions, end='')