程序一直说'str'对象不可调用

时间:2019-09-11 22:30:32

标签: python

我应该编写一个程序,询问用户姓名和出生年月,然后用正确格式的句子输出姓名和年龄。

它本来应该像hello,xoxo, you are 15 years old那样出现,但是却说:

 Traceback (most recent call last):                                                                                            
  File "main.py", line 4, in <module>                                                                                         
    print("Hello,"),Name,"you are"(int(2019)-int(birth),"years old")                                                          
TypeError: 'str' object is not callable

1 个答案:

答案 0 :(得分:1)

此错误的原因是您正在“调用”字符串(文本)对象。这意味着您正在使用语法来调用一个函数,但是带有一个字符串:即在其后键入括号,如"your are"(int(2019)-int(birth),"years old")部分中所示。如果您正在调用一个函数,例如'print ()',但如果前一项是字符串,则不会。

此行的正确版本为:

print("Hello,", Name, "you are", 2019 - int(birth), "years old")

(请注意,我已将int(2019)替换为2019,因为这是多余的-python可以算出2019是一个整数,而无需将其显式转换为整数。我还在之后删除了右括号print("Hello,",以确保打印出整行,并添加一些空格以增强可读性。)