为什么我得到的";ufunc';乘';不包含签名匹配类型为dtype(';s32';)的循环,其值来自raw_input(';s32';) [英] Why do I get "ufunc 'multiply' did not contain a loop with signature matching types dtype('S32') dtype('S32') dtype('S32')" with values from raw_input
本文介绍了为什么我得到的";ufunc';乘';不包含签名匹配类型为dtype(';s32';)的循环,其值来自raw_input(';s32';)的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
v
是速度,a
是加速度,x
是时间。用户将输入v
和a
的值,然后v
和a
和x
将确定y
。
我尝试这样做:
x = np.linspace(0., 9., 10)
a = raw_input('Acceleration =')
v = raw_input('Velocity = ')
y = v * x - 0.5 * a * x**2.
但是,我一直收到此错误:
TypeError:ufunc‘Multiply’不包含签名匹配类型为dtype(‘s32’)的循环
这是什么意思?
推荐答案
然后该函数从输入读取一行,将其转换为字符串(去掉尾随的换行符),并返回该字符串。
因此发生的情况是,您尝试将字符串与浮点数相乘,类似于y="3" * x - 0.5 * "3" *x**2
,这是未定义的。
避免此问题的最简单方法是先将输入字符串强制转换为浮点型。
x = np.linspace(0., 9., 10)
a = float(raw_input('Acceleration ='))
v = float(raw_input('Velocity = '))
y = v * x - 0.5 * a * x**2
请注意,如果您使用的是Python 3,则需要使用input
而不是raw_input
,
a = float(input('Acceleration ='))
这篇关于为什么我得到的";ufunc';乘';不包含签名匹配类型为dtype(';s32';)的循环,其值来自raw_input(';s32';)的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文