Так это то, что я получил:Привет, Как сделать конечный результат этой случайной сгенерированной локальной переменной в глобальную переменную? Python
x = ['a', 'b', 'c']
y = ['a', 'b', 'c']
def stuff(this, that):
this = x[randint(0, 2)]
that = y[randint(0, 2)]
while this != 'c' or that != 'c'
print "some %r stuff here etc..." % (this, that)
this = x[randint(0, 2)]
that = y[randint(0, 2)]
stuff(x[randint(0, 2)], x[randint(0, 2)])
это просто «суть» программы курса.
Так что все работает нормально, как будто я хочу, чтобы это было после этой части. проблема у меня есть, когда я пытаюсь распечатать или использовать конечный результат успешного while-loop глобально, я, очевидно, получаю NameError, и когда я пытаюсь добавить глобальное значение в переменную внутри функции, я получаю SyntaxError: имя «бла» является глобальным и локальным. Если я создаю случайную переменную вне функции, то то, что я распечатываю, является переменной THAT, а не той, которая удовлетворяла оператору while-loop.
Теперь я знаю, что могу просто поместить печать в функцию, но это только часть более крупной программы , которая повторяет основные шаги выше. Я хочу, чтобы напечатать общий результат вместе поскольку так:
print "blah blah is %r, and %r %r %r etc.. blah blah.." % (x, y, z, a, b, etc)
Как это исправить, так что я могу точно собирать переменные, которые удовлетворяют While-цикл и использовать их в других частях всей программы? PS: Извините за беспорядок, я все еще на стадии обучения.
Используйте 'random.choice (х)' вместо 'х [random.randint (0 , 2)] '. –
Просто объявите их 'global' в верхней части функции. – martineau
RTFM! Переменные 'global' будут вашими друзьями. – Mic