jeudi 4 juin 2020

Python: get random number from range (or two ranges) and single number

I have that little script that generates me a random number from sets of ranges like: (1-6).

Now I would like to read not only one range, but add another range or single numbers like: ('1-6', '10', '12-17')

My Script looks like that so far, "choose_frame_set" is the parameter for the ranges:

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

How can I add extra ranges or single numbers, to have more control about what numbers I randomize?




Aucun commentaire:

Enregistrer un commentaire