42 lines
1.2 KiB
Python
42 lines
1.2 KiB
Python
|
import re
|
||
|
import csv
|
||
|
from time import localtime
|
||
|
|
||
|
for test_string in ['555-1212', 'ILL-EGAL']:
|
||
|
if re.match(r'^\d{3}-\d{4}$', test_string):
|
||
|
print test_string, 'is a valid US local phone number'
|
||
|
else:
|
||
|
print test_string, 'rejected'
|
||
|
|
||
|
# write stocks data as comma-separated values
|
||
|
writer = csv.writer(open('stocks.csv', 'wb', buffering=0))
|
||
|
writer.writerows([
|
||
|
('GOOG', 'Google, Inc.', 505.24, 0.47, 0.09),
|
||
|
('YHOO', 'Yahoo! Inc.', 27.38, 0.33, 1.22),
|
||
|
('CNET', 'CNET Networks, Inc.', 8.62, -0.13, -1.49)
|
||
|
])
|
||
|
|
||
|
# read stocks data, print status messages
|
||
|
stocks = csv.reader(open('stocks.csv', 'rb'))
|
||
|
status_labels = {-1: 'down', 0: 'unchanged', 1: 'up'}
|
||
|
for ticker, name, price, change, pct in stocks:
|
||
|
status = status_labels[cmp(float(change), 0.0)]
|
||
|
print '%s is %s (%s%%)' % (name, status, pct)
|
||
|
|
||
|
activities = {8: 'Sleeping',
|
||
|
9: 'Commuting',
|
||
|
17: 'Working',
|
||
|
18: 'Commuting',
|
||
|
20: 'Eating',
|
||
|
22: 'Resting'}
|
||
|
|
||
|
time_now = localtime()
|
||
|
hour = time_now.tm_hour
|
||
|
|
||
|
for activity_time in sorted(activities.keys()):
|
||
|
if hour < activity_time:
|
||
|
print activities[activity_time]
|
||
|
break
|
||
|
else:
|
||
|
print 'Unknown, AFK or sleeping!'
|