当我把初始速度设为0,最后速度设为10,时间改变为10时,我得到的返回值是50

2024-10-03 11:18:46 发布

您现在位置:Python中文网/ 问答频道 /正文

每当我把初始速度设为0,最终速度设为10,时间改变为10时,我得到的返回值是50。有人能帮忙吗

#!/usr/bin/env python3
import math
import random

motionLimitation = input("Is motion angular or linear? ")

if motionLimitation == "angular" or "Angular":
    searchField = input("What type of angular motion are you trying to calculate? (Angular, Tangential, Centripetal) ")
    
    if searchField == "Angular" or "angular":
        fieldOfMotion = input("What is the unknown value? (Displacement, Time, Acceleration, or Velocity) ")
        finalVelocity = float(input("Enter the value of final velocity. "))
        changeTime = float(input("Enter the change in time. "))
        angularAcceleration = float(input("Enter Angular Acceleration. "))
        initAngularVelocity = float(input("Enter initial Angular Velocity. "))
        averageVelocity = float((finalVelocity+initAngularVelocity)/2)
        changeVelocity = float(finalVelocity-initAngularVelocity)
        displacement = float(input("Enter Displacement. "))
        
        if fieldOfMotion == "Displacement" or "displacement":
            doubleTime = float(math.pow(changeTime, 2))
            dispOne = float(averageVelocity*changeTime)
            componentOne = float(initAngularVelocity*changeTime)
            componentTwo = float((angularAcceleration*doubleTime)/2)
            dispTwo = float(componentOne+componentTwo)
            print(dispOne)
            print(dispTwo)
            
        elif fieldOfMotion == "Acceleration" or "acceleration":
                accelerationAng = float((changeVelocity)/(changeTime))
                componentEin = float(2*(displacement-initAngularVelocity*changeTime))
                accelerationAngTwo = float(componentEin/doubleTime)
                print(accelerationAng)
                print(accelerationAngTwo)

Tags: ortheinputiffloatangularprintenter
1条回答
网友
1楼 · 发布于 2024-10-03 11:18:46

我看到有人已经否决了这个问题。这可能是因为你的问题“有人能帮忙吗”真的不是我想你在问的。我知道你是一个新的投稿人,所以我会尽力帮助你。首先,请问一个有人能(有意义地)回答的问题。否则我们只能猜测你的意思

我想你要问的是,“我相信当initAngularVelocity=0,finalVelocity=10,changeTime=10时,输出应该是1.0。但我得到的是50。”有人能指导我进行计算,看看误差在哪里吗

如果这确实是你所问的,那么我认为答案是你的前提是错误的。答案(我指的是答案)不应该是1.0,应该是50:

initAngularVelocity = 0
finalVelocity = 10
changeTime = 10

因此:

averageVelocity = float((finalVelocity+initAngularVelocity)/2)
= float(10 + 0)/2
= 5

以及:

dispOne = float(averageVelocity*changeTime)
= float(5 * 10)
= 50

希望这能回答为什么答案是50的问题。从你的问题看来,这不是你期望的答案。因此,我将检查您假设的计算值的定义。我不确定你想计算什么,所以我在这里帮不上忙,但是从你的变量名中随便猜一猜,我会特别检查你对averageVelocity和changeVelocity的定义是否是你想要的

相关问题 更多 >