Why is the global variable not showing the correct value

The code is creating a random number from a low value and a high value supplied by the user. Why, when printing the value of the comp_num inside the function it returns the correct value but when printing it at the end of the sequence it is 0.

import random 

comp_num = 0

def generateNumber():
  comp_num = random.randint(low_number,high_number)
  print(comp_num)

low_number = int(input("Please select the minimum number"))
high_number = int(input("Please select the high number"))


generateNumber()
print(f"The comp_num is {comp_num}")

>Solution :

You need to say inside the function that comp_num is a global variable:

import random 

comp_num = 0

def generateNumber():
    global comp_num
    comp_num = random.randint(low_number,high_number)
    print(comp_num)

low_number = int(input("Please select the minimum number"))
high_number = int(input("Please select the high number"))


generateNumber()
print(f"The comp_num is {comp_num}")

Output:

Please select the minimum number 2
Please select the high number 3
3
The comp_num is 3

Leave a Reply