我正在尝试修改以下程序,以便它以以下格式打印字符串
输入: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
我的问题是如何获得预期的结果并显示以下约束:
最后没有任何内容
字符串之间有空格
答案 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时,您需要考虑错误处理。