「学习笔记」3.15代码学习
来源:互联网 发布:java poi 跨行合并 编辑:程序博客网 时间:2024/05/01 23:29
未解决问题:
2004用字典做
已解决.3.16
今天快被这系统搞疯了,到现在才弄好,真的是有好多要学的啊,出了一点问题就没撤,在网上找了一堆方法,都试个遍,结果把系统搞崩溃了,真是要命,虽然应该把崩溃和解决的步骤重新回味一下写出来,但是……我都不知道怎么弄的。唉……
暂停廖的教程学习,开始实践,将acmcoder里的练习题用python实现
习题来源:http://acm.acmcoder.com/listChineseproblem.php
2001 计算两点间距离
#encoding:utf8##计算两点间距离import mathdef distance((x1,y1),(x2,y2)): return math.sqrt((x1-x2)**2+(y1-y2)**2)print distance((2,3),(5,7))
2002 计算球体积
#encoding:utf8##计算球体积import mathdef ballvolum(r): while r>=0: return 4.0/3*math.pi*r**3print ballvolum(1)print ballvolum(1.5)
2003求绝对值
#encoding:utf8##求绝对值#1abs()#2def func(x): if x>=0: return x return -xprint func(-10)print func(10)
2004 成绩转换
#encoding:utf8##成绩转换##1#我是想通过字典,输入值与字典值做比较,输入值在哪个值里面,相应的输出其对应的键值, 但是还没能理解透字典的用法,不成功,后续再弄3.15下午#字典倒是弄明白了,但是结果还是有问题3.15晚def scorechange(x): dic={'A':range(90,101),'B':range(80,90),'C':range(70,80),'D':range(60,70),'E':range(0,60)} for i in dic.keys(): if x in dic[i]: return i # else: #如果不加这句结果正确,但是题目要求做错误判断,一加上结果就不对了。 # return 'Score is error!'print scorechange(56)print scorechange(67)print scorechange(100)print scorechange(123)#以下是为了验证上部分代码哪里出了问题# x=80# dic={'A':range(90,101),'B':range(80,90),'C':range(70,80),'D':range(60,70),'E':range(0,60)}# for i in dic.keys():# # print i# # print dic[i]# if x in dic[i]:# print i#1更正3.16def scorechange(x): dic={'A':range(90,101),'B':range(80,90),'C':range(70,80),'D':range(60,70),'E':range(0,60)} for i in dic.keys(): if x in dic[i]: return i return 'Score is error!'#原来此处是在if里的,本来想表达的意思是要遍历字典,找到x返回键,没找到返回error,但是如果在if语句里,相当于字典并没有完全遍历,而是只看第一个有没有,没有就返回error,将error提到循环外,循环遍历没有后再输出errorprint scorechange(56)print scorechange(67)print scorechange(100)print scorechange(123)##2def scorechange(x): if x in range(90,101): return 'A' elif x in range(80,90): return 'B' elif x in range(70,80): return 'C' elif x in range(60,70): return 'D' elif x in range(0,60): return 'E' else: return 'Score is error'print scorechange(56)print scorechange(67)print scorechange(100)print scorechange(123)
2005第几天
#encoding:utf8##第几天def is_leap(x): if (x%400==0) or ((x%4==0) and (x%100!=0)): return True return Falsedef days(date): l_str=date.split('/') l_num=[int(i) for i in l_str] #将输入字符串变为整型 #print l_num month_day={1:31,2:28,3:31,4:30,5:31,6:30,7:31,8:31,9:30,10:31,11:30,12:31} if is_leap(l_num[0]): month_day[2]=29 #print month_day if l_num[1]==1: return l_num[2] else: sum=0 #初始化不要放在循环里,要不结果会出现错误 for i in range(1,l_num[1]): sum=sum+month_day[i] #print sum return sum+l_num[2]print days('1985/1/20')print days('2006/3/12')print days('2000/3/12')print days('2016/3/12')print days('2100/3/12')##以下代码是写代码时验证split是否能正确工作# date='1985/1/20'# l_str=date.split('/')# l_num=[int(i) for i in l_str]# print l_num
2006求奇数乘积
#encoding:utf8##求奇数的乘积def odd(x): if x%2!=0: return True else: return Falsedef odd_mult(L): lst=filter(odd,L) if len(lst)==0: #判断列表是否有奇数 return 'There is no odd in the list.' else: lst1=set(lst) #去重 num=1 for i in lst1: num=num*i return numprint odd_mult([3,1,2,3])print odd_mult([4,2,3,4,5])print odd_mult([2,4,4,6,8])
0 0
- 「学习笔记」3.15代码学习
- 「学习笔记」3.12代码学习
- 「学习笔记」3.13代码学习
- 「学习笔记」3.14代码学习
- 「学习笔记」3.16代码学习
- 「学习笔记」3.17代码学习
- 「学习笔记」3.19代码学习
- 「学习笔记」3.23代码学习
- 「学习笔记」3.24代码学习
- 「学习笔记」3.25代码学习
- 「学习笔记」3.31代码学习
- 「学习笔记」4.6代码学习
- 「学习笔记」4.7代码学习
- 代码大全学习笔记
- 代码学习笔记
- 注解学习笔记代码
- 代码优化学习笔记
- 代码大全 学习笔记
- 第二周实践2项目三———输出星号图
- 自从Label有了freeType做靠山以后...
- 19.leetcode题目303: Range Sum Query - Immutable
- python 文件和路径操作函数小结
- shell之dns配置
- 「学习笔记」3.15代码学习
- mac下安装tomcat
- bzoj 1878(离线+树状数组)
- 03 GPUImage为图片添加滤镜
- HDU Specialized Four_Digit Numbers
- 版本管理工具 - SVN
- The python debugger调试(PDB)的简介
- java中的锁
- COOKIE和SESSION