日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

练习篇

發布時間:2025/3/15 编程问答 14 豆豆
生活随笔 收集整理的這篇文章主要介紹了 练习篇 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
問題:一個球從100米高空落下,每次落地后反跳回原高度的一般落下,當高度小于1米時視為停止,問這個球一共彈了多少米我的代碼: #拓展一下,變成球的高度可以自定義,但要大于1米 def get_num(h):b = 0 #統計彈跳次數c = 0 #統計彈跳總高度數print('球的初始高度為:{} 米;'.format(h),end=' ')#由于事先并不知道到底球需要彈跳多少次,所以用while循序while True:if h < 1:print('您需要輸入一個大于1米的一個高度值')breakelse:h /= 2b += 1c += hif h < 1:return '彈跳次數:{} 次; 視為停止時高度:{} 米; 總共彈跳的米數{} 米'.format(b,h,c)print(get_num(4)) #測試結果:球的初始高度為:4 米; 彈跳次數:3 次; 視為停止時高度:0.5 米; 總共彈跳的米數3.5 米print(get_num(100)) #測試結果:球的初始高度為:100 米; 彈跳次數:7 次; 視為停止時高度:0.78125 米; 總共彈跳的米數99.21875 米print(get_num(0.9)) #測試結果:球的初始高度為:0.9 米; 您需要輸入一個大于1米的一個高度值 # None

?

?我又思考了,,如果球的種類不一樣,,假設足球能彈跳回原高度的一半,籃球能彈跳回原高度的?0.7倍?等等

也就是說,拋的球不一樣,,?h?/=?2這里要變。。。
可以考慮面向對象,,自定義一個球類,,? 1 #自定義一個球類 2 3 #實例化時需要兩個參數:球的種類、初始高度 4 5 class Ball(object): 6 7 def __init__(self,wball,hight): 8 9 if wball in ('pp','zq','lq'): 10 self._wball = wball 11 else: 12 print('請輸入 pp zq lq 中的其中一種') 13 return 14 15 self.hight = hight 16 17 #由于每種球的彈跳效率不一樣,所以需要定義一個方法還獲取求的彈跳率 18 def _getlv(self): 19 20 d = {'pp':0.6,'zq':0.5,'lq':0.7} 21 22 return d.get(self._wball) 23 24 25 #定義一個方法進行彈跳計算,由于該方法是需要被類的實例訪問的,所以不能定義為私有方法 26 def get_num(self): 27 28 b = 0 # 統計彈跳次數 29 c = 0 # 統計彈跳總高度數 30 print('球的種類為:{}; 球的初始高度為:{} 米;'.format(self._wball,self.hight), end=' ') 31 32 while True: 33 if self.hight < 1: 34 print('您需要輸入一個大于1米的一個高度值') 35 break 36 37 else: 38 self.hight *= self._getlv() 39 b += 1 40 c += self.hight 41 if self.hight < 1: 42 return print('彈跳次數:{} 次; 視為停止時高度:{} 米; 總共彈跳的米數{} 米'.format(b, self.hight, c)) 43 44 45 if __name__ == '__main__': 46 pingp = Ball('pp',1.5) 47 pingp.get_num() 48 49 zuq = Ball('zq',100) 50 zuq.get_num() 51 52 lanq = Ball('lq',30) 53 lanq.get_num() 54 55 #測試結果: 56 #球的種類為:pp; 球的初始高度為:1.5 米; 彈跳次數:1 次; 視為停止時高度:0.8999999999999999 米; 總共彈跳的米數0.8999999999999999 米 57 #球的種類為:zq; 球的初始高度為:100 米; 彈跳次數:7 次; 視為停止時高度:0.78125 米; 總共彈跳的米數99.21875 米 58 #球的種類為:lq; 球的初始高度為:30 米; 彈跳次數:10 次; 視為停止時高度:0.8474257469999996 米; 總共彈跳的米數68.022673257 米

?

?

1 a=[100] 2 while a[-1]>1: 3 a.append(a[-1]*0.5) 4 print(a) 5 print("初始高度為{}米, 視停止高度為{}米;".format(a[0],a[-1])) 6 print("一共彈{}米,彈了{}次".format(sum(a[1:]),(len(a)-1)))

?

轉載于:https://www.cnblogs.com/avention/p/8681240.html

總結

以上是生活随笔為你收集整理的练习篇的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。