python - 程序一直说'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
解决方案
此错误的原因是您正在“调用”一个字符串(文本)对象。这意味着您正在使用调用函数的语法,但使用字符串:即在其后键入括号,如"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,"
以确保打印整行,并添加了一些空格以提高可读性。)
推荐阅读
- javascript - Javascript将文本字段限制为数字和小数?
- java - Embedded Jetty:如何在源代码中设置 JMX 端口
- amazon-dynamodb - 使用值列表查询 DynamoDB GSI
- javascript - 反应 ref 以通过呈现为 this.props.children 的子级
- java-8 - 缓存 Java 8 流
- c++ - 无法检测 T::value() 使用 auto 参数化 true_type
- ios - aws Rekognition 未在 iOS 上初始化
- c# - 如何使用泛型将两个函数组合成一个函数?
- python - 获取 zip 文件的详细信息 - 而不是从其内容中获取
- python - 在python中检查两个字符是否相等