Найти - Пользователи
Полная версия: Глобальные переменные в функциях
Начало » Python для новичков » Глобальные переменные в функциях
1
rtv132
Здравствуйте. Недавно столкнулся с такой проблемой, как область видимости переменных. Она не позволяет мне решить поставленную задачу(написание программы)Вот такой код:
import random
def func():
global a
global b
global c
global d
a = random.randint(0 , 999)
b = random.randint(0 , 999)
с = random.randint(0 , 1)
d = None
if c == 0:
a + b
d = a + b
elif c == 1:
a - b
d = a - b
return a , b , d
func()
И когда я пытаюсь вывести на экран любую переменную с помощью print, то он выводит ошибку, хотя синтаксис верный. Ошибка NameError:
if c == 0:
NameError: name ‘c’ is not defined
И такое случается со всеми переменными, которые я там объявлял.
В интернете ничего не нашел, объясните, пж, что тут неверно

PEHDOM
поменяйте “с” русскую на английскую
marvellik
скорее всего с в строке с = random.randint(0 , 1) набрана кириллицей или в if. а зачем обьявлять переменные глобальными если они созданы в функции и возвращаются ею
 import random
def func():
    a = random.randint(0 , 999)
    b = random.randint(0 , 999)
    c = random.randint(0 , 1)
    if c == 0:
        d = a + b
    elif c == 1:
        d = a - b
    return a , b ,c, d
print(func())
(354, 552, 0, 906)
а вот пару примеров что делает global
 a = 55 # глобальная переменная
def noglob():
   a = 77
   return(a)
print(a) # глобальная а 
print(noglob()) # а из функции
print(a) # глобальная а 
55
77
55
как видно глобальная а не изменилась, функция вернула локальную а то есть это два разных обьекта с одним именем в разных областях видимости
 a = 55 # глобальная переменная
def noglob():
    global a
    a = 77
    return(a)
print(a) # глобальная а 
print(noglob()) # а из функции
print(a) # глобальная а 
55
77
77
a теперь функция переопределила а которую мы указали как глобальную
rtv132
спасибо
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB