Random generator producing same numbers by function signature

40 Views Asked by At

I have a function that produces 10 random numbers as follows:

import random

def number_generate():
    numbers=[]
    while len(numbers)<10:
        a=int(random.random()*10)
        numbers.append(a)
    return numbers

for i in range(1000000):
    if i%100000==0:
        print(number_generate())

It was working fine until I moved the initial list as an input of the function like this:

import random

def number_generate(numbers=[]):
    
    while len(numbers)<10:
        a=int(random.random()*10)
        numbers.append(a)
    return numbers

for i in range(1000000):
    if i%100000==0:
        print(number_generate())

Now all the produced numbers are the same. What is the difference between these 2 code blocks? Can someone explain this phenomenon?

0

There are 0 best solutions below