我在编写squ函数时遇到了Python问题

2024-10-01 19:26:23 发布

您现在位置:Python中文网/ 问答频道 /正文

def Quadrato():
    primariga = print("+", " - "*4, "+", " - "*4, "+")
    secondariga = print("|", " "*12, "|", " "*12, "|" )
    secondariga = print("|", " "*12, "|", " "*12, "|" )
    secondariga = print("|", " "*12, "|", " "*12, "|" )
    secondariga = print("|", " "*12, "|", " "*12, "|" )
    primariga = print("+", " - "*4, "+", " - "*4, "+")
    secondariga = print("|", " "*12, "|", " "*12, "|" )
    secondariga = print("|", " "*12, "|", " "*12, "|" )
    secondariga = print("|", " "*12, "|", " "*12, "|" )
    secondariga = print("|", " "*12, "|", " "*12, "|" )
    primariga = print("+", " - "*4, "+", " - "*4, "+")


Quadrato()

# UNA MANIERA SINTATTICAMENTE PIù ORDINATA SI HA QUANDO:
def quattrovolte(f):
    f()
    f()
    f()
    f()


def Quadrato_1():
    primariga = print("+", " - "*4, "+", " - "*4, "+")
    secondariga = print("|", " "*12, "|", " "*12, "|")
    print(primariga)
    quattrovolte(secondariga)
    print(primariga)
    quattrovolte(secondariga)
    print(primariga)

Quadrato_1()

我要做的是,用一种更好更简单的方法在第一个函数中画正方形,相反,我得到一个错误,它说:“NoneType”对象是不可调用的。有人能帮我吗


Tags: 方法defpiprinthaunasiquadrato
2条回答

问题是您正在将print语句传递给print语句。但是,print只返回None(除了在屏幕上打印一些东西之外)

解决此问题的一种方法是将primarigasecondariga定义为字符串:

def Quadrato_1():
    primariga = "+" + " - "*4 + "+" + " - "*4 + "+"
    secondariga = "|" + " "*12 + "|" + " "*12 + "|"
    print(primariga)
    for i in range(4):
        print(secondariga)
    print(primariga)
    for i in range(4):
        print(secondariga)
    print(primariga)

Quadrato_1()

返回此:

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

我还添加了两个for循环,以更好地重复secondariga四次

在这里,您试图用print()函数定义一个变量print()在运行时不返回任何内容,因此将变量设置为它将导致它成为指向nothing的指针,因为从未创建过任何对象

以下是您应该做的:

def square():
    #setting these to a tuple and not a function.
    p = ("+", " - "*4, "+", " - "*4, "+") 
    q = ("|", " "*12, "|", " "*12, "|" )
    order = (p,q,q,q,q,p,q,q,q,q,p)
    for i in order:
        print('',join(i))

square() #if all goes well, this will print a square into the terminal. ::))

相关问题 更多 >

    热门问题