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

时间:2015-10-05 17:53:27

标签: python

所以我刚开始学习python,我试图用相同的重复字符制作一个矩形,例如如果height = 5和width = 3,那么字符是' P,'将创建一个5x3的P&#39矩形:

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

我知道我做错了什么但不确定它是什么

2 个答案:

答案 0 :(得分:1)

由于您似乎没有掌握如何使用for循环的概念,我将尝试解释它。 for循环执行x次内的任何代码。{1}}次。当您知道要迭代代码的次数时,就会使用它们。如果您有python 3.3,则指定使用range()函数的次数;如果您有2.7,则指定xrange()。在任何一种情况下,它们都是一样的您可以指定起点,终点和跳过。

>>>range(5, 11, 2)
5
7
9

注意11不在范围内?这是因为范围上升到结束点之前的数字10。您可以将跳过留空,因为它默认为1(range(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次。希望能够找到解决问题的正确方法。

link可能会有用,因为print会自动在您正在打印的内容上添加换行符。

答案 1 :(得分:1)

使用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