我正在try 用只使用for循环和函数的Python语言创建一个使用不同符号(+、-、|)的网格.它应该是一个2乘以‘n’的网格,其中‘n’是用户将输入的函数的参数. [如果n=2,则应该是这样的]

+ - - - - + - - - - +
|         |         |
|         |         |
|         |         |
|         |         |
+ - - - - + - - - - +
|         |         |
|         |         |
|         |         |
|         |         |
+ - - - - + - - - - +

以下是我到目前为止得到的信息:

#function for 2byN grid
def print_2byN(n):
  def print_2byN_rows_columns(r): #r = rows
    for x in range(r):
      for y in range(n):
        print('+', '- '*4, end='')
        print('+')
        for num in range(4):
          print('|', '  '*4, end='')
          print('|')
    print('+', '- '*4, end='')
    print('+')
  print_2byN_rows_columns(2)

#Main
print_2byN(int(input("Enter an integer for 2byN: ")))

当我为n输入"1"时,我得到这样的结果(这是应该发生的):

+ - - - - +
|         |
|         |
|         |
|         |
+ - - - - +
|         |
|         |
|         |
|         |
+ - - - - +

当我为n输入"2"时,我得到这样的结果(这是不应该发生的):

+ - - - - +
|         |
|         |
|         |
|         |
+ - - - - +
|         |
|         |
|         |
|         |
+ - - - - +
|         |
|         |
|         |
|         |
+ - - - - +
|         |
|         |
|         |
|         |
+ - - - - +

推荐答案

要生成列,必须使用n添加一个for循环,如下所示:for _ in range(n).

我尽可能少地更改您的代码以获得所需的结果:

#function for 2byN grid
def print_2byN(n):
    def print_2byN_rows_columns(r): #r = rows2
        for _ in range(r):
            for _ in range(n):
                print('+', '- '*4, end='')
            print('+')
            for _ in range(4):
                for _ in range(n):
                    print('|', '  '*4, end='')
                print('|')
        for _ in range(n):
            print('+', '- '*4, end='')
        print('+')
    print_2byN_rows_columns(2)

#Main1
print_2byN(int(input("Enter an integer for 2byN: ")))

Python相关问答推荐

如何计算部分聚合数据的统计数据

Python:记录而不是在文件中写入询问在多文件项目中记录的最佳实践

如何修复使用turtle和tkinter制作的绘画应用程序的撤销功能

Python -Polars库中的滚动索引?

在应用循环中间保存pandas DataFrame

将HTML输出转换为表格中的问题

Chatgpt API不断返回错误:404未能从API获取响应

分组数据并删除重复数据

如何比较numPy数组中的两个图像以获取它们不同的像素

如何使用Python将工作表从一个Excel工作簿复制粘贴到另一个工作簿?

如何在Python中将returns.context. DeliverresContext与Deliverc函数一起使用?

计算组中唯一值的数量

Python键入协议默认值

无法使用requests或Selenium抓取一个href链接

"使用odbc_connect(raw)连接字符串登录失败;可用于pyodbc"

Python中的变量每次增加超过1

在Python中调用变量(特别是Tkinter)

在单次扫描中创建列表

基于另一列的GROUP-BY聚合将列添加到Polars LazyFrame

为什么调用函数的值和次数不同,递归在代码中是如何工作的?