UsCrПо-моему короче и понятнее будет через random.choice, как я предлагал. Попробуйте.arr = [string.letters[random.randrange(0,len(string.letters))] \
for i in xrange(0,KolSymb)]
def first(Kol): #Punkt "a"
arr = generate(Kol)
xarr=[]
print arr
if arr[0]==":":print "Array is empty"
else:
for i in range(0,len(arr)):
xarr.append(arr[i])
if arr[i]==":":break
return xarr
Вынесите из функции first вызов generate. Просто передайте туда список и что искать. Получите функцию, которую потенциально можно использовать еще где-то.
Можно ли прервать генерацию по условию? Нечто вроде:Насколько я знаю нет. Но в данном случае это и не нужно.Я знаю, что это синтаксис еррор. Я просто пытаюсь обьяснить, о чём яxarr = [arr[i] for i in range(0,len(arr)) if arr[i]!=":" else:break]
говорю. Может быть выловить исключение? Или есть стандартные способы?
Обратите внимание на стиль. Посмотрите на те линки, что я давал. В результате у нас должна получиться программа, принимающая длину списка и символ для вставки в качестве параметра командной строки и выводящая сгенеренный список и три списка - ответы на вопросы а, б, в с пояснениями.