Python 3.x Python作用域变量返回无

Python 3.x Python作用域变量返回无,python-3.x,function,variables,Python 3.x,Function,Variables,我正在尝试基于我正在创建的函数构建一个网格。我已经为 grid1(number): D = ('-' * number) S = (' ' * number) H = print('+'+ D +'+' + D + '+') V = print('|'+ S + '|' + S + '|' '\n') print( H '\n' (V * number) + H '\n'+ (V * number) + H) 基本上,我正在尝试创建一个2 x 2的网格,

我正在尝试基于我正在创建的函数构建一个网格。我已经为

grid1(number):
    D = ('-' * number)
    S = (' ' * number)
    H = print('+'+ D +'+' + D + '+')
    V = print('|'+ S + '|' + S + '|' '\n')
    print( H '\n' (V * number) + H '\n'+ (V * number) + H)
基本上,我正在尝试创建一个2 x 2的网格,当它第二次打印V变量,甚至下一次打印H时,变量返回为None。据我所知,我没有创建迭代器,因此仍然应该分配变量


是否缺少范围变量?

我假设您希望将字符串分配给H和V,然后在下一个print语句中再次使用这些字符串。在这种情况下,您需要删除前两条
print
语句,只对变量赋值。对于其他一些修复,这将导致:

def grid1(number):
    D = ('-' * number)
    S = (' ' * number)
    H = '+'+ D +'+' + D + '+'
    V = '|'+ S + '|' + S + '|' '\n'
    print( H + '\n' + (V * number) + H + '\n' + (V * number) + H)
这导致了例如:

>>> grid1(3)
+---+---+
|   |   |
|   |   |
|   |   |
+---+---+
|   |   |
|   |   |
|   |   |
+---+---+

print
不会返回任何内容,实际上
None
。你能修复这个示例代码吗,它看起来完全崩溃了。我只想按顺序打印这些变量,但是第一次可以,第二次就不行了。我试图理解为什么,这样我可以修复代码。