Archive

Archive for September, 2010

Pretty print an integer

September 24, 2010 2 comments

Exercise: Take an integer and print it in a pretty way, i.e. use commas as thousands separators. Example: 1977 should be 1,977.

Solution:

#!/usr/bin/env python

def numberToPrettyString(n):
    """Converts a number to a nicely formatted string.
       Example: 6874 => '6,874'."""
    l = []
    for i, c in enumerate(str(n)[::-1]):
        if i%3==0 and i!=0:
            l += ','
        l += c
    return "".join(l[::-1])
#

if __name__ == "__main__":
    number = 6874
    print numberToPrettyString(number)   # '6,874'

The idea is simple. Consider the number 1977. Convert it to string ("1977") and reverse it ("7791"). Start processing it from left to right and after every third character add a comma: "7" -> "77" -> "779," (comma added) -> "779,1". Now reverse the string ("1,977"). Done.

Links

Update (20131125)
There is an easier way. You can do it with string formatting too:

>>> n = 1977
>>> "{:,}".format(n)
'1,977'

Thanks to Krisztián B. for the tip.

Categories: python Tags: , , ,

Reverse a string

September 23, 2010 Leave a comment

Exercise #1: Take a string and reverse its characters. For instance “ab12” => “21ba”.

Solution:

#!/usr/bin/env python

s = 'Python adventures'
print s         # Python adventures
print s[::-1]   # serutnevda nohtyP

Slice notation has the form [start:stop:step]. By default, start is at the beginning of a sequence, stop is at the end, and step is 1. So the slice [::-1] returns the full sequence in reverse order.


Exercise #2: Decide if a word is a palindrome.

Solution:

#!/usr/bin/env python

def is_palindrome(str):
    return str == str[::-1]

print is_palindrome('1367631')      # True
print is_palindrome('Python')       # False
Categories: python Tags: , , ,

ASCII table

September 21, 2010 Leave a comment

Exercise: Print out the ASCII table.

Solution:

#!/usr/bin/env python

for char in range(256):
    print "%d: %c" % (char, char)

Note that range(N) creates a list of elements in the interval [0, N), that is N is excluded. In the example, it will be 0..255.

Output (special characters are removed):

0:
1:
2:
3:
4:
5:
6:
7:
8:
9:
10:
11:
12:
13:
14:
15:
16:
17:
18:
19:
20:
21:
22:
23:
24:
25:
26:
27:
28:
29:
30:
31:
32:
33: !
34: "
35: #
36: $
37: %
38: &
39: '
40: (
41: )
42: *
43: +
44: ,
45: -
46: .
47: /
48: 0
49: 1
50: 2
51: 3
52: 4
53: 5
54: 6
55: 7
56: 8
57: 9
58: :
59: ;
60: <
61: =
62: >
63: ?
64: @
65: A
66: B
67: C
68: D
69: E
70: F
71: G
72: H
73: I
74: J
75: K
76: L
77: M
78: N
79: O
80: P
81: Q
82: R
83: S
84: T
85: U
86: V
87: W
88: X
89: Y
90: Z
91: [
92: \
93: ]
94: ^
95: _
96: `
97: a
98: b
99: c
100: d
101: e
102: f
103: g
104: h
105: i
106: j
107: k
108: l
109: m
110: n
111: o
112: p
113: q
114: r
115: s
116: t
117: u
118: v
119: w
120: x
121: y
122: z
123: {
124: |
125: }
126: ~
127:
128:
129:
130:
131:
132:
133:
134:
135:
136:
137:
138:
139:
140:
141:
142:
143:
144:
145:
146:
147:
148:
149:
150:
151:
152:
153:
154:
155:
156:
157:
158:
159:
160:
161: ¡
162: ¢
163: £
164: ¤
165: ¥
166: ¦
167: §
168: ¨
169: ©
170: ª
171: «
172: ¬
173: ­
174: ®
175: ¯
176: °
177: ±
178: ²
179: ³
180: ´
181: µ
182: ¶
183: ·
184: ¸
185: ¹
186: º
187: »
188: ¼
189: ½
190: ¾
191: ¿
192: À
193: Á
194: Â
195: Ã
196: Ä
197: Å
198: Æ
199: Ç
200: È
201: É
202: Ê
203: Ë
204: Ì
205: Í
206: Î
207: Ï
208: Ð
209: Ñ
210: Ò
211: Ó
212: Ô
213: Õ
214: Ö
215: ×
216: Ø
217: Ù
218: Ú
219: Û
220: Ü
221: Ý
222: Þ
223: ß
224: à
225: á
226: â
227: ã
228: ä
229: å
230: æ
231: ç
232: è
233: é
234: ê
235: ë
236: ì
237: í
238: î
239: ï
240: ð
241: ñ
242: ò
243: ó
244: ô
245: õ
246: ö
247: ÷
248: ø
249: ù
250: ú
251: û
252: ü
253: ý
254: þ
255: ÿ
Categories: python Tags: ,

Template

September 21, 2010 1 comment

Here is the classical “Hello, World!” script in Python. It can be used as a template for writing a new script:

#!/usr/bin/env python

# DESCRIPTION:   hello world
# DATE:          2010.09.21. (yyyy.mm.dd.)

print "Hello, World!"

Tip: If you want to insert source code in your blog at WordPress.com, check out this post: Code » Posting Source Code.

Update (20110503): For a more professional template, see this post, where Guido tells us how he writes his main() functions.

Categories: python Tags: ,

Intro

September 20, 2010 1 comment


Hello Everyone!

This is my first post here :) This blog will be mainly about the Python programming language, but it is likely that I will add some posts on different topics too like Ubuntu Linux, Java, etc.

I started to learn Python about one year ago. Half a year ago I put it down but now I want to dig in again. If I find something interesting that can be useful for others too, I plan to post it here. It will also serve as an online repository for me if I want to look up something quickly. I’m also interested to see your feedbacks. As I’m still learning Python, I’m sure I’ll learn a lot from your comments.

If you are ready for some Python adventures, read on! :)

I found the photo of the beautiful Python in the header at Animal Pictures Archive. This is a Python regius, by the way.

Some useful links

As this is my first WordPress.com blog, I collect here some useful links:

Categories: Uncategorized