python - 如何确定参数是否是数字列表? (Python)

标签 python parameters

我一直在研究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/

相关文章:

java - 将变量从 Java 传递到 Shell 脚本

python - 具有相同列和索引的多个数据帧的平均值

python - 通过类中特定对象的名称访问所有变量

python - 使用 pygame 进行 LaTeX 类型渲染

arrays - 在 swift 中对两个参数的数组进行排序

java - Spring:如何实例化一个带有运行时参数的 Spring bean?

python - 将 Python 环境移至新的操作系统安装

python - 拆分韩语和数字

javascript - 参数上的ES6解构exec函数

在 C 中更改函数参数