如何组合python字符串和整数?

时间:2013-12-14 21:42:32

标签: python string-formatting

我一直在研究一个小工具包,现在作为一种学习基本python的方法。此工具包的一部分是遵循此解释的代码。它是一个基本的网络枚举脚本,只需ping您本地子网中的所有IP地址。但是我在实现一些问题时遇到了问题。 首先是代码

ip1=raw_input()

if ip1 == None:
    ip="192.168.0.x"
else:
    ip=ip1

ipend="1"

while ipend != 255:
    ip.replace("x", ipend) 

    attempt=subprocess.Popen(["ping.exe", ip], stdout=subprocess.PIPE).communicate()[0]

    if ("unreachable" in attempt):
        pass
    else:
        print "The host at ", ip, "is UP!"

    ipend += 1

if ipend == "255":
    subprocess.stop
        raw_input("Thank you for using PTK. Please press enter to exit.")

enum()

所以我的第一个问题,我相信是在我的str.replace函数中,我正在尝试和一个int到一个str,因此它似乎无法创建,ping和打印正确的ip。我不确定将整个字符串转换为浮动int是否会起作用,但是我认为这是一种想法。如前所述,我对python非常基础,正在努力学习,所以如果这是一个简单修复的愚蠢问题,请原谅我。

1 个答案:

答案 0 :(得分:2)

这一行实际上并没有做任何事情。您需要将结果分配给某些内容。

ip.replace("x", ipend) 

ipend是一个字符串,递增字符串将不起作用。将它设为int并将其转换为replace函数中的str。

 ipend += 1

如果可以的话,通常最好使用for循环,这样你就可以避免搞乱并创建无限循环。

for ipend in range(1,256): #Range won't actually give you the last number here.
    #Do stuff