Getting Started(Chapter 1 of Python 2.6 Text Processing)
![](https://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gif)
1 import sys
2 import string
3
4 CHAR_MAP = dict(zip(string.ascii_lowercase, string.ascii_lowercase[13:26] +
5 string.ascii_lowercase[0:13]))
6
7 def rotate13_letter(letter):
8 """
9 Return the 13-char rotation of a letter.
10 """
11 do_upper = False
12 if letter.isupper():
13 do_upper = True
14 letter = letter.lower()
15 if letter not in CHAR_MAP:
16 return letter
17 else:
18 letter = CHAR_MAP[letter]
19 if do_upper:
20 letter = letter.upper()
21 return letter
22
23 if __name__ == '__main__':
24 for char in sys.argv[1]:
25 sys.stdout.write(rotate13_letter(char))
26 sys.stdout.write('\n')
27
2 import string
3
4 CHAR_MAP = dict(zip(string.ascii_lowercase, string.ascii_lowercase[13:26] +
5 string.ascii_lowercase[0:13]))
6
7 def rotate13_letter(letter):
8 """
9 Return the 13-char rotation of a letter.
10 """
11 do_upper = False
12 if letter.isupper():
13 do_upper = True
14 letter = letter.lower()
15 if letter not in CHAR_MAP:
16 return letter
17 else:
18 letter = CHAR_MAP[letter]
19 if do_upper:
20 letter = letter.upper()
21 return letter
22
23 if __name__ == '__main__':
24 for char in sys.argv[1]:
25 sys.stdout.write(rotate13_letter(char))
26 sys.stdout.write('\n')
27