为了账号安全,请及时绑定邮箱和手机立即绑定

我在编写一个正方形的函数时遇到了 Python 问题

我在编写一个正方形的函数时遇到了 Python 问题

交互式爱情 2021-11-02 20:26:23
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”对象不可调用。有人能帮助我吗?
查看完整描述

2 回答

?
鸿蒙传说

TA贡献1865条经验 获得超7个赞

问题是您将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四次的更好方式。


查看完整回答
反对 回复 2021-11-02
?
慕无忌1623718

TA贡献1744条经验 获得超4个赞

在此,您尝试使用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. ::))


查看完整回答
反对 回复 2021-11-02
  • 2 回答
  • 0 关注
  • 164 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信