Форум сайта python.su
0
Помогите доделать задание:
нужно проверить правильность того, что пользователь ввел то число которое требуется по условию. В случае промаха- вывести ошибку и повторно запросить число:
def INPT():
b=float(input('введите нецелое, положительное число:'))
while not(b > 0 and b==float(b)):
raise NameError('Введите правильные значения!')
Вопрос: как повторно запросить число?
Офлайн
def inpt(): err = '' while True: b = input(err + 'введите нецелое, положительное число:') try: b = float(b) assert b > 0 and b != int(b) break # или return b except: err = 'неверно, ещё раз, '
Офлайн
0
благодарю)
Офлайн
0
Доброго всем времени суток) У меня снова заминка;( Помогите кто может!
a=
for i in range(255):
i=random.randint(-6,6)
a.append(i)
В этом списке нужно:
• Определить в последовательности самую длинную субпоследовательность, состоящую из возрастающих значений. Вывести номер начального элемента и содержимое этой субпоследовательности.
• Определить в последовательности самую длинную субпоследовательность, все элементы которой больше среднего значения всей последовательности. Вывести номер начального элемента и содержимое этой субпоследовательности.
Заранее спасибо)
Офлайн
568
@mary@,
Вас всё устраивает во внешнем виде вашего куска кода? Нет желания оформить его более красиво, с отступами и потерявшимися куда то скобками?
[code python][/code]
Офлайн
0
Это в этих скобках нужно писать свой код?
]
Офлайн
0
я не совсем поняла
Офлайн
6
[code python]... Ваш код тут ...[/code]
a=[] for i in range(255): i=random.randint(-6,6) a.append(i)
Отредактировано Nata (Окт. 18, 2014 10:47:52)
Офлайн
0
ага, спасибо)
Офлайн
import random def foo(lst, mode='query 1'): L = [[]] if mode == 'query 2': av = sum(lst) / float(len(lst)) for n, i in enumerate(lst): if not L[-1]: if mode == 'query 2' and av >= i: continue L[-1] = [n, [i]] elif L[-1][1][-1] < i: L[-1][1].append(i) else: L.append([]) return sorted(L, key=lambda x: -(not x) or len(x[-1]))[-1] lst = [random.randint(-6, 6) for _ in range(255)] print 'query 1. ind: {0}, seq: {1}'.format(*foo(lst, 'query 1')) print 'query 2. ind: {0}, seq: {1}'.format(*foo(lst, 'query 2'))
Офлайн