ValueError: invalid literal for int() with base 10
Возникает одна ошибка в моём огроменном коде, этот код я предоставлять не буду, но предоставлю ту же ситуацию. Помогите разобраться с проблемой, пожалуйста.
Вот код:
import random
a = ["w", "a"]
b = str(range(len(a)))
c = random.randint(0, int(b))
print(c)
Вот ошибка:
c = random.randint(0, int(b))
ValueError: invalid literal for int() with base 10: 'range(0, 2)'
Как мне всё же конвертировать это число range в int?
Ответы (1 шт):
Вот так работает
import random
a = ["w", "a"]
c = random.randint(0, len(a))
print(c)
я не знаю, что хотелось сделать вот этой строкой b = str(range(len(a)))
получить строковое представление для диапазона? ок, для вывода это нормально. Вот только randint вторым параметром ожидает число, а не строку и ругается.
Но если хочется это случайное число использовать для получения случайного символа с массива, тогда нужно не забыть вычесть единицу
c = random.randint(0, len(a)-1)
или посмотреть внимательно и найти функцию choice, которая сразу выбирает случайный элемент
a = ["w", "a"]
print(random.choice(a))