以下是代码:
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
答案 0 :(得分:2)
正如错误消息所述:您必须转换&#39; float&#39; str 明确地。
这可以解决您的问题:
print("Injectable SSH "+ str(result2) + " for the Network " + str(num2))
更好的是,使用format strings:
print("Injectable SSH {} for the Network {}".format(result2, num2))
它们可以帮助您保持信息格式清晰,结构清晰,透明。
答案 1 :(得分:0)
您必须将 result2 和 num2 显式转换为字符串。
print("Injectable SSH "+ str(result2) +"for the Network "+ str(num2))
答案 2 :(得分:0)
问题是你试图在行
中的字符串中添加一个浮点数(十进制)print("Injectable SSH "+ result2 +"for the Network "+num2)
“Interjectable SSH”是一个字符串,result2是一个浮点数,而python无法知道如何向字符串添加小数。有些语言会自动将float转换为字符串,但python不会,因此错误“无法将'浮动'对象转换为str隐式”。
您需要做的是显式使用内置的str()方法将result2和num2转换为字符串。通过必要的更改,该行看起来像这样:
print("Injectable SSH "+ str(result2) +"for the Network "+str(num2))
在python中还有其他一些方法可以做到这一点。如果你想查看它,请在“python字符串格式化”中查找教程。
答案 3 :(得分:0)
在python中,'+'用于连接字符串对象。 在python 2.7中的当然,你可以使用','对任何类型的对象进行串联/连接。
所以,解决方案可能就像:
print("Injectable SSH "+ str(result2) +"for the Network "+num2)