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)
上一篇 2022年7月5日 下午11:16
下一篇 2022年7月5日 下午11:16


相关推荐

  • TypeScript 学习手册

    TypeScript 学习手册TypeScript 学习手册 JavaScript 是一门动态弱类型语言 对变量的类型非常宽容 而且不会在这些变量和他们的调用者之间建立结构化的契约 TypeScript 是拥有类型系统的 JavaScript 的超集 可以编译成纯 JavaScript 思维方式决定了编程习惯编程习惯奠定了工程质量工程质量划定了能力边界第一章前言强 弱类型语言 动 静态类型语言强类型语言与弱类型语言在强类型语言中 当一个对象从调用函数传递到被调用函数时 其类型必须与被调用函数中声明的类型兼容 通俗定义

    2026年3月19日
    2
  • linux 7 bond0,Centos 7 配置多网卡bond0 及网桥br0

    《Centos7配置多网卡bond0及网桥br0》由会员分享,可在线阅读,更多相关《Centos7配置多网卡bond0及网桥br0(2页珍藏版)》请在人人文库网上搜索。1、Centos7配置多网卡bond0及网桥br0一配置多网卡bonding1手动添加bond0配置,如:vim/etc/sysconfig/network-scripts/ifcfg-bond0DEVICE=b…

    2022年4月7日
    110
  • @JsonFormat、@JSONField、@DateTimeFormat的使用以及其区别[通俗易懂]

    三者出处1、JsonFormat来源于jackson,Jackson是一个简单基于Java应用库,Jackson可以轻松的将Java对象转换成json对象和xml文档,同样也可以将json、xml转换成Java对象。Jackson所依赖的jar包较少,简单易用并且性能也要相对高些,并且Jackson社区相对比较活跃,更新速度也比较快。2、JSONField来源于fastjson,是阿里巴巴…

    2022年4月17日
    55
  • mysql 层级结构查询

    mysql 层级结构查询

    2021年11月27日
    50
  • mbus水表方案_水表安装合同模板

    mbus水表方案_水表安装合同模板MBUS水表协议2400!!8E1???偶校验???NOCTS/RTS1.查询水表地址FEFEFE68AAAAAAAAAAAAAAAA0303810A004916起始A0……………A6CTR_0DI0DI1CSFEFEFE68AAAAAAAAAAAAAAAA0303810A004916T

    2022年10月10日
    5
  • k8s+docker微服务架构_docker查看容器

    k8s+docker微服务架构_docker查看容器docker+k8微服务容器化实战

    2025年8月1日
    6

发表回复

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

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