Мик Данди
Дек. 27, 2009 13:42:06
мне нужно сделать лабораторную по информатике, но отсутствие мозга мне мешает это сделать
в задании нужно найти строку максимальной длинны.
У меня вышло найти максимальное кол-во символов из строк.
вот мои попытки
f = open("hello.txt")
ar = []
for line in f :
n = len(line)
ar.append(n)
print max(ar)
f.close()
не могли бы вы мне подсказать как получить саму строку и сделать это один раз, а не чтоб писало каждое слово
заранее благодарен
Мик Данди
Дек. 27, 2009 13:50:22
может быть с помощью словарей попробовать?
expee
Дек. 27, 2009 13:55:39
Открываешь файл. Создаешь переменную i, в которой будет храниться максимальное число символов с начальным значением 0. Дальше по строке читаешь из файла, сравниваешь длину строки с переменной i. Если длина строки больше, то присваиваешь переменной длину строки. В итоге у тебя в переменной будет максимальная длина строки. Плюс можешь ввести дополнительную переменную, чтобы указать номер строки.
Мик Данди
Дек. 27, 2009 14:18:43
то есть мне значение i брать из len(line)?
и также придётся делать счётчик строк?
а как мне тогда номеру строку присвоить то что в этой строке?
pasaranax
Дек. 27, 2009 14:29:35
print max()
Мик Данди
Дек. 27, 2009 15:04:55
pasaranax
мне не число нужно, а строка на экран выведенная
Мик Данди
Дек. 27, 2009 15:24:10
сейчас у меня вот это но оно не работает
f = open("hello.txt")
n_str=0
i=0
for line in f :
if len(line)>i :
i=len(line)
str1 = line
n_str=n_str+1
if n_str!=1 :
print
else :
print srt1
f.close()
expee
Дек. 27, 2009 15:28:46
Тогда, когда видишь, что у тебя длина строки больше числа, которое храниться в счетчике, записываешь длину строки в счетчик и саму строку в какую-то переменную. Когда цикл закончится у тебя в этой переменной будет самая длинная строка.
expee
Дек. 27, 2009 15:32:41
На вот тебе без открытия файла:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
count = 0
string = ''
li = ['hello', 'world', 'big string', 'самая длинная строка!!!']
for i in li:
if len(i) > count:
count = len(i)
string = i
print string
Мик Данди
Дек. 27, 2009 15:44:22
разобрался спасибо большое