Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Supported by

[solved] inline script 'random' not working

edited November 2012 in OpenSesame

I’m a newbie to OpenSesame, and I’m trying to use an inline script for random assignment.
I have ‘from random import shuffle’ in my first line, and I get the error below:

Python traceback:
NameError: name 'random' is not defined

I’ve installed ActivePython, and the example experiments involving an inline script with random work fine, so I’m not sure what I’m doing wrong.

I’d appreciate any help, and thanks for the great program and support.

Comments

  • Hi,

    You can import (functions from) Python modules in several ways. How to call a module's function in your script depends on the way you've imported it.

    If you imported the function shuffle from the module random by using the 'from ... import' syntax:

    from random import shuffle

    you will have to call the function like so:

    shuffle(my_list)

    In contrast, if you've imported the whole module:

    import random

    you will have to call the function by using the dotted notation, like so:

    random.shuffle(my_list)

    Is it possible that you've mixed the two, and that this is causing the error message?

    If this does not solve your problem, could you perhaps provide us with some more information (such as your inline code)?

    Best wishes,

    Lotje

  • edited November 2012

    Thanks, Lotje.
    I had gone the first route without doing 'import random' first and also renamed my 'list' variable incorrectly using the dotted notation.
    Instead, I tried importing the whole module first and just shuffling my list without renaming, and it works now.

  • I'm glad to hear your script works! :)
    Don't hesitate to post any further questions you may have!

Sign In or Register to comment.