Найти - Пользователи
Полная версия: Вложеные списки
Начало » Python для новичков » Вложеные списки
1 2 3 4 5
@mary@
спасибо за помощь)
Isem
@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]
>>> 
@mary@
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

Помогите разобраться)
dimy44
Написано же- имя ‘count’ не определено. К чему вы 1 прибавляете (count += 1), если интерпретатор не знает о count? Ее нужно заранее объявить, присвоив ей значение.
@mary@
Добрый вечер) Подскажите, такой алгоритм может посчитать количество слов в предолжении:
file=open('c:\\laba.txt')
writstr = str(file)
a =len(writstr.split(' '))
а также мне нужно подсчитать слова исключая числа и знаки пунктуации.
dimy44
Вы для начала выведите на экран содержимое переменной writestr. И подумайте - это то, что вы ожидали увидеть?
terabayt
@mary@
Подскажите, такой алгоритм может посчитать количество слов в предолжении
вот этот в одном предложении да
file=open('c:\\laba.txt')
writstr = str(file.read())
a =len(writstr.split(' '))
@mary@
а также мне нужно подсчитать слова исключая числа и знаки пунктуации.
а слова только латиница (английские) или и кирилица (русские)?
Alex_HH
@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)
dimy44
Щас намудрите тут)
len([1 for i in open('c:\\laba.txt').read().split() if not i.isdigit()])
@mary@
только русские:

This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB