mac_to_cisco_format is long, mac_to_cisco may be alright. If someone had successfully guessed that mac_conv converts MAC address, they'd still have to guess the format.
#HOW TO CONVERT MAC ADDRESS TO DECIMAL FOR MAC#
There may be other formats for MAC addresses. If you wanted to do something else with MAC in that format (like printing it as a part of some string), what would you do? Naming You print the result instead of return-ing it. If this was going into a product, I would probably add some error handling too, to allow for input that isn't a mac address - too short, too long, wrong separators, alternate groupings (a cisco-formatted address is still a valid mac address, but this function won't handle it.)Ĭode seems fine - it works and is easy to comprehend. If I was writing this, however, I would probably do it in just a couple of lines, as you know exactly how the input and output strings are going to be formatted: def mac_conv(mac, sep='-'):
You can actually eliminate that usage of the variable all together: #join groups into a single MAC I would also avoid reusing variables, especially if its a function argument ( mac). #Open file with MAC addresses and convert them Return '.'.join(''.join(group) for group in groups)įirst of all, you should be using return rather than print to get a value out of a function, otherwise you'll have problems when you try to expand the program. This can result in: def mac_conv(mac, sep='-'): Other than the above function, you don't need to use f.readlines() you can just use f. I'd then join the last three lines into one.Īs return and '.'.join are easy to understand in a single one-liner. Perform a list comprehension to join the sliced segments together.Slice segments into a three item list.To do this I would base my algorithm around the use of a list comprehension. The only thing I'd change is to reduce the amount of lines.