这种情况涉及到度数的相减它老是会出现这种错误应该怎么解决
涉及到度数相减,有时候度数会有小数,它就会报错,要怎么解决 i1 =90 - int(a)是因为字符串不能与数字相减,只有相同类型才可以进行某些操作! input 得到的是字符串,你还要用 float 转成小数
n = float(input())
a = float(input())
q = float(input()) 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
我修改之后只有输进去的数字,没有输出来的结果,这怎么回事 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 isdkz 发表于 2022-5-2 18:28
这里会导致死循环,
while I > 0.001:
那要怎么解决一个很简单的代码干了3个小时,唉 Lijingyang 发表于 2022-5-2 18:40
那要怎么解决一个很简单的代码干了3个小时,唉
我实在是不知道你想干什么{:10_277:}
有题目吗? Lijingyang 发表于 2022-5-2 18:40
那要怎么解决一个很简单的代码干了3个小时,唉
可是我把后面的循环删除之后,打印I,它也不会打印出来 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值。 Lijingyang 发表于 2022-5-2 19:02
2、计算折射率
利用公式(2)无法直接解出折射率n,需要借助计算机进行数值求解,利用插值逼近法在1到2之 ...
这个不太清晰,我重新发一个截图的,求助帖
页:
[1]