Python 模复数
Python Modulo Complex numbers
def print_numbers_modulo(List,Operator,ModuloNumber):
CheckIfPrintedNumber=False
for i in range(0,len(List)):
if (abs(List[i]),Operator,ModuloNumber):
print(List[i])
if (CheckIfPrintedNumber == False):
print("There are no numbers having modulo",Operator,ModuloNumber)
这是我的函数,我这样称呼它:
print_numbers_modulo(List,'<',10)
列表定义为:
List=([1+3j,12j,-1j,12+3j,13,12j,12-3j,-45j,-45-5j,0,-323j,-2+3j])
为什么它打印所有数字,而不仅仅是模 <10 的数字
你可以这样做:
op = {'<': '__lt__', '>': '__gt__', '<=': '__le__', '>=': '__ge__'}
def print_numbers_modulo(List,Operator,ModuloNumber):
CheckIfPrintedNumber=False
for i in range(0,len(List)):
if getattr(abs(List[i]), op[Operator])(ModuloNumber):
print(List[i])
CheckIfPrintedNumber = True
if (CheckIfPrintedNumber == False):
print("There are no numbers having modulo",Operator,ModuloNumber)
List=([1+3j,12j,-1j,12+3j,13,12j,12-3j,-45j,-45-5j,0,-323j,-2+3j])
print_numbers_modulo(List,'<',10)
op
是一个字典,"translates"你的运算符在floatclass对应的魔术方法中,作为一个字符串。
然后,您可以使用 getattr
调用 abs(List[i])
上的方法,以 ModuloNumber
作为参数:
getattr(abs(List[i]), op[Operator])(ModuloNumber)
如果,例如,Operator = "<"
,这相当于:
abs(List[i]).__lt__(ModuloNumber)
def print_numbers_modulo(List,Operator,ModuloNumber):
CheckIfPrintedNumber=False
for i in range(0,len(List)):
if (abs(List[i]),Operator,ModuloNumber):
print(List[i])
if (CheckIfPrintedNumber == False):
print("There are no numbers having modulo",Operator,ModuloNumber)
这是我的函数,我这样称呼它:
print_numbers_modulo(List,'<',10)
列表定义为:
List=([1+3j,12j,-1j,12+3j,13,12j,12-3j,-45j,-45-5j,0,-323j,-2+3j])
为什么它打印所有数字,而不仅仅是模 <10 的数字
你可以这样做:
op = {'<': '__lt__', '>': '__gt__', '<=': '__le__', '>=': '__ge__'}
def print_numbers_modulo(List,Operator,ModuloNumber):
CheckIfPrintedNumber=False
for i in range(0,len(List)):
if getattr(abs(List[i]), op[Operator])(ModuloNumber):
print(List[i])
CheckIfPrintedNumber = True
if (CheckIfPrintedNumber == False):
print("There are no numbers having modulo",Operator,ModuloNumber)
List=([1+3j,12j,-1j,12+3j,13,12j,12-3j,-45j,-45-5j,0,-323j,-2+3j])
print_numbers_modulo(List,'<',10)
op
是一个字典,"translates"你的运算符在floatclass对应的魔术方法中,作为一个字符串。
然后,您可以使用 getattr
调用 abs(List[i])
上的方法,以 ModuloNumber
作为参数:
getattr(abs(List[i]), op[Operator])(ModuloNumber)
如果,例如,Operator = "<"
,这相当于:
abs(List[i]).__lt__(ModuloNumber)