Программирование и научные вычисления на языке Python/§14: различия между версиями

Содержимое удалено Содержимое добавлено
Нет описания правки
Нет описания правки
Строка 180:
 
 
Чтобы заполучить нужную информацию, нам необходимо выполнить следующую последовательность действий: прочитать построчно файл; найти по ключевым словам ''<tt>Current conditions''</tt> и ''<tt>forecast-temp''</tt> строки, в которых они содержатся; требуемые данные расположены в следующих за ними строках, с помощью строковой функции <tt>strip()</tt> отрезаем ненужные пробелы по краям строк; воспользовавшись срезами вырезаем нужную нам подстроку, убирая из нее div-теги и все лишнее. Получаем следующий
 
 
<source lang="python">
lines = infile.readlines()
for i in range(len(lines)):
line = lines[i] # короткая форма
if 'Current conditions' in line:
without_space = lines[i+1].strip()
weather = without_space[18:-6]
if 'forecast-temp' in line:
without_space = lines[i+1].strip()
ftemp = float(without_space[18:-12])
ctemp = (ftemp - 32)/1.8
break # все что нужно найдено, уходим из цикла
</source>
 
 
Стоит отметить, что строковые срезы нам здесь серьезно помогают, поскольку нам не приходится думать о длине строки. А ведь она может меняться: разная погода естественно записывается разными словами, а значение температуры может быть как однозначным, так и двухзначным. Срезы же вырезают именно лишнюю информацию, которая является частью кода, который может измениться только по воле ресурса.