2016-07-02 8 views
0

私はいくつかのプロジェクトに貢献してPythonを学ぼうとしています。 現在、int xを取る--sleep_intervalがあります。これは、あなたが期待する通りです。Python - スリープインターバル、さまざまなオプション(intまたはrandrange)のアカウント

私はこのような何か受け入れるようにsleep_intervalの機能を拡張したいと思います:入力が「INT-INT」の形式である場合は、我々がすべき

--sleep_interval = 100-200

をその範囲内でランダムな間隔を使用してください。

現状 -

sleep_interval = self.params.get('sleep_interval') 
     if sleep_interval: 
      self.to_screen('[download] Sleeping %s seconds...' % sleep_interval) 
      time.sleep(sleep_interval) 

私はおそらくこのような何かをやってで推測した

sleep_interval = random.randrange(int(self.params.get('sleep_interval').split('-')[0]), int(self.params.get('sleep_interval').split('-')[1])) 

だから、私はこれを推測は、if/elseロジックで行うことができます。 しかし、入力 "100-200"は文字列になります。

これにはどのような方法が最適ですか?

答えて

0

Canaryyellowの答えは正しいが - 限りユーザ入力が提供される - 入力が無効な場合に便利なエラーメッセージを提供するようにしてください。したがって、私のコードは次のようなものになります:

sleep_interval = self.params.get('sleep_interval') 
if '-' in sleep_interval: 
    try: 
     start, stop = sleep_interval.split('-') 
     sleep_interval = random.randrange(int(start), int(stop)) 
    except ValueError: 
     raise ValueError("Invalid range 'a-b' provided: expected 'a' to be integer smaller integer 'b'") 
2

私はこれを行うだろう:

if '-' in sleep_interval: 
    start,stop = sleep_interval.split('-') 
    sleep_interval = random.randrange(int(start),int(stop)) 
関連する問題