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

2024-03-28 23:37:27 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图通过参与一些项目来学习python。 目前有一个--sleep\u间隔,它取int x,正如您所期望的那样。你知道吗

我想扩展sleep\u 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”将是一个字符串,对吗?你知道吗

最好的方法是什么?你知道吗


Tags: to项目self功能get间隔if状态
2条回答

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'")

我就这么做:

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

相关问题 更多 >