Python:类的定义与使用

Python:类的定义与使用类的定义与使用cball=Projectile(angle,vel,h0)中,cball传入给self一个炮弹从某个倾角射出计算水平位移和大致飞行时间的程序#projectile.p

大家好,又见面了,我是你们的朋友全栈君。

类的定义与使用

cball = Projectile(angle, vel, h0)中, cball传入给self

一个炮弹从某个倾角射出计算水平位移和大致飞行时间的程序

# projectile.py
from math import radians, sin , cos

##############类的定义#######
class Projectile():

    def __init__(self, angle, velocity, height):
        self.xpos = 0.0
        self.ypos = height
        theta = radians(angle)
        self.xvel = velocity * cos(theta)
        self.yvel = velocity * sin(theta)
        self.totaltime = 0.0

    def update(self, time):
        self.xpos = self.xpos + time * self.xvel
        yvel1 = self.yvel - 9.8 * time
        self.ypos = self.ypos + time * (self.yvel + yvel1) / 2.0
        self.yvel = yvel1
        self.totaltime = self.totaltime + time

    def getX(self):
        return self.xpos

    def getY(self):
        return self.ypos
#############################

###############函数定义########
def getIputs():
    a = float(input("Enter the lanuch angle (in degrees):"))
    v = float(input("Enter the lanuch velocity (in meters/sec):"))
    h = float(input("Enter the lanuch height (in meters):"))
    t = float(input("Enter the internal between position calculations:"))
    return a, v, h, t

def main():
    angle, vel, h0, time = getIputs()
    cball = Projectile(angle, vel, h0)
    while cball.getY() >= 0:
        cball.update(time)
    print("\nDistance traveled: {0:0.1f} meters.".format(cball.getX()))
    print("\nTotal time spent is roughly: {0:0.1f} sceonds.".format(cball.totaltime))
#############################

###########函数调用###########
if __name__ == '__main__':
    main()

运行示例:

'''
Enter the lanuch angle (in degrees):50
Enter the lanuch velocity (in meters/sec):1
Enter the lanuch height (in meters):50
Enter the internal between position calculations:1

Distance traveled: 2.6 meters.

Total time spent is roughly: 4.0 sceonds.

'''
版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/156119.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • java messagedigest,在C#中的Java MessageDigest类[通俗易懂]

    java messagedigest,在C#中的Java MessageDigest类[通俗易懂]IrequireacertainpieceofencrytionlogicdoneinJavatobeconvertedinC#thejavacodesnippetisasfollows.WhatwouldbetheC#equivalentfortheupdate(),Digestandresetfunctions?解决方案In…

    2022年7月16日
    19
  • 前后端分离架构概述「建议收藏」

    1、背景      前后端分离已成为互联网项目开发的业界标准使用方式,通过nginx+tomcat的方式(也可以中间加一个nodejs)有效的进行解耦,并且前后端分离会为以后的大型分布式架构、弹性计算架构、微服务架构、多端化服务(多种客户端,例如:浏览器,车载终端,安卓,IOS等等)打下坚实的基础。这

    2022年4月6日
    54
  • BufferedWriter 和 BufferedReader 的使用

    BufferedWriter 和 BufferedReader 的使用BufferedWriter BufferedWriter起始跟FileWriter的使用没什么区别,属于字符输出流。BufferedWriter更高效,因为它内置有一个长度为8192的字符数组,也就是8K的字符数组。这样子,如果我们往文件里面写内容的话,如果内容没有填满这个数组,就会自动等待直到我们填满,然后一起写入硬盘。硬盘的运行速度是很慢的。但是我们也可以利用c…

    2022年6月8日
    34
  • vmware15最新激活码2021_通用破解码

    vmware15最新激活码2021_通用破解码,https://javaforall.net/100143.html。详细ieda激活码不妨到全栈程序员必看教程网一起来了解一下吧!

    2022年3月17日
    186
  • 【6】进大厂必须掌握的面试题-Hibernate

    点击上方“全栈程序员社区”,星标公众号 重磅干货,第一时间送达 1.什么是Hibernate Framework? 对象关系映射或对象关系管理(ORM)是将应用程序域模型对象映射到…

    2021年6月23日
    91
  • 搭建自己的git服务器_自建服务器

    搭建自己的git服务器_自建服务器在服务器端:新建一个空git仓库sudogitinit–baresample.gitsudochown-Rgit:gitsample.git在本地:添加remotegitremoteaddmyservergit@server_ip:/path-to-git-repo把本地内容push上去gitadd.gitcommit-m”xxx”…

    2022年10月5日
    0

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号