下面是代码:
import time
time.sleep(0.7)
while True:
print("Enter the word 'quit' to quit the calculator :(")
print("Enter the word 'freenet' to enroll the SSHcrack")
user_input = input(": ")
if user_input == "quit":
break
elif user_input == "freenet":
num1 = float(input("Enter a Port to Crack:"))
num2 = input("Enter a Network Name")
num3 = float(input("Enter an IP-Address,(without symbols!):"))
result = num3 / num1
result2 = result / 13
print("Injectable SSH "+ result2 +"for the Network "+num2)当然,这只是一个计算器(我只添加了问题代码块),我想用print语句进行测试,但是它给了我这个TypeError:
Traceback (most recent call last):
File "<mypath>", line 51, in <module>
print("Injectable SSH "+ result2 +"for the Network "+num2)
TypeError: Can't convert 'float' object to str implicitly发布于 2016-07-17 18:49:23
正如错误消息所述:您必须显式地将“float”转换为str。
这解决了您的问题:
print("Injectable SSH "+ str(result2) + " for the Network " + str(num2))更好的是,使用格式字符串
print("Injectable SSH {} for the Network {}".format(result2, num2))它们帮助您保持消息格式的整洁、结构化和透明。
发布于 2016-07-17 18:47:53
您必须显式地将result2和num2转换为字符串。
print("Injectable SSH "+ str(result2) +"for the Network "+ str(num2))发布于 2016-07-17 18:51:32
问题是,您试图在行中的字符串中添加浮点数(十进制)
print("Injectable SSH "+ result2 +"for the Network "+num2) "Interjectable“是一个字符串,result2是一个浮点数,python无法知道如何将十进制添加到字符串中。有些语言会自动将浮点数转换成字符串,但是python不会,因此错误“不能将' float‘对象隐式地转换为str”。
您需要做的是使用内置的str()方法显式地将result2和num2转换为字符串。在进行必要的更改后,行将如下所示:
print("Injectable SSH "+ str(result2) +"for the Network "+str(num2)) 在python中还有其他几种方法可以做到这一点。如果您想了解这一点,请查阅一个教程中的"python字符串格式“。
https://stackoverflow.com/questions/38424699
复制相似问题