相关疑难解决方法(0)

如何检查我的python对象是否为数字?

在Java中,数字类型都来自Number,所以我会使用

(x instanceof Number).
Run Code Online (Sandbox Code Playgroud)

什么是python等价物?

python types numbers

187
推荐指数
3
解决办法
23万
查看次数

如何正确使用python的isinstance()来检查变量是否是数字?

我发现了一些旧的Python代码,它们正在执行以下操作:

if type(var) is type(1):
   ...
Run Code Online (Sandbox Code Playgroud)

正如所料,pep8抱怨这个推荐用法isinstance().

现在,问题是该numbers模块是在Python 2.6中添加的,我需要编写适用于Python 2.5+的代码

所以if isinstance(var, Numbers.number)不是解决方案.

在这种情况下哪个是合适的解决方案?

python pep8 python-2.5

44
推荐指数
3
解决办法
9万
查看次数

检查python中的值是否为零

我经常检查数字变量number是否有值,if number但有时数字可能为零.所以我解决了这个问题if number or number == 0.

我能以更聪明的方式做到这一点吗?我认为分别检查值是否为零有点难看.

编辑

我想我可以检查值是否为数字

def is_number(s):
    try:
        int(s)
        return True
    except ValueError:
        return False
Run Code Online (Sandbox Code Playgroud)

但是我仍然需要检查if number and is_number(number).

python python-3.x

23
推荐指数
2
解决办法
13万
查看次数

在Python中将所有非数字转换为0(零)

我正在寻找将Python中的所有非数字数据(包括空格)转换为零的最简单方法.以下面的例子为例:

someData = [[1.0,4,'7',-50],['8 bananas','text','',12.5644]]
Run Code Online (Sandbox Code Playgroud)

我想输出如下:

desiredData = [[1.0,4,7,-50],[0,0,0,12.5644]]
Run Code Online (Sandbox Code Playgroud)

所以'7'应该是7,但'8香蕉'应该转换为0.

python

13
推荐指数
2
解决办法
4199
查看次数

如果没有使用其属性,我如何避免类型检查python对象?

我遇到的答案这里类型检查在一般情况下,键入检查号码,然后键入检查字符串.大多数人似乎都回应说,由于鸭子打字,应该在python(<2.6)中执行类型检查.我对鸭子打字的(有限)理解是通过使用对象的属性来确定类型.如果我没有使用任何属性,该怎么办?

我有一个简单的函数,它根据参数确定常量,该参数应该是一个数字.我提出了一个由...定义的异常

class outOfBoundsError(ValueError):
    """
    Specified value is outside the domain.
    """
Run Code Online (Sandbox Code Playgroud)

一条消息告诉他们他们给我的号码太大了.我想保持这条消息的具体内容.但是如果参数是一个字符串(如'charlie'),它仍然认为参数大于我指定的数字(并引发我的异常).我应该在代码中添加一个虚拟行,argument + 2以便引发TypeError吗?

注意:我对ABC一无所知,但我不认为它们可用,因为我们可以访问的最新python版本是2.5 :(.

python

3
推荐指数
1
解决办法
440
查看次数

可读的尝试除了计算处理

我有一个程序,我需要做很多计算,但输入可能不完整(所以我们不能总是计算所有结果),这本身就很好,但是会给代码的可读性带来问题:

def try_calc():
    a = {'1': 100, '2': 200, '3': 0, '4': -1, '5': None, '6': 'a'}
    try:
        a['10'] = float(a['1'] * a['2'])
    except (ZeroDivisionError, KeyError, TypeError, ValueError) as e:
        a['10'] = None
    try:
        a['11'] = float(a['1'] * a['5'])
    except (ZeroDivisionError, KeyError, TypeError, ValueError) as e:
        a['11'] = None
    try:
        a['12'] = float(a['1'] * a['6'])
    except (ZeroDivisionError, KeyError, TypeError, ValueError) as e:
        a['12'] = None
    try:
        a['13'] = float(a['1'] / a['2'])
    except (ZeroDivisionError, KeyError, TypeError, ValueError) as e:
        a['13'] = …
Run Code Online (Sandbox Code Playgroud)

python

3
推荐指数
1
解决办法
128
查看次数

在Python中检查变量是否为数字类型的最佳方法是什么

我知道我可以使用type()和isinstance()来检查变量是否属于某种类型或属于某个类。我想知道是否有一种快速的方法来检查变量是否为“数字”类型,类似于MATLAB中的isnumeric。如果变量是int,long,float,double,int或float数组等,则应返回True。非常感谢任何建议。

谢谢。

python types

1
推荐指数
1
解决办法
568
查看次数

如何确定Python对象是数字?

确定Python对象是否为数字的最佳方法是什么?我正在使用以下测试

type(o) in [int, long, float, complex]
Run Code Online (Sandbox Code Playgroud)

但我想知道是否有另一种方式.

python

1
推荐指数
1
解决办法
204
查看次数

Python:如何检查对象的键值对的数据类型?

我正在创建一个函数来在对象(student1)中添加每个数组(作业,测验,测试)的标记.当代码试图添加"Lloyd"时肯定会出现错误.我要检查的数据类型的"名",以进行算术运算仅当的的关键是数量.请建议.

student1 = {
    "name": "Lloyd",
    "homework": [90, 97, 75, 92],
    "quiz": [88, 40, 94],
    "test": [75, 90]
}    

def eachSubjAverage(std):             
    for item in std:                        
        total = sum(std[item])   #totalling each marks
        std[item].append(total)     

        average_no = total/(len(std[item])-1) #averaging the marks
        std[item].append(average_no) 

eachSubjAverage(student1)
Run Code Online (Sandbox Code Playgroud)

python types arithmetic-expressions object

1
推荐指数
1
解决办法
3843
查看次数