Ваша математика неверна. Предполагая, что ASCII, (random() % (int('Z') + 1)
может вернуть что-либо до 'Z'
, включая строчные буквы, цифры, непечатные символы и другие вещи. Если вы добавите int('A')
к этому, вы получите большое изменение при получении результата, который находится за пределами символов верхнего регистра, и даже более 127
и, следовательно, больше не ASCII.
Вы могли бы просто иметь 'A' + (random() % 26)
вместо этого.