I'm pulling my hairs here...
import os
import random
MAC = (0,0,":",0,0,":")
chars 开发者_StackOverflow= ('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
What am I doing wrong?! The indentation is correct, just as the example shows. Any help is welcomed. EDIT: OH CRAP, forgot to show what the error is..
File "macchanger.py", line 12 a += 1 ^ SyntaxError: invalid syntax
You're looking for the logical or (or) and not the bitwise or (|).
Chars is not a function, but an array. Use array subscripts to get at values. (i.e. chars[rand] and not chars(rand).
You're missing a parenthesis after the append random char line.
You also can't append to tuples, need to make MAC a list.
The random module also has no 'randomint' function. You're looking for randint.
edit: This can also replace your entire function if you're looking to use Python's generators:
MAC = ':'.join(['%02x'%c for c in [0, 0]+[random.randint(0,255) for d in range(4)]])
Try
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])
returns
00:00:cd:c1:7d:c0
- missing closing parenthese in - MAC.append(chars(random.randomint(0,15)) 
- MAC needs to be list since you're appending, tuples are immutable 
- random.randint (and not random.randomint) 
There are several issues:
- The one the compiler tells you about - mismatches parens at the line above (as always, the exact error message would have helped)
- You're using |(the bitwise or) when you wantor(the logical or). Note that you can do this check better, by usinga in <tuple of values>.
- You can't .appendto a tuple (or otherwise mutate it), use a list.
- You should simply use for a in range(5, 18)instead of counting manually in a while loop.
- You're calling the charstuples - indexing uses square backets (chars[...]). Note that you just userandom.choice.
 
         
                                         
                                         
                                         
                                        ![Interactive visualization of a graph in python [closed]](https://www.devze.com/res/2023/04-10/09/92d32fe8c0d22fb96bd6f6e8b7d1f457.gif) 
                                         
                                         
                                         
                                         加载中,请稍侯......
 加载中,请稍侯......
      
精彩评论