Skip to main content
 首页 » 编程设计

python之在 Python 中的字符串末尾添加一个整数

2025年05月04日29wuhuacong

我需要生成一个以“192.168.0”开头的随机 IP 地址。所以基本上我只需要生成一个 0 到 255 之间的随机数并添加到这个字符串的末尾,但问题是我不知道如何合并整数和字符串。

到目前为止,这是我的代码:

import random 
 
x=random.randint(0,255) 
randIP = '192.168.0.' 
randIP.append(x) 
print randIP 

请您参考如下方法:

一般情况下,不要使用operator.add(例如+)来处理字符串。它没有什么特别的问题,但是使用 string formatting 是好的做法相反。

试试这个:

last_octet = random.randint(0,255) # please use descriptive var names 
IP_format = "{}.{}.{}.{}" 
IP = IP_format.format(192,168,0,last_octet) 

您的方法行不通,因为您在字符串上使用了 append。 append 是(通常被认为是)list 添加到自身的方法。如果您想使用该方法,您可以这样做:

last_octet = random.randint(0,255) 
IP_list = [192,168,0] 
IP_list.append(last_octet) # IP_list is now [192,168,0,<random number>] 
IP = ".".join(map(str,IP_list)) 

在最后一行中,我结合使用了两个您可能不知道的函数。

  • map 接受两个参数,第一个是函数(在本例中为 str,例如 str(192) --> "192"),第二个是可迭代的(在本例中为 list IP_list,但可迭代是您可以使用 for 循环的任何内容在)。它将您提供给它的函数应用于可迭代对象中的每个元素,并在 Python3 中为您留下一个称为 map 对象的不同可迭代对象。在 Python2 中,它返回一个 list。

  • "..join 显式调用 str.join。它接受一个可迭代对象作为参数(见上文),并将 str 放在可迭代对象的每个元素之间。 ".".join(["192","168","0","255"]) 给你 "192.168.0.255"。这可能最常被它在 os.path 中的别名使用,os.path.join 接受一组参数并在每个参数之间放置本地路径分隔符,例如os.path.join("C:","Program Files","AdamSmith","locale","en-US","docs.html") 会在 Windows 上给你一个字符串那是 "C:\Program Files\AdamSmith\locale\en-US\docs.html" 而在 *nix 上那是 C:/Program Files/AdamSmith/locale/en-US/docs .html"