下面是我的作品。我以前做过printline函数,这个问题需要调用上面的函数printline来打印每一行。我试着打印3行,每行有4个符号,但我只能得到2行,每行有12个符号。有人能帮我更正代码吗
def printline(num,sym):
for i in range(num):
a = (num*sym)
return a
a = printline(5,'*')
print(a)
def printrectangle(num,height,sym):
for i in range(height):
a = printline(num,sym)*height
print(a)
return a
c = printrectangle(3,4,'*')
print(c)
这里有几件事:
在其他编程语言中,为了将同一字符串重复多次,通常会创建以下形式的循环:
由于这相当于将相同的字符串
num
连接几次,因此在python中有一种更简单的方法:您的解决方案之所以有效,是因为在返回变量
a
之前,您正在覆盖变量中的值num
次你说
printrectangle(3, 4, '*')
应该用4个符号打印3行。但是正如您所写的,第一个变量num=3
,第二个变量height=4
。 这里的输出实际上是:您的代码目前还没有做到这一点,但我们不要走在前面
printrectangle
函数中的return语句位于循环内。这意味着在循环的第一次迭代期间,函数将返回一个值。 轻松修复,只需退格,直到返回的缩进与循环的缩进对齐从第1部分开始,我在这里介绍了在python中,要多次连接同一个字符串,只需将该字符串乘以希望它显示的次数即可
在这里,我们希望字符串
printline(num, sym)
在每次之后都显示height
次,并使用enter键回车键发送
\n
命令。换句话说,诸如'a\nb'
之类的字符串被打印为:出于我们的目的,我们可以先将字符串
printline(num, sym)
与\n
连接起来,然后将结果字符串乘以height
得到printrectangle(num, height, sym)
的结果虽然这段代码将提供您所需要的内容,但我仍然怀疑您是否错误地交换了调用printrectangle(3,4,'*')本身中的num和height值
相关问题 更多 >
编程相关推荐