2013-10-24 8 views
0

У меня есть быстрый вопрос. У меня есть следующий код ...while loop не работает

def abc(c): 
    a = 1 
    my = set() 
    while a <= c: 
     b = randrange(1, 365) 
     my.add(b) 
     a = a + 1 
    print(my) 

Теперь c находится в моей основной функции. c - целое число, запрашиваемое пользователем. Например, если c = 10, то до тех пор, пока < 10, он запустит цикл while и распечатает набор с 10 номерами, случайным образом сгенерированными между 1 и 365. Единственная проблема заключается в том, что он не распечатывает набор правильно.

+0

'randint()' * включает в себя * конечную точку, так что вы получите случайные значения в диапазоне от 1 до 366 Используйте 'randrange()', если вы ожидаете, что конечная точка не будет включена. –

+0

Ваши локальные имена не совпадают. 'my' - это не то же самое, что' mySet'. –

+0

Ответ был решен. Я должен подождать 12 минут, чтобы принять его. Спасибо, ребята – user2908101

ответ

2

a = a + 1 должно быть тем, что вы хотите.

+0

спасибо, извините за то, что не понял это быстро. – user2908101

0

a + 1 просто увеличивает значение a, но не сохраняет его в любом месте. Таким образом, используя a = a+1, увеличится значение a и обновится значение a.

Вторая часть: вы генерируете случайные числа и сохраняете их в наборе и, наконец, печатаете их. Для печати всех и каждого элемента в списке, используйте:

for i in my: 
    print i 

Это печать каждого значения в наборе

+0

Эй, вы знаете, как я мог решить вторую часть моей проблемы @Aswin Murugesh – user2908101

+0

@ user2908101: Отредактировал мой ответ –

Смежные вопросы