Python - 睡眠间隔,考虑各种选项(int或randrange)

时间:2016-07-02 20:05:07

标签: python

我试图通过为一些项目做贡献来学习python。 目前有一个--sleep_interval,它接受int x,就像你期望的那样。

我想扩展sleep_interval的功能以接受这样的事情:

- sleep_interval = 100-200

如果输入的格式为“int-int”,我们应该使用该范围内的随机间隔。

现状 -

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”将是一个字符串,对吧?

最好的方法是什么?

2 个答案:

答案 0 :(得分:2)

我只是这样做:

if '-' in sleep_interval:
  start,stop = sleep_interval.split('-')
  sleep_interval = random.randrange(int(start),int(stop))

答案 1 :(得分: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'")