在Java中,数字类型都来自Number,所以我会使用
(x instanceof Number).
Run Code Online (Sandbox Code Playgroud)
什么是python等价物?
我发现了一些旧的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)不是解决方案.
在这种情况下哪个是合适的解决方案?
我经常检查数字变量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中的所有非数字数据(包括空格)转换为零的最简单方法.以下面的例子为例:
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(<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 :(.
我有一个程序,我需要做很多计算,但输入可能不完整(所以我们不能总是计算所有结果),这本身就很好,但是会给代码的可读性带来问题:
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) 我知道我可以使用type()和isinstance()来检查变量是否属于某种类型或属于某个类。我想知道是否有一种快速的方法来检查变量是否为“数字”类型,类似于MATLAB中的isnumeric。如果变量是int,long,float,double,int或float数组等,则应返回True。非常感谢任何建议。
谢谢。
确定Python对象是否为数字的最佳方法是什么?我正在使用以下测试
type(o) in [int, long, float, complex]
Run Code Online (Sandbox Code Playgroud)
但我想知道是否有另一种方式.
我正在创建一个函数来在对象(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)