- 论坛徽章:
- 0
|
一等奖:获得SanDisk 16GB U盘一个的用户:
yifangyou
renxiao2003
lkk2003rty
二等奖:获得ChinaUnix商务衬衫的用户:
jecoso
hq8318
hq_333
106033177
445799942
三等奖:获得ChinaUnix 限量版牙签筒一个或者小老鼠USB接线器一只的用户:
poper168
xinyv
car292516198
chenyx
BangBull
yangzeDB
surpass_li
linglan520
zhujinzz
amarant
请以上获奖者在2011年9月11日之前将姓名、电话、地址、邮编以站内短信发送给(风铃之音)以便给您及时快递奖品。
python版块是ChinaUnix社区内讨论日趋热烈的技术版块之一。Python也是当下越来越火的语言之一,之前我们已经成功举办了PHP、C/C+ Perl和shell的编程大赛,今天我们举办第五期---python编程大赛,发挥您的技术之长,赢取我们为优胜者准备的丰富奖品,欢迎大家踊跃参加!
第一期:PHP编程大赛 http://bbs.chinaunix.net/thread-1788191-1-1.html
第二期:C/C++编程大赛http://bbs.chinaunix.net/thread-1820953-1-1.html
第三期:Perl编程大赛http://bbs.chinaunix.net/thread-1860259-1-1.html
第四期:Shell编程大赛http://bbs.chinaunix.net/thread-2319120-1-1.html
参赛要求:参与活动必须是chinaunix社区的注册会员
点击注册: http://sso.chinaunix.net/Register
大赛日程:
参赛时间:2011.06.28~2011.07.20
评选时间:2011.07.21~2011.07.31
结果公布:2011.07.31
奖项设置:
一等奖:3名,最先正确完成8道题的三名用户,赠送SanDisk 16GB U盘一个。
二等奖:5名,获奖者为最先正确完成6道试题的五名用户,赠送特别定制版ChinaUnix商务衬衫。
三等奖:10名,获奖者为最先正确完成5道试题的十名用户,赠送ChinaUnix 限量版牙签筒一个或者小老鼠USB接线器一只。
一等奖:
二等奖:
三等奖:
参赛细则:
(1)代码规范:使用标准python语言,采用编程标准可以使项目更加顺利地完成。
(2)性能:应用程序可以运行与高效运行是两个层次,保证程序的最佳效率。
(3)简洁:写代码是一种艺术。除了正确的缩进、大小写、命名规则之外,请时刻牢记爱因斯坦的名言--简单就是美。
(4)每位会员可以发表多个代码,以最高评价为准,不可重复获奖;
(5)提交代码请跟帖发表,并附相关系统环境及编译环境说明。
评选获奖的依据:答题的时间及答题的质量为依据,邀请嘉宾作为评选人。
代码提交:
参赛者以跟帖的方式提交代码,相似代码以最先提交为准,谁最早提交谁优秀。
注:严禁抄袭,一经发现,取消评选资格;
大赛评委团:
smallfish_xy
其他评委正在强力邀请中,欢迎自荐!
大赛联系人:
无风之谷 站内联系或者qq:19721714
试题:
1. 去除list中的重复数据 [11, 22, 33, 11, 22] => [11, 22, 33]
2. 格式化输出,三位一逗号 1234567 -> 1,234,567
3. 字符反转 abcde -> edcba
4. 打印当前系统的挂载点和空间大小(Linux)
5. 模拟登录401验证网站(Basic HTTP Authentication)
6. 获取远程某机器的系统当前日期时间(Linux)
7. 打印Apache日志中访问次数最多的10条URL。
8. 并发抓取10个URL,打印出HTTP状态码。
公布试题答案:
print '1.'
a = [11, 22, 33, 11, 22]
b = list(set(a))
b.sort()
print '%s => %s' % (a, b)
print
print '2.'
import re
a = '1234567'
b = re.sub(r"(?<=\d)(?=(\d{3})+\b)",",",a)
print '%s => %s' % (a, b)
print
print '3.'
a = 'abcde'
b = a[::-1]
print '%s => %s' % (a, b)
print
print '4.'
import commands
a = commands.getoutput('df -h')
for b in a.split('\n')[1:]:
c = b.split()
print '%-10s => %s' % (c[-1], c[1])
print
print '5.'
import urllib2
passman = urllib2.HTTPPasswordMgrWithDefaultRealm()
passman.add_password(None, "http://xxxxx", "smallfish", "***" )
authhandler = urllib2.HTTPBasicAuthHandler(passman)
opener = urllib2.build_opener(authhandler)
try:
f = opener.open("http://xxxxx/dddd" )
f.close()
print 'login ok'
except urllib2.HTTPError:
print 'login error'
print
print '6.'
import commands
a = commands.getoutput("ssh smallfish@haaku.net 'date'" )
print 'now:', a
print
print '7.'
f = open("/var/log/apache2/access.log" )
a = {}
for line in f:
url = re.findall(r'".*?"', line)[0].split()[1]
a[url] = a.get(url, 0) + 1
b = sorted(a.items(), key=lambda x: x[1], reverse=True)
b = b[:10]
print b
print
print '8.'
urls = ['http://www.qq.com']
urls.append('http://www.163.com')
urls.append('http://www.sina.com.cn')
urls.append('http://www.sohu.com')
import gevent
from gevent import monkey
monkey.patch_socket()
import urllib2
import time
def get_http_status(url):
f = urllib2.urlopen(url)
c = f.getcode()
return url, c
jobs = [gevent.spawn(get_http_status, url) for url in urls]
gevent.joinall(jobs, timeout=3)
for job in jobs:
print job.value |
|