我正在编写一些代码来打印一个有这么多行的三角形,但是当我尝试它时,它说,
how many rows in the triangle 5
Traceback (most recent call last):
File "U:\School\Homework\year 8\module 3\IT\python\lesson 10\extention task set by Mr Huckitns.py", line 6, in <module>
triangle(5)
File "U:\School\Homework\year 8\module 3\IT\python\lesson 10\extention task set by Mr Huckitns.py", line 5, in triangle
print((x*(str(" ")))(int(i)*(str("*")))((int(row)-int(i))*(str(" "))))
TypeError: 'str' object is not callable
任何人都知道这里发生了什么
the code i am using is
inttrow=int(input("how many rows in the triangle "))
def triangle(row):
for i in range(1,row):
x=int(inttrow)-int(i)
print((x*(str(" ")))(int(i)*(str("*")))((int(row)-int(i))*(str(" "))))
triangle(5)
答案 0 :(得分:0)
问题在于print语句中的标点符号。您连续打印了三个字符串,但是忘了在它们之间进行任何连接操作。试试这个:
print ((x*(str(" "))) + (int(i)*(str("*"))) + ((int(row)-int(i))*(str(" "))))
此外,为什么要进行所有这些类型强制 - 所有这些变量都已经具有适当的类型。把它剪切到这个:
print (x*" " + i*"*" + (row-i)*" ")
答案 1 :(得分:0)
您试图通过将字符串放在代码中彼此靠近来尝试连接字符串,如下所示:
("hello")(" ")("world")
在命令行上尝试,看看会发生什么。它不是您正在使用的语言的语法。然后尝试使用加号。
"hello" + " " + "world"