Python 如何制作由相同字符组成的矩形?

Python 如何制作由相同字符组成的矩形?,python,Python,因此,我刚开始学习python,我正试图用相同的循环字符制作一个矩形,例如,如果高度=5,宽度=3,并且字符为“p”,则将创建一个5x3的p矩形: PPPPP PPPPP PPPPP 但是我如何编写一个程序来实现它呢。我该怎么做呢?我知道我必须使用循环,但我不确定我必须做什么。谢谢 到目前为止,我掌握的代码是: def width_of_rectangle(width_size): for current_length in range(width_size): print('P'

因此,我刚开始学习python,我正试图用相同的循环字符制作一个矩形,例如,如果高度=5,宽度=3,并且字符为“p”,则将创建一个5x3的p矩形:

PPPPP
PPPPP
PPPPP
但是我如何编写一个程序来实现它呢。我该怎么做呢?我知道我必须使用循环,但我不确定我必须做什么。谢谢 到目前为止,我掌握的代码是:

def width_of_rectangle(width_size):
  for current_length in range(width_size):
    print('P',end='')

def height_of_rectangle(height_size):
  for current_height in range(height_size):
    width_of_rectangle(current_lenght)
    print('P',end='')
但它是一个三角形而不是一个矩形,因为它没有重复相同的次数,结果是:

P
PP
PPP
PPPP
PPPPP

我知道我做错了什么,但不确定它是什么,因为你似乎没有掌握如何使用for循环的概念,我将尝试解释它。For循环执行其中的任何代码x次。当您知道要在代码上迭代多少次时,可以使用它们。如果使用python 3.3,则指定使用range函数的次数;如果使用2.7,则指定使用xrange函数的次数。无论哪种情况,它们的工作原理都是一样的。可以指定起点、终点和跳过

>>>range(5, 11, 2)
5
7
9
注意11怎么不在范围内?这是因为范围上升到终点之前的数字,即10。您可以将跳过保留为空,因为默认范围为1 5,11。现在要在for循环中使用它,您可以这样编写它

>>>for x in range(5,11,2):
...    print(x)
对于循环的每次迭代,x是范围的当前值

您还可以嵌套循环,它是循环中的一个循环。如果我们有

>>>for i in range(5):
...    for j in range(4):
...       print('*')
内部for循环将执行5次,print语句将执行20次。希望这将走上正确的轨道来解决你的问题

这可能会很有用,因为打印会自动将换行符添加到您正在打印的任何内容上。

使用for并遵循SirParselot的精彩描述,可能是更好的可读性选择,但是for循环并不是您唯一的选择

def make_char_rectangle(char, height, width):
    return ((char*width)+'\n')*height
把它拆开一点,我们得到:

def make_char_rectangle(char, height, width):
    line = char * width
    rectangle = (line + '\n') * height
    return rectangle
使用上述任一项:

>>> print(make_char_rectangle('L', 3, 5))
LLLLL
LLLLL
LLLLL

欢迎来到堆栈溢出!您似乎在要求某人为您编写一些代码。堆栈溢出是一个问答网站,而不是代码编写服务。请学习如何写有效的问题。严格地说,你不需要循环就能做到这一点。提示:**5是一个有效的表达式。我建议大家通读一下,好吧,但我正在尝试学习如何使用循环,并且正在尝试如何使用它们尝试使用两个for循环,如果您仍然无法获得,请发布您尝试向人们展示的内容。好的,到目前为止,我已经成功地制作了一个三角形,但我不知道如何将其改为矩形。我得到的是:def-width\u-of-rectanglewidth\u-size:对于rangewidth中的当前长度\u-size:print'*',end=def-height\u-of-rectangleheight\u-size:对于range1中的当前高度,高度\u大小+1:u矩形的宽度\u构成三角形的当前高度打印。我不知道如何编辑this@RodrigoCardenas您的问题是,您正在使用当前的高度调用矩形的宽度函数。发生的情况是,循环的第一次迭代,当前_高度为1,因此对于当前长度,它将只循环一次。对于第二次迭代,当前_高度为2,因此当前_长度循环将迭代两次。看看你能不能从中找到答案。