python 练习笔记
这些本事C语言100例中的练习,无奈VC++的环境实在一头雾水,连编译都得出错,更别说运行了。所以继续昨天的python。
先来看这道:
【程序20】
题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在第10次落地时,共经过多少米?第10次反弹多高?
怡情的小题,来回顾一下代码:
1 #!/usr/bin/env python 2 # -*- coding: cp936 -*- 3 print‘‘‘题目:一球从100米高度自由落下,每次落地后反跳回原高度的一半;再落下,求它在 4 第10次落地时,共经过多少米?第10次反弹多高? 5 ‘‘‘ 6 7 raw_input(" 按任意键继续 \n") 8 raw_input(" *想让我帮你算吗?按Enter开始* \n") 9 n = int(raw_input(" **打算反弹几次?把数字输下面** \n")) 10 d = 0.0 11 #第n次落下反弹高度 12 print "第n次落下反弹高度:%s"%(100*1/2.0**n) 13 14 #第n次落地时共经过多少米 15 for i in range(n): 16 d += 100*1/2.0**i 17 print "第n次落地时共经过多少米:%s\n"%d 18 #按Enter继续 19 raw_input("按任意键退出")
就把里面零碎的知识点展开说一下吧:
三个引号中的内容可以跨行打印出来,而且保持原样。
除法有”/“和”//“两种:后一种只做整除,小数一概舍掉;前一种根据数据类型而定,都是int时跟第二种一样,有float时保留小数。
”**“这样两个星号是幂运算,第一次见。
大概就这么多。不过有一点体会不得不说,那就是写注释!
不仅有助于别人理解你的代码,也让你自己在写的时候思路更加清晰。刚开写第一道题的时候,简直要疯掉,几行代码写了一个小时,写着后面的忘着前面的,而且调试语法错误时还会忘掉要调试的这句是干嘛的!简直受不鸟!!
好了,继续下一题。
【程序18】
题目:求s=a+aa+aaa+aaaa+aa...a的值,其中a是一个数字。例如2+22+222+2222+22222(此时共有5个数相加),几个数相加有键盘控制。
关键是计算出每一项的值,其余就很好处理了(可是天生有手残的缺陷啊,语法错,类型不对,值无效,bug满天飞有木有啊,可代码就那么几行有木有啊!)
受不鸟我自己。
上菜:
1 #!/usr/bin/env python 2 # -*- coding: cp936 -*- 3 #输入用来叠加的数字 4 a = int(raw_input("输入用来叠加的数字")) 5 #输入数字控制叠加次数 6 x = int(raw_input("输入叠加次数")) 7 #定义一个函数来求第n次叠加时需加上的数值 8 def dj(x="",y=""): 9 s = 0 10 for i in range(1,y+1): 11 s += x * 10 ** (i-1) 12 return s 13 #计算叠加结果,将过程一并打印输出 14 s = a 15 print s, 16 for i in range(2,1+x): 17 s += dj(a,i) 18 print "+%s"%(dj(a,i)), 19 print "=%s"%s 20 #按Enter继续 21 raw_input("press Enter")
郑重声明:本站内容如果来自互联网及其他传播媒体,其版权均属原媒体及文章作者所有。转载目的在于传递更多信息及用于网络分享,并不代表本站赞同其观点和对其真实性负责,也不构成任何其他建议。