Python - 范围变量返回none

时间:2017-09-19 05:32:12

标签: 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的网格,当它第二次打印V变量,或者甚至是下一个H时,变量返回为None。据我所知,我没有创建迭代器,因此仍应分配变量。

我错过了范围变量吗?

1 个答案:

答案 0 :(得分:0)

我假设您想要将字符串分配给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)
+---+---+
|   |   |
|   |   |
|   |   |
+---+---+
|   |   |
|   |   |
|   |   |
+---+---+