их код в виде:
a: XX
b: XX
c: XX
1 print '\n'.join([ ("%s:%i") % (chr(i), i) for i in list(range(ord('a'),ord('z')+1))+list(range(ord('A'),ord('Z')+1)) ])
list() добавлен для совместимости с третьим питоном (там range возвращают итератор, а не список)
ну и последним шагом стоит добавить юникод, чтобы можно было то же самое делать для русских букв
2 print '\n'.join([ ("%s:%i") % (unichr(i), i) for i in list(range(ord(u'а'),ord(u'я')+1))+list(range(ord(u'А'),ord(u'Я')+1)) ])
буква "ё" пропала, но будем считать это издержками юникода
2. Как определить - объявлялась ли выше переменная или нет?
1 try:
2 a # does a exist in the current namespace
3 expect NameError:
4 a = 10 # nope
2 a # does a exist in the current namespace
3 expect NameError:
4 a = 10 # nope