【问题标题】:callig str when using functions使用函数时调用 str
【发布时间】:2016-02-11 19:37:47
【问题描述】:

我正在编写一些代码来打印一个有这么多行的三角形,但是当我尝试它时它说,

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)

【问题讨论】:

  • 请在您的帖子中包含代码,而不是作为评论。并使用内置的代码格式(反引号或缩进)使其更易于阅读。
  • 我不知道print 行应该做什么。看起来您缺少一堆运算符。

标签: python function


【解决方案1】:

问题在于您的打印语句中的标点符号。您连续打印三个字符串,但您忘记在它们之间放置任何连接操作。试试这个:

print ((x*(str(" "))) + (int(i)*(str("*"))) + ((int(row)-int(i))*(str(" "))))

此外,您为什么要进行所有这些类型强制 - 所有这些变量都已经具有正确的类型。将其简化为:

print (x*" " + i*"*" + (row-i)*" ")

【讨论】:

    【解决方案2】:

    您正试图通过在代码中将它们彼此靠近来连接字符串,如下所示:

    ("hello")(" ")("world")
    

    在命令行上尝试一下,看看会发生什么。这不是您使用的语言的语法。然后尝试使用加号。

    "hello" + " " + "world"
    

    【讨论】:

      猜你喜欢
      • 2020-09-11
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2013-05-05
      • 2014-08-11
      • 2022-01-15
      • 2017-05-01
      • 2014-03-06
      相关资源
      最近更新 更多