Discuss / Python / bad operand type

bad operand type

Topic source
#!/usr/bin/env python3
# -*- coding: utf-8 -*-
import math
def quadratic(a,b,c):
    d=b*b-4*a*c
    if not isinstance((a,b,c),(int,float)):
        raise TypeError('bad operand type')  
    if a==0:
        if b==0:
            return '该方程无解'
        else:
            x=-c/b
            return x
    elif d<0:
        return '该方程无解'
    else:
        x1=(-b+math.sqrt(d))/(2*a)
        x2=(-b-math.sqrt(d))/(2*a)
        return x1,x2

请问这个if not isinstance((a,b,c),(int,float)): raise TypeError('bad operand type') 这一句哪里有问题吗,总是错?

在此插入代码

if not (isinstance(a, (int, float)) or isinstance(b, (int, float)) or isinstance(c, (int, float))): raise TypeError('bad operand type')

你试试这个

isinstance(变量obj,(数据类型1,数据类型2...) 变量一次只能判断一个是否为以下数据类型,而不能同时判断多个变量吧


  • 1

Reply