【问题标题】:Python - scope variables returning nonePython - 范围变量不返回
【发布时间】:2017-09-19 05:32:11
【问题描述】:

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

分配了一个内部变量
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。据我所知,我没有创建迭代器,因此仍应分配变量。

我是否缺少范围变量的内容?

【问题讨论】:

  • print 不返回任何内容,实际上是None。您能否修复该示例代码,它看起来完全损坏了。
  • 我只想按顺序打印这些变量,但是它第一次有效,但第二次无效。我试图理解为什么我可以修复代码。

标签: python-3.x function variables


【解决方案1】:

我假设您想将字符串分配给 H 和 V,然后在下一个打印语句中再次使用它们。在这种情况下,您需要删除前两个 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)
+---+---+
|   |   |
|   |   |
|   |   |
+---+---+
|   |   |
|   |   |
|   |   |
+---+---+

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2020-07-24
    • 1970-01-01
    • 2016-01-03
    • 2011-02-10
    • 1970-01-01
    • 2012-06-24
    • 1970-01-01
    相关资源
    最近更新 更多