首页 > 解决方案 > 程序一直说'str'对象不可调用

问题描述

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

它应该像 eg 一样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

标签: python

解决方案


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

此行的正确版本是:

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

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


推荐阅读