找不到的语法错误
我快抓狂了...
import os
import random
MAC = (0,0,":",0,0,":")
chars = ('0','1','2','3','4','5','6','7','8','9','a','b','c','d','e')
a = 5
while (a <= 17):
if a == 6 | a == 9 | a == 12 | a == 15:
MAC.append(":")
else:
MAC.append(chars(random.randomint(0,15))
a += 1
print MAC
我到底哪里出错了?!缩进是正确的,就像例子里显示的那样。任何帮助都非常欢迎。补充:哦,糟糕,忘了说错误是什么了...
文件 "macchanger.py",第12行 a += 1 ^ 语法错误:无效的语法
4 个回答
1
缺少了一个闭合的括号在
MAC.append(chars(random.randomint(0,15))
MAC 需要是一个列表,因为你要添加内容,元组是不可变的
应该用 random.randint(而不是 random.randomint)
2
尝试一下
import os
import random
def makeMAC(pre=None):
pre = [int(i) for i in pre] if pre else []
for byte in range(len(pre), 6):
pre.append(random.randint(0,255))
return ':'.join('%02x'%(i) for i in pre)
print makeMAC([0,0])
返回
00:00:cd:c1:7d:c0
4
你在找的是逻辑或(or
),而不是位运算的或(|
)。
Chars 不是一个函数,而是一个数组。你需要用数组下标来获取值。也就是说,要用 chars[rand]
,而不是 chars(rand)
。
在添加随机字符的那一行后面,你缺少一个右括号。
你也不能往元组里添加元素,需要把 MAC
改成一个列表。
random
模块里没有 'randomint' 这个函数。你应该用 randint
。
编辑:如果你想使用 Python 的生成器,这个可以替代你整个函数:
MAC = ':'.join(['%02x'%c for c in [0, 0]+[random.randint(0,255) for d in range(4)]])