Forum: Poser Python Scripting


Subject: Useful Code Snippets

structure opened this issue on Jun 27, 2019 ยท 94 posts


structure posted Tue, 10 May 2022 at 4:35 AM Forum Coordinator

number outside chosen range? select the closest viable number to the chosen number.

from random import randint


def closest_value(value, iterable):
    storage = []

    for i in iterable:
        storage.append((abs(value - i), i))

    result = min(storage)
    return result[1]


for x in range(0, 10):
    variant = randint(-20, 20)
    if variant > 4 or variant < 1:
        # generate viable number
        v = variant
        variant = closest_value(variant, range(1, 5))
        print(f"Original {v} : New {variant}")


Output : 

Original 13 : New 4
Original -1 : New 1
Original -5 : New 1
Original -16 : New 1
Original 17 : New 4
Original -11 : New 1
Original 13 : New 4
Original 11 : New 4
Original 6 : New 4
Original 16 : New 4


Locked Out