Welcome to Synthiam!

Program robots using technologies created from industry experts. ARC is our free-to-use robot programming software that makes features like vision recognition, navigation and artificial intelligence easy.
Get Started

Resolved Resolved by DJ Sures!

Equivalent Of Ezscript's "Sleeprandom(A,B)" For Python ?

I used to use a lot SleepRandom(a,b) in my EZ-scripts to simulate random behaviors.
I don't find the equivalent for Python scripting.

Outside of ARC, I use the "random" module (random module), but it does not seem to be present in ARC


import random
returns "No module named random".

Is there a way to achieve the same thing than SleepRandom with Python scripting in ARC, or is there a way to import the python random module?

Related Hardware EZ-Robot EZ-B v4
Related Control Script
Weird that it's _random.... hmm! Random:D


import _random

random = _random.Random()

print random.random()
Thanks @DJ !
I could have searching for it forever....:D


Weird that it's _random....
_random works too but asfaik in Python 2 std library random exists.

User-inserted image

You can make it work the same way. You will need to add an additional nuget package to your ARC project:
User-inserted image

Regarding the _random:


It is common practice to use a leading underscore for modules implemented in C.
The other reason is too avoid duplicated import names for the same functionality: _module1 can be called from CPython (C) and a module1 (py) wrapper can coexist and internally calls _module1.


You will find this for several modules of the standard library.


Typically, you should use module1 and not _module1.
Note: Quoted parts/statements are copied from the internet.
That’s good to know! Thanks ptp. I seem to be learning python as we go as well:)
It seems that I cannot use any other attribute than .Random

These following attributes, part of the random module, don't work:

>>> random.uniform(1, 10) # Random float x, 1.0 <= x < 10.0
>>> random.randint(1, 10) # Integer from 1 to 10, endpoints included
>>> random.randrange(0, 101, 2) # Even integer from 0 to 100
>>> random.choice('abcdefghij') # Choose a random element

For example, I tried random.Randint , _random.randint , _random.Randint. Each of them returns


'module' object has no attribute 'randint'

Is it me who is missing something... Again ?
I added this to the next update. Stay tuned
I tested rapidly the new beta version before going to work and the "random" module works great, with all the attributes (and without the "underscore" :D)
Thanks @DJ