You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Python直角三角形计算程序输入输出不符问题求助

问题分析与修复

你的程序问题主要出在角度单位的转换逻辑完全搞反,以及角度输出时未转回度数,和公式无关,具体如下:

核心错误点

  • 输入角度的转换错误:Python的math.cos()、math.sin()等三角函数接受的是弧度参数,但你输入的是角度值,却用了math.degrees()把输入值(当作弧度)转成角度,这相当于把53.13弧度转成了角度(约3044°),用这个超大的角度计算cos自然会得到错误的负数结果。
  • 输出角度未转成度数:你的angle_with_h_and_o和angle_with_a_and_o函数返回的是弧度值,但你直接输出,所以看到的0.6435是弧度,转成角度才是约36.87°,和你输入的53.13°不匹配是因为你输入的角度和边对应错了(后面会补充说明)。

修复步骤

1. 修正输入角度的转换

把输入角度的代码从:

angle = math.degrees(float(input()))

改成:

angle = math.radians(float(input()))  # 将输入的角度值转为弧度,供三角函数使用

2. 输出角度时转回度数

把输出角度的两行代码从:

print(str(angle_with_h_and_o(h, o)))
print(str(angle_with_a_and_o(a, o)))

改成:

print(str(math.degrees(angle_with_h_and_o(h, o))))  # 弧度转角度输出
print(str(math.degrees(angle_with_a_and_o(a, o))))

3. 关于输入匹配的补充

你输入的角度53.13°和a=4、o=3不对应:53.13°是对边为4、邻边为3的角(tan(53.13°)=4/3≈1.333),而你输入的o=3是对边、a=4是邻边,对应的角度应该是约36.87°(tan(36.87°)=3/4=0.75)。如果要让输出和输入完全一致,你应该输入角度36.87°,此时第一个函数的结果会是4(cos(36.87°)5=0.85=4),第二个函数结果是3(sin(36.87°)5=0.65=3),后两个角度输出也会是36.87°。

修复后的完整代码

import math

a = float(input())
o = float(input())
h = float(input())
angle = math.radians(float(input()))  # 修正:角度转弧度

def adjacent_length_with_h_and_angle(h, angle):
    adjacent_length = math.cos(angle) * h
    return adjacent_length

def opposite_length_with_h_and_angle(h, angle):
    opposite_length = math.sin(angle) * h
    return opposite_length

def angle_with_h_and_o(h, o):
    adjacent_angle = math.asin(o / h)
    return adjacent_angle

def angle_with_a_and_o(a, o):
    adjacent_angle = math.atan(o / a)
    return adjacent_angle

print(str(adjacent_length_with_h_and_angle(h, angle)))
print(str(opposite_length_with_h_and_angle(h, angle)))
print(str(math.degrees(angle_with_h_and_o(h, o))))  # 修正:弧度转角度输出
print(str(math.degrees(angle_with_a_and_o(a, o))))  # 修正:弧度转角度输出

测试输入:4、3、5、36.87,输出会是:

4.0
3.0
36.86989764584402
36.86989764584402

内容的提问来源于stack exchange,提问作者Tybalt

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.30 20:24:33