花了两天时间,看了看python基本知识,总感觉不练练手心里不踏实,顺道玩玩ACM
POJ,HDOJ都没有python的判题,ZOJ还是挺不错的,当然codeforces也可以提交python,不过用于起步的题目(教会基本的输入输出)难找。刚好还有好心人整理的一份由易到难的题目梯度
连接:http://blog.sina.com.cn/s/blog_8019dfa70100s8ff.html
初步感觉,python的输入输出还是比较头疼的,貌似只能按行读入(我目前先这么做的)。运行的话,我在linux的vim下编程,然后把数据放到x.txt里,运行时python zoj_10xx.py <x.txt
zoj_1001
View Code
""" zoj 1001 简单的a+b问题,主要是熟悉下输入输出环境 """ import sys for line in sys.stdin: a = line.split() print int(a[0])+int(a[1])
zoj_1037
View Code
""" 1037 简单的算距离的问题 唯一要注意的地方时,当两个数都是奇数的时候把一个1换成1.41 """ import sys n = int(raw_input()) for line in range(1, n+1): num = sys.stdin.readline() an = num.split() a = int (an[0]) b = int (an[1]) if (a%2) and (b%2): sum=a*b+0.41 else: sum=a*b print 'Scenario #%d:'%line #这里输出print"%.2f"%sum,'\n'是PE不知道为什么 print "%.2f\n"%sum
zoj_1048
View Code
""" 1048 看起来一大堆,其实就是平均数 """ import sys sum = 0 for i in range(0, 12): month = raw_input() sum += float(month) print "$%.2f"%(sum*1.0/12)
zoj_1049
View Code
""" 1049 题目比较难读 意思比较简单,洪水从0,0这个点以半圆的形式扩张,每年50面积,问什么时候会到他所在的点 """ import sys import math n = int(raw_input()) for i in range (1, n+1): line = raw_input() coo = line.split() a = float(coo[0]) b = float(coo[1]) c = a * a + b * b ans = (math.pi) * c / 2 if ans % 50: ans += 50 ans = int(ans/50) print "Property %d: This property will begin eroding in year %d."%(i, ans) print "END OF OUTPUT."
我还是觉得,编程语言的学习,就得边学边练,不必一开始就要很透彻的研究好了再下手,应该先知道要怎么解决一个问题,一定的练习量之后对语言比较熟练了就要改变方式,这个时候才是要多问问自己为什么,多想想怎么样节约操作,通过这种方式提高自己。