Форум сайта python.su
Здравствуйте!
Учусь программированию и изучаю Python по учебной литературе, так вот, мне надо понять, что означают те или иные операторы в коде, из-за которых не доходит весь смысл программы, например:
f = open("file.txt", "r") while 1: l = f.readline() if not l: break if len(l) > 5: print l, f.close()
Офлайн
zainouВопросы странные не только как для программиста, но и как для айтишника.
И у меня возникли вопросы:
zainour - от слова read. Означает открыть файл для чтения. r там вообще можно убрать, так как он и так откроется для чтения.
0. Что означает символ “r”, в присвоении значения переменной “f”?
zainou1 - это истинное значение, так же, как и 2, 3, 4, 100. Вообще, для этого есть константа True.
1. Что означает “1” в условии While? (истина?)
zainouread line - прочитать строку. Прочитать строку из файла. Строкой считается последовательность символов, оканчивающаяся признаком конца строки.
2. Что означает f.readline()?
zainou“not l” означает, что проверяется значение из l на истинность. Пустая строка считается ложной, непустая - истинной.
3. Что подразумевается в условиях “not l” и “len(l)”? (len - длинна?)
zainouclose - закрыть. Закрыть объект в f. Так как в f находится файловый объект, то закрыть его. Закрытие файла означает отсоединение питона от файла на диске.
4. Что означает f.close()?
Отредактировано py.user.next (Ноя. 13, 2014 10:41:03)
Офлайн
py.user.next спасибо большое, весь пример стал понятен. Я не айтишник, просто ради фана сайты делал на html, потом узнал про django и python, и то что можно из них сделать. Заинтересовался и приступил к изучению, а так все мои навыки ограничиваются тройками за программы писанные на Pascal-e еще в школе. Пытаюсь еще освоится с Debian и web-сервер с поддержкой django+python установить, но пока сложновато, хотя все знакомые разработкой сайтов занимаются в Linux. По слухам python там тоже может пригодится.
И вот опять же, я назвал непонятные моменты в коде - “операторами”, потому что в учебнике, где был взят этот пример, применяется определение “оператор” почти ко всему. А сейчас читаю другу литературу, там уже дается определения “операторов” и “операндов” в Питоне и получается, что в примере мне были непонятны “выражения”, а не “операторы”, последние в свою очередь имеют совсем другой смысл.
Отредактировано zainou (Ноя. 13, 2014 13:18:56)
Офлайн
zainouСлово “оператор” связано с контекстом применения слова. В контексте программирования “оператор” - это одно. В контексте питона “оператор” - это другое. Но про питон можно говорить как про программирование, поэтому и смысл слова “оператор” может быть взят из контекста программирования.
И вот опять же, я назвал непонятные моменты в коде - “операторами”, потому что в учебнике, где был взят этот пример, применяется определение “оператор” почти ко всему.
zainouВот здесь оператор цикла содержит оператор чтения и присваивания строки из файла.while 1: l = f.readline()
zainouА здесь оператор условия содержит оператор прерывания цикла.if not l: break
Отредактировано py.user.next (Ноя. 14, 2014 11:09:44)
Офлайн
Постараюсь всё это осмыслить.
Офлайн
Немного дополнил там :) А то, видимо, мозг перегрузил догадками.
Отредактировано py.user.next (Ноя. 14, 2014 11:11:55)
Офлайн
py.user.next, не могли бы Вы для полного понимания привести пример еще и тернарной операции?
Офлайн
vanусловие ? оператор1 : оператор2
пример еще и тернарной операции
Отредактировано py.user.next (Ноя. 15, 2014 00:38:45)
Офлайн
Офлайн
Подскажите пожалуйста, что подразумевается под “шагом” среза, а то я не совсем вникаю в значение “шага” и его свойства. Как оно влияет на срез? Почему без шага в примере он вывел “ev”, а с шагом равным “2” вывел “ee”?
s='derevo' s [3:5] → 'ev' s [1:5:2] →'ee'
Если задать срез с тремя параметрами S, то третий параметр задает шаг, как в случае с функцией range, то есть будут взяты символы с индексами a, a+d, a+2*d и т.д. При задании значения третьего параметра, равному 2, в срез попадет кажый второй символ, а если взять значение среза, равное -1, то символы будут идти в обратном порядке.
Отредактировано zainou (Март 15, 2015 19:33:23)
Офлайн