我一直在研究Bézier curve我一切正常,但我想确保用户输入正确的输入。
我需要语句检查输入的值是否是包含两个数字的列表,可以是整数还是 float 。欢迎提供更多信息。
如果有人需要代码,就给你。 (某处可能只有一个公式,但这里效率很低。^^)
#finding a point on vector based on start point, end and %
def findPoint(t, A, B):
'''
findPoint( 'float member of <0, 1>',
'coordinates of point A written as [x, y]',
'coordinates of point B written as [x, y]')
'''
x=(B[0]-A[0])*t+A[0]
y=(B[1]-A[1])*t+A[1]
return [x, y]
#find coordinates of a point on the bezier curve
def bezierCurve(t, *points):
pointList=[]
for X in points:
pointList.append(X)
while len(pointList) !=1:
tempList=[]
for i in xrange(0, len(pointList)-1):
tempList.append(findPoint(t, pointList[i], pointList[i+1]))
pointList=tempList
return pointList.pop()
最佳答案
您可以使用all
检查所有元素是否为int
(或float
)。
>>> l = [1,2,3]
>>> a = ['a','b','c']
>>> all(isinstance(i, int) for i in l)
True
>>> all(isinstance(i, int) for i in a)
False
您还可以检查 len(list) == 2
所以作为一个函数,它可能是这样的
def twoNumValues(myList):
return len(myList) == 2 and all(isinstance(i, int) or isinstance(i, float) for i in myList)
或者
def twoNumValues(myList):
return len(myList) == 2 and all(type(i) in [float, int] for i in myList)
关于python - 如何确定参数是否是数字列表? (Python),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25297272/