如何解决为什么这段代码没有成功运行?
name = input("What is your name? ")
print("My name is "+name+". "+"My name length is " + len(str(name)))
和输出是:
What is your name? Ali
Traceback (most recent call last):
File "c:\Users\iamAl\Desktop\Python\main.py",line 2,in <module>
print("My name is "+name+". "+"My name length is " + len(str(name)))
TypeError: can only concatenate str (not "int") to str
解决方法
您需要将从 len
返回的 int 转换为 str
,而不是将 str
转换为 str
然后使用 len
print("My name is " + name + ". " + "My name length is " + str(len(name)))
,
Python 是动态的,但是是强类型的。它不会让您直接将字符串添加到整数。您需要转换类型以使它们兼容(意味着必须有一个 addition operator 可以处理添加它们)。
可能的解决方案是:
- 将一种类型转换为另一种类型:
str(len(name))
- 使用字符串插值方法,例如fstrings:
f"My name is {name}. My name length is {len(name)}"
正如其他答案所指出的,len
返回一个 int
,并且您不能将 str
和 int
与 +
连接起来。
但是,您不应该像这样使用 +
,因为每个 +
都必须复制其参数。改用其中一种字符串格式选项,所有这些选项都会尝试将非 str
值转换为 str
值,并且只创建 one过程中的字符串(用于结果),而不是一系列临时字符串。例如,
print(f"My name is {name}. My name length is {len(name)}")
,
如果你想打印一个数字,你应该使用 ,
的 +
insted,在这种情况下 len() 返回一个 int 所以如果你想打印字符串长度,你应该首先将它转换为一个字符串。
我建议使用 .format
打印各种类型的数据:
name = input("What is your name? ")
print("My name is {}. My name length is: {}".format(name,len(str(name))))
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。