Уведомления

Группа в Telegram: @pythonsu

#1 Окт. 18, 2014 22:15:13

@mary@
Зарегистрирован: 2014-09-28
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Вложеные списки

спасибо за помощь)

Офлайн

#2 Окт. 19, 2014 06:13:09

Isem
От:
Зарегистрирован: 2010-08-27
Сообщения: 447
Репутация: +  7  -
Профиль   Отправить e-mail  

Вложеные списки

@mary@
Не могли бы вы помочь в следующем решении задачи. Благодарю)
Сгенерировать случайным образом последовательность длиной 200 элементов, состоящую из чисел 0 и 1, таким образом, чтобы число подряд идущих единиц не превышало 2, а число подряд идущих нулей не превышало 4.
import random, itertools
def src( *max_lens ):
    for n in itertools.count(random.randint(0,1)):
        yield from [n&1]*random.randint( 1, max_lens[n&1] )
        # или так:
        # yield from itertools.repeat( n&1, random.randint( 1, max_lens[n&1] ) )
        # или так:
        # for k in range(random.randint( 1, max_lens[n&1] )): yield n&1
lst = list(itertools.islice( src(4,2), 20 ))
print( lst)

[1, 0, 0, 0, 0, 1, 0, 0, 0, 1, 0, 1, 0, 0, 0, 0, 1, 1, 0, 1]
>>> 



Отредактировано Isem (Окт. 19, 2014 11:48:27)

Офлайн

#3 Окт. 19, 2014 13:05:27

@mary@
Зарегистрирован: 2014-09-28
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Вложеные списки

a=[]
for i in range(255):
    	i=random.randint(-6,6)
    	a.append(i)
srval=sum(a)/255
for i in a:
    if a[i]>int(srval) and a[i-1]>srval:
        count+=1
    elif count>mcount:
        mcount=count
        index=i+1
        count=1
        i+=1
a1=[]
for i in range(index-mcount-1, index-1):
    a1.append(a[i])
print("long, growing:", mcount)
print('pos', index-mcount)
print('cybposl',a1)
Должно выполнять:
Определить в последовательности самую длинную субпоследовательность, состоящую из возрастающих значений. Вывести номер начального элемента и содержимое этой субпоследовательности.
Выбивает ошибку:

Traceback (most recent call last):
File “D:\Python\RGR py.py”, line 28, in <module>
count+=1
NameError: name ‘count’ is not defined

Помогите разобраться)

Офлайн

#4 Окт. 19, 2014 15:58:19

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Вложеные списки

Написано же- имя ‘count’ не определено. К чему вы 1 прибавляете (count += 1), если интерпретатор не знает о count? Ее нужно заранее объявить, присвоив ей значение.

Офлайн

#5 Ноя. 5, 2014 21:54:52

@mary@
Зарегистрирован: 2014-09-28
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Вложеные списки

Добрый вечер) Подскажите, такой алгоритм может посчитать количество слов в предолжении:

file=open('c:\\laba.txt')
writstr = str(file)
a =len(writstr.split(' '))
а также мне нужно подсчитать слова исключая числа и знаки пунктуации.

Офлайн

#6 Ноя. 5, 2014 22:11:03

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Вложеные списки

Вы для начала выведите на экран содержимое переменной writestr. И подумайте - это то, что вы ожидали увидеть?

Офлайн

#7 Ноя. 5, 2014 22:15:17

terabayt
От: Киев
Зарегистрирован: 2011-11-26
Сообщения: 1099
Репутация: +  103  -
Профиль   Отправить e-mail  

Вложеные списки

@mary@
Подскажите, такой алгоритм может посчитать количество слов в предолжении
вот этот в одном предложении да
file=open('c:\\laba.txt')
writstr = str(file.read())
a =len(writstr.split(' '))
@mary@
а также мне нужно подсчитать слова исключая числа и знаки пунктуации.
а слова только латиница (английские) или и кирилица (русские)?



————————————————
-*- Simple is better than complex -*-

Отредактировано terabayt (Ноя. 5, 2014 22:16:24)

Офлайн

#8 Ноя. 5, 2014 22:23:44

Alex_HH
Зарегистрирован: 2014-03-03
Сообщения: 91
Репутация: +  13  -
Профиль   Отправить e-mail  

Вложеные списки

@mary@
Добрый вечер) Подскажите, такой алгоритм может посчитать количество слов в предолжении:
Знаки препинания пишутся слитно с предыдущим словом, значит они относятся к слову, словом считаются любые символы от пробела до пробела.
Исходя из этого, имеем следующее:
def main():
    stroka = 'Мыла мама 2 рамы, а 3 не мыла!'
    count = len(stroka.split(' '))
    
    for word in stroka.split(' '):
        try:
            tmp = float(word)
            count -= 1
        except Exception:
            pass        
    return (count)

6
[Finished in 0.2s]

=== UPDATE ===

Так будет правильней:
def main():
    stroka = 'Мыла мама 2 рамы, а 3 не мыла!'
    count = len(stroka.split(' '))
    
    for word in stroka.split(' '):
        try:
            tmp = float(word)
        except Exception:
            pass   
        else:
            count -= 1    
    
    return (count)



————–
Зимой и летом heavy metall.
Технический прогресс - это падение вверх. Alex_HH (с)
Эстетизация жестокости есть квинтэссенция смысла человеческого существования. Alex_HH (с)
После бога идет не пустота, там метаданные. Alex_HH (с)

Отредактировано Alex_HH (Ноя. 5, 2014 22:26:56)

Офлайн

#9 Ноя. 5, 2014 22:49:05

dimy44
От: Евпатория
Зарегистрирован: 2012-04-21
Сообщения: 463
Репутация: +  42  -
Профиль  

Вложеные списки

Щас намудрите тут)

len([1 for i in open('c:\\laba.txt').read().split() if not i.isdigit()])

Офлайн

#10 Ноя. 6, 2014 00:07:43

@mary@
Зарегистрирован: 2014-09-28
Сообщения: 40
Репутация: +  0  -
Профиль   Отправить e-mail  

Вложеные списки

только русские:

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version