2012-08-14 77 views
0

我需要获得字符映射表:字符映射表,蟒蛇

chr:  ! " # $ % & ' ( ) * + , - . /
asc: 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 
chr: 0 1 2 3 4 5 6 7 8 9 : ; < = > ? 
asc: 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 
chr: @ A B C D E F G H I J K L M N O 
asc: 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 
chr: P Q R S T U V W X Y Z [ \ ] ^ _ 
asc: 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 
chr: ` a b c d e f g h i j k l m n o 
asc: 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 
chr: p q r s t u v w x y z { | } ~ 
asc: 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 

我写了一个程序对于这些,但它doen't给了我这些面板。我会后我的代码太:

for a in range(32,128): 
    b=chr(a) 
    print(b) 
    print(a) 

,输出是:

32 
! 
33 
" 
34 
# 
35 
$ 
......... 
+1

所需输出包含6对'chr'和'asc'行。所以考虑一个长度为四的循环。 – 2012-08-14 11:03:57

+0

@Tichodroma谢谢你,我想我现在可以做到。 – Reginald 2012-08-14 11:05:45

+0

如果你做到了,请添加你的解决方案作为答案。 – 2012-08-14 11:10:50

回答

3

尝试是这样的:

for i in xrange(32, 128, 16): 
    print 'chr:\t%s' % '\t'.join(map(chr, [i+j for j in range(16)])) 
    print 'asc:\t%s' % '\t'.join(map(str, [i+j for j in range(16)])) 

更新为Python 3:

for i in range(32, 128, 16): 
    print('chr:\t%s' % '\t'.join(map(chr, [i+j for j in range(16)]))) 
    print('asc:\t%s' % '\t'.join(map(str, [i+j for j in range(16)]))) 
+0

无效的sintax,我想你写在python 2. – Reginald 2012-08-14 11:27:52

+1

那么?如果您发现解决方案有用,请自行调整。 (提示:在python 3中'xrange'被称为'range')。 – alexis 2012-08-14 11:32:38

+1

我相信'[i + j在范围内(14)]]''应该有'范围(16)'而不是14个。 – jszakmeister 2012-08-14 11:39:32

2
>>> import pprint 
>>> a 
[1, 2, 3, 4, 5, 5] 
>>> c = [a]*3 
>>> c 
[[1, 2, 3, 4, 5, 5], [1, 2, 3, 4, 5, 5], [1, 2, 3, 4, 5, 5]] 
>>> pprint.pprint(c,width=60) 
[[1, 2, 3, 4, 5, 5], 
[1, 2, 3, 4, 5, 5], 
[1, 2, 3, 4, 5, 5]] 
>>> 

http://docs.python.org/library/pprint.html