
For the honours students, they are distinguished by the World, they would have been called Class D addresses (although nowadays it is not considered polite In fact, you could accept desired format as a parameter (instead of your sep).Multicast IP addresses fall within the range 224.0.0.0 - 239.255.255.255. While you could handle that with naming/documentation, you can change your algorithm to convert MACs from several formats to CISCO one - simply remove separators from strings (multiple str.replace-s will do) and then slice the result as you wish.



You assume some format of input data, while it's not spelled-out explicitly. #print final MAC address is just a visual garbage - next line is self-descriptive enough. #Coverts MAC Addresses into cisco format should be a docstring instead. Separator instead of sep may help a little bit to someone who only sees function's signature (as in many IDEs). 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. 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.

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.
