不過能力太差,只好自己投奴隸銀行
去的幾間公司都有基本的能力測驗
基本上都不難
考題都是針對資料的操作跟基本觀念
記得某防毒公司的題目是這樣出的
有一資料結構長得如下
people_birthday = {
"alex": "1982.04.30",
"andrew": "2008.8.19",
"diego": "2010/02/20",
"fanny": "1978/11/29",
"peggy": "1985/4/10",
}
要求如下:1. 依月份排序資料
2. 印出完整的英文月份名稱,如一月為January,二月為Febreary
3. 印出當月生日的人數
4. 印出當月生日的人名,字首需大寫,且按字母排序
5. 依格式印出資料,格式為" 月份 (人數) 人名, 人名
6. 將內容寫入一檔案
考試時手寫的程式
回來靠印象寫了一次
發現有不少小地方有錯
改過後的版本如下
PS. 有使用內建的函數,所以程式稍稍短了一些
import calendar
import datetime
stastics = dict(enumerate([[] for x in range(len(calendar.month_name[1:]))], start = 1))
for name, birthday in people_birthday.items():
sep = "/" if "/" in birthday else "."
year, month, day = birthday.split(sep)
stastics[int(month)].append(name)
with open("interview.txt", "w") as fp:
for month_index, people in stastics.items():
result = "%10s (%d) %s\n" % (
calendar.month_name[month_index],
len(people),
", ".join([person.capitalize() for person in sorted(people)])
)
print result
fp.write(result)
個人的錯誤大概有幾個
1. 建立stastics時,不該使用[[] * len(calendar.month_name[1:])],這樣會產生多個相同內容的陣列
2. 記錯寫檔的函數,應該為write,且結尾應該分行符號"\n"