Почему пишет NameError: name 'v' is not defined?

Изучаю сортировки.Подскажите почему не работает?

def bubble_sort(nums):
    swapped = True
    v = 0
    while swapped:
        swapped = False
        for i in range(len(nums) - 1):
            if nums[i] > nums[i + 1]:
                nums[i], nums[i + 1] = nums[i + 1], nums[i]
                swapped = True
        for i in range(len(nums) - 1):
            if nums[i] > nums[i + 1]:
                v + 1

random_list_of_nums = [8,6,7,5,4,2,3,1]
bubble_sort(random_list_of_nums)
print(random_list_of_nums)
print (v)

Ответы (1 шт):

Автор решения: Danis

потому что v это локальная переменная, она существует только внутри bubble_sort, её надо вернуть и сохранить в переменную

def bubble_sort(nums):
    ...
    return v

random_list_of_nums = [8,6,7,5,4,2,3,1]
v = bubble_sort(random_list_of_nums)
print(random_list_of_nums)
print (v) 

но результатом всегда будет 0 т.к. место v + 1 надо писать v += 1

→ Ссылка