2016-10-23 23 views
0

ユーザーが文字列を入力していて、その数値が複素数かどうかを確認する必要があります。私はそれのようなものを試しましたが、実数部または虚数部が9より大きい場合は動作しません。ありがとう。ユーザーからの指定された文字列が複素数であるかどうかを確認するにはどうすればよいですか?

def validation(command): 
    command=command.list() 
    if len(command)==3: 
     if command[0]=="-" and command[1].isnumeric()==True and command[3].isnumeric()==True and command[3]=="i" and (command[2]=="+" or command[2]=="-"): 
      return True 

    if len(command)==4: 
     if command[0].isnumeric()==True and command[2].isnumeric()==True and command[3]=="i" and (command[1]=="+" or command[1]=="-"): 
      return True 
    return False 

答えて

0

使用try and exceptと複素数へのご入力を変換しよう:

try: 
    c = complex(input('enter a complex number: ')) # convert input to complex 
except ValueError: 
    print('you need to enter a complex number!') # failed 

complexをインポートするために必要とされていません。内蔵されています:

>>> complex('4+5j') 
(4+5j) 
>>> complex('30') 
(30+0j) 
>>> complex('30a') 
Traceback (most recent call last): 
    File "<stdin>", line 1, in <module> 
ValueError: complex() arg is a malformed string 
関連する問題