def read_sequence(end=0): sequence = [] while True: el = raw_input('enter integer or {}: '.format(end)) try: i = int(el) if i == end: break sequence.append(i) except ValueError: print 'Error: Input must be integer!' return sequence print sum(filter(lambda a: a % 7 == 0, filter(lambda a: (a >= 6) and (a <= 80), read_sequence())))
end, _sum = 0, 0 # признак окончания ввода, сумма dig = raw_input('data input: ').split() # ввод последовательности for i in dig: # перебор i = int(i) if i == end: break if 6 <= i <= 80 and i % 7 == 0: _sum += i print 'data output: ', _sum
dig = map(int,raw_input('data input: ').split()) # ввод последовательности print 'number of cool values: ',len([i for i in dig if 6 <= i <= 80 and i % 7 == 0])
i for i in dig if 6 <= i <= 80 and i % 7 == 0
SteshЧтобы результат вычисления этого выражения стал списком.
берутся в квадратные скобки
sum(1 for i in dig if 6 <= i <= 80 and i % 7 == 0)
sergeekЧтобы создать список из генератора, нужно 1) отвести память 2) заполнить ее объектами. Это не то, что немножко быстрее будет, это будет сильно медленнее и ресурсоемко.
оно вроде генератор таким образом делает, просто скобки автоматически опускает. Через список побыстрее немножко работает.