猿问

我在编写一个正方形的函数时遇到了 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”对象不可调用。有人能帮助我吗?


交互式爱情
浏览 165回答 2
2回答

鸿蒙传说

问题是您将print语句传递给print语句。然而,print只返回None(除了在屏幕上打印一些东西)。解决此问题的一种方法是将primariga和定义secondariga为字符串: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四次的更好方式。

慕无忌1623718

在此,您尝试使用print()函数定义变量。print()它运行时不返回任何内容,因此为它设置一个变量将导致它成为一个指向空的指针,因为从未创建过任何对象。这是你应该做的: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. ::))
随时随地看视频慕课网APP

相关分类

Python
我要回答