Короткий ответ
Посмотрите словари Python, чтобы разрешить назначения типа 1 = 'a'
. Ниже у меня есть рабочий пример, который генерирует случайное имя на основе пола и «мусора».
Ответственность
Я не до конца понимаю (с помощью кода), что вы пытаетесь выполнить с помощью char / ord и случайной буквы. Также обратите внимание, что, не имея абсолютно никакого представления о ваших целях и требованиях к дизайну, я сделал пример более сложным, чем это может понадобиться в учебных целях.
Дополнительные ресурсы
* Документы Python для словаря
* Использование словарных отношений Python для поиска в обоих направлениях
В ответ на последнее редактирование
Если вы хотите создать случайные «настоящие» имена, я думаю, что вам лучше всего использовать большой список имен и просто выбрать случайный. На вашем месте я бы изучил что-то, связанное с результатами переписи: мужчин и женщин . Обратите внимание, что male_names.txt и female_names.txt являются копией списка, найденного на веб-сайте переписи. Как заявление об отказе от ответственности, я уверен, что есть более эффективный способ загрузки / чтения файла. Просто используйте этот пример в качестве доказательства концепции.
Обновление
Вот быстрый и грязный способ посеять случайные значения. Опять же, я не уверен, что это самый питонический или самый эффективный способ, но он работает.
Пример
import random
import time
def get_random_name(gender, seed):
if(gender == 'male'):
file = 'male_names.txt'
elif(gender == 'female'):
file = 'female_names.txt'
fid = open(file,'r')
names = []
total_names = 0
for line in fid:
if(line.lower().startswith(seed)):
names.append(line)
total_names = total_names + 1
random_index = random.randint(0,total_names)
return names[random_index]
if (__name__ == "__main__"):
print 'Welcome to Name Database 2.2\n'
print '1. Boy'
print '2. Girl'
bog = raw_input('\nGender: ')
print 'What should the name start with?'
print 'A, Ab, Abc, B, Ba, Br, etc...'
print ''
l = raw_input('Leter(s): ').lower()
new_name = ''
if bog == '1': # Boy
print get_random_name('male',l)
elif bog == '2':
print get_random_name('female',l)
Выход
Welcome to Name Database 2.2
1. Boy
2. Girl
Gender: 2
What should the name start with?
A, Ab, Abc, B, Ba, Br, etc...
Leter(s): br
BRITTA