2016-03-25 9 views
-1

私は自分のプログラムを終了しました!今私は非常に簡単にそれを壊すことができるようだ...入力された値が数字であることをどのように確認しますか?

文字列から変換する前に、値がintかfloatかどうかをチェックするにはどうすればよいですか?ValueErrorを使ってみましたが、関数はループの一部ではありません...私はこれを考える必要がありました初めて申し訳ありません!

私のコードは、ユーザーが実際に方向性(HAを!)以下の場合には素晴らしい作品が、私は「THREE」の代わりに、3 コードのようなもの入力すると解除されます:あなたがいないのはなぜ

def parse_message(msg): 

    if len(msg) >= 1: 
     msg = msg.split(' ') 
     options = {'!resetme': command_reset_player, 
        '!removebets': command_remove_bets} 
     if msg[0] == '!bet': 
      if msg[1] == 'place': 
       if int(msg[2]) in [4, 5, 6, 8, 9, 10] : 
        if float(msg[3]) > 1: 
         UpdateBets.PlaceBet(sender, int(msg[2]), float(msg[3])) 
      if msg[1] == 'pass': 
       if float(msg[2]) > 1: 
        UpdateBets.PassBet(sender, float(msg[2])) 
      if msg[1] == 'passodds': 
       if float(msg[2]) > 1: 
        UpdateBets.PassOdds(sender, float(msg[2])) 
      if msg[1] == 'hard': 
       if int(msg[2]) in [4, 6, 8, 10] : 
        if float(msg[3]) > 1: 
         UpdateBets.HardBet(sender, int(msg[2]), float(msg[3])) 
+0

をhttp://stackoverflow.com/questions/354038/how-do-i-check-if-a-string-is-a-number-float-in-python – 7hibault

答えて

0
try: 
    val = int(val) 
except ValueError: 
    print('Not an int') 
+0

のように関数を定義してくださいintまたはfloatにするには、私はexcept文を使ってループを実行します....うまくいくかもしれません。 – HELPMEPLEASE

+0

実際にstr-> int変換の場合、文字列が数値かどうかをテストするために 'val.isdigit()'を使うほうが良いかもしれません - パフォーマンスの観点からは、ほとんど有効な文字列を得るかどうかによって決まるでしょう – Alec

+0

'" -1 ".isdigit()'は偽とみなされますが、 '' int( " - 1") 'は完全に有効です。の。 –