2024-04-17 20:45:49 发布
网友
我不熟悉Python和编码。我的要求很简单。在
我会提示用户输入macaddress。输入后,我将打印接下来的3个mac地址。例如,如果输入的mac地址是00:00:00:00:00:00,我应该能够以以下格式打印接下来的3个mac地址 00:00:00:00:00:01 00:00:00:00:00:02 00:00:00:00:00:03
请帮忙
您可以这样验证macaddress:
def isMAC48Address(inputString): if inputString.count(":")!=5: return False for i in inputString.split(":"): for j in i: if j>"F" or (j<"A" and not j.isdigit()) or len(i)!=2: return False return True
首先使用正则表达式验证您的MAC地址。如果格式正确,那么只需删除:字符,给您一个可以转换为整数的十六进制值。使用此整数计算接下来的3个值。对于每个整数,将值转换回十六进制字符串(前面有适当的零填充)。然后打印输出,将丢失的:字符放回:4
:
import re mac_address = input('Please enter a MAC address: ') valid = re.match('(?=[a-f0-9]{2}:){5}[a-f0-9]{2}', mac_address, re.I) if valid: mac_as_int = int(mac_address.replace(':', ''), 16) for address in range(mac_as_int + 1, mac_as_int + 4): output = '{:012X}'.format(address) print('{}:{}:{}:{}:{}:{}'.format(output[0:2], output[2:4], output[4:6], output[6:8], output[8:10], output[10:12])) else: print('Invalid MAC address')
这将正确处理一个值转移到下一个块的情况:
您可以这样验证macaddress:
首先使用正则表达式验证您的MAC地址。如果格式正确,那么只需删除
:
字符,给您一个可以转换为整数的十六进制值。使用此整数计算接下来的3个值。对于每个整数,将值转换回十六进制字符串(前面有适当的零填充)。然后打印输出,将丢失的:
字符放回:4这将正确处理一个值转移到下一个块的情况:
^{pr2}$相关问题 更多 >
编程相关推荐