鱼C论坛

 找回密码
 立即注册
查看: 1122|回复: 9

[已解决]这种情况涉及到度数的相减它老是会出现这种错误应该怎么解决

[复制链接]
发表于 2022-5-2 17:49:26 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
涉及到度数相减,有时候度数会有小数,它就会报错,要怎么解决
最佳答案
2022-5-2 17:54:08
input 得到的是字符串,你还要用 float 转成小数

n = float(input())
a = float(input())
q = float(input())
122.PNG
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2022-5-2 17:53:03 | 显示全部楼层
i1 =90 - int(a)
是因为字符串不能与数字相减,只有相同类型才可以进行某些操作!

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
isdkz + 5 + 5 + 3 无条件支持楼主!

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-2 17:54:08 | 显示全部楼层    本楼为最佳答案   
input 得到的是字符串,你还要用 float 转成小数

n = float(input())
a = float(input())
q = float(input())

评分

参与人数 1荣誉 +5 鱼币 +5 贡献 +3 收起 理由
python爱好者. + 5 + 5 + 3 对,除了int,还有folat

查看全部评分

想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-2 18:04:20 | 显示全部楼层
isdkz 发表于 2022-5-2 17:54
input 得到的是字符串,你还要用 float 转成小数

n = float(input())

import numpy as np
from math import sin
n = float(input("请输入(1,2)的随机一个数:"))
a = float(input("请输入太阳高度角:"))
q = float(input("请输入镜面倾斜角: "))
b = 1
while b == 1:
    i5 =a*sin(n*sin(2*q - a*sin(sin(a/n))))
    n += n + 0.0001
    i5_1 = a*sin(n*sin(2*q - a*sin(sin(a/n))))
    I = i5 - i5_1
    if -0.0001 < I <0.0001:
        print(n)
        break
    else:
        while I > 0.001:
            n += 0.001
        while I < 0.001:
            n -= 0.001
我修改之后只有输进去的数字,没有输出来的结果,这怎么回事
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-2 18:28:47 | 显示全部楼层
Lijingyang 发表于 2022-5-2 18:04
import numpy as np
from math import sin
n = float(input("请输入(1,2)的随机一个数:"))

这里会导致死循环,

        while I > 0.001:
            n += 0.001
        while I < 0.001:
            n -= 0.001
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-2 18:40:02 | 显示全部楼层
isdkz 发表于 2022-5-2 18:28
这里会导致死循环,

        while I > 0.001:

那要怎么解决一个很简单的代码干了3个小时,唉
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2022-5-2 18:41:12 | 显示全部楼层
Lijingyang 发表于 2022-5-2 18:40
那要怎么解决一个很简单的代码干了3个小时,唉

我实在是不知道你想干什么

有题目吗?
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-2 18:41:43 | 显示全部楼层
Lijingyang 发表于 2022-5-2 18:40
那要怎么解决一个很简单的代码干了3个小时,唉

可是我把后面的循环删除之后,打印I,它也不会打印出来
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-2 19:02:10 | 显示全部楼层
isdkz 发表于 2022-5-2 18:41
我实在是不知道你想干什么

有题目吗?

2、计算折射率
利用公式(2)无法直接解出折射率n,需要借助计算机进行数值求解,利用插值逼近法在1到2之间找出n的解。
方法1:用C++等程序语言进行编程计算。令公式(2)右边项等于i,即
is=asin(nsin(2φ-asin(1))) (3)
在1到2之间取任意值作为n的初始值,计算Ais=i-i,改变n值让Δi逐步逼近于零。如果Δis>0,就增加n值再计算Δis;如果Δis<0,就减小n值再计算Δis。直到Δis在设定的0附近一定范围内,终止程序,就获得所要的n值。
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2022-5-2 19:12:48 | 显示全部楼层
Lijingyang 发表于 2022-5-2 19:02
2、计算折射率
利用公式(2)无法直接解出折射率n,需要借助计算机进行数值求解,利用插值逼近法在1到2之 ...

这个不太清晰,我重新发一个截图的,求助帖
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-11-18 12:25

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表