“如何修改以下程序,使其以特定格式打印?”

时间:2019-04-08 15:45:54

标签: python python-3.x string function debugging

我正在尝试修改以下程序,以便它以以下格式打印字符串

输入Fred, 4

输出

Fred

Fred Fred

Fred Fred Fred

Fred Fred Fred Fred

此代码中有3个错误:

def prlines(str, num):

    n in range(0,num):

    print (str (n + 1))


prlines()

所以我已经尝试了以下代码:

name=str(input('Enter a name:'))  
num=int(input('Enter a number:'))  

 def prlines(str, num):  

    for n in range(0, num):

      print(str*(n + 1))

 print(prlines(name, num))

我得到了这个实际结果(例如,名称为“ Fred”,数字为“ 4”):

Fred

FredFred

FredFredFred

FredFredFredFred

None

我的问题是如何获得预期的结果并显示以下约束:

  • 最后没有任何内容

  • 字符串之间有空格

2 个答案:

答案 0 :(得分:1)

您可以使用:

f'{s} ' * n + f'{s}'

代码

name = input('Enter a name: ')
num = int(input('Enter a number: '))

def prlines(s, num):
    for n in range(num):
        print(f'{s} ' * n + f'{s}') 

prlines(name, num)

几点

  • 不要将变量命名为str

  • 默认情况下没有return的函数会返回None,因此最后有一个None

答案 1 :(得分:1)

第一

代码分析

name=str(input('Enter a name:'))  
num=int(input('Enter a number:'))  

def prlines(str, num):  

    for n in range(0, num):

        print(str*(n + 1)) # No spaces added = No spaces on the output

print(prlines(name, num)) # You are printing the output of the above function, which is None since it has no "return"

print(func())是您从中获得任何奖励的地方

由于您仅多次打印str,因此不包含空格(python不会知道:)

答案

name=str(input('Enter a name:'))  
num=int(input('Enter a number:'))  

def prlines(str, num):  
    for n in range(0, num):
        print((str+' ')*(n + 1))

prlines(name, num)

建议

这段代码很粗糙,当有人在第二个输入中没有输入int时,您需要考虑错误处理。