当我使用收音机时,我正在写一个python脚本。当试图计算波长时,我得到一个OverflowError。有可能克服这个问题吗?
这是我的代码:
while 1:
cmd = input("Enter command: ")
if cmd == 'wavelength':
freq = input("Enter frequency (mHz): ") * 10**6
wl = freq * 299792458
print (wl)
这是输出:
Enter command: wavelength
Enter frequency (mHz): 33
Traceback (most recent call last):
File "C:/Users/Ross/Desktop/Programming/Python/Radio/main.py", line 5, in <module>
wl = freq * 299792458
OverflowError: repeated string is too long
答案 0 :(得分:3)
如果你正在使用Python 3.x,input
会返回一个字符串对象。
如果要对乘法进行编号,请将字符串的返回值转换为数值。
freq = int(input("Enter frequency (mHz): ")) * 10**6
或
freq = float(input("Enter frequency (mHz): ")) * 10**6
答案 1 :(得分:1)
您正在乘以字符串:
input("Enter frequency (mHz): ") * 10**6
wl = freq * 299792458
你可能意味着:
freq = int(input("Enter frequency (mHz): ")) * 10**6
wl = freq * 299792458
答案 2 :(得分:1)
您的代码
if cmd == 'wavelength':
freq = input("Enter frequency (mHz): ") * 10**6
wl = freq * 299792458
print (wl)
不只是一个问题,它有两个问题
input
函数返回一个字符串,你连接自己一百万次,比如“107.6107.6107.6 ...... 107.6”,只有一百万次。
您希望将响应转换为浮点数nuber,使用float
,之前将其乘以10 ** 6
freq = float(input("Enter frequency (mHz): ")) * 10**6
波长计算错误
示例尺寸分析:[L] != (1/[T]) * [L]/[T] = [L]/[T]^2
wl = c/freq