我试图通过为一些项目做贡献来学习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”将是一个字符串,对吧?
最好的方法是什么?
答案 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'")