亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

Python:從范圍(或兩個范圍)和單個數字中獲取隨機數

Python:從范圍(或兩個范圍)和單個數字中獲取隨機數

12345678_0001 2022-12-27 15:42:52
我有一個小腳本,可以從一組范圍內為我生成一個隨機數,例如:(1-6)?,F在我不僅要讀取一個范圍,還要添加另一個范圍或單個數字,例如:('1-6', '10', '12-17')到目前為止,我的腳本看起來像這樣,“choose_frame_set”是范圍的參數:def retime_frames():    # choose frame set from presets    fr_range = hou.evalParm("choose_frame_set")    # extract frame range from list into readable string    fr_sequence = []    for frames in fr_range.split(','):        if '-' in frames:            a, b = frames.split('-')            a, b = int(a), int(b)            fr_sequence.extend(range(a, b + 1))        else:            a = int(frames)    # set random frame from frame range    random_frame = str(random.sample(fr_sequence, 1))    # replace special characters    for char in '[]':          random_frame = random_frame.replace(char,'')    hou.parm('retime_frame').set(random_frame)    print random_frame    return random_frame我如何添加額外的范圍或單個數字,以更好地控制我隨機化的數字?
查看完整描述

2 回答

?
慕少森

TA貢獻2019條經驗 獲得超9個贊

您可以使用選擇方法:


from random import choice


def ran(*r):

    num = []

    for n in r:

        num += [m for m in range(n[0],n[1]+1)]

    return choice(num)


print(ran((1,4),(5,7),(12,13)))

所有可能的輸出:1,2,3,4,5,6,7,12,13


查看完整回答
反對 回復 2022-12-27
?
慕工程0101907

TA貢獻1887條經驗 獲得超5個贊

參考我問題下splash58的評論,解決辦法是:

似乎,如果更改else: a = int(frames)為,您的代碼有效else:
 fr_sequence.append(int(frames))


查看完整回答
反對 回復 2022-12-27
  • 2 回答
  • 0 關注
  • 211 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號