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”对象不可调用。有人可以帮我吗?
答案 0 :(得分:3)
问题在于您要将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
重复四次的更好方法。
答案 1 :(得分:0)
在这种情况下,您尝试使用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. ::))