Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь FAQ Написать работу КАТЕГОРИИ: АрхеологияБиология Генетика География Информатика История Логика Маркетинг Математика Менеджмент Механика Педагогика Религия Социология Технологии Физика Философия Финансы Химия Экология ТОП 10 на сайте Приготовление дезинфицирующих растворов различной концентрацииТехника нижней прямой подачи мяча. Франко-прусская война (причины и последствия) Организация работы процедурного кабинета Смысловое и механическое запоминание, их место и роль в усвоении знаний Коммуникативные барьеры и пути их преодоления Обработка изделий медицинского назначения многократного применения Образцы текста публицистического стиля Четыре типа изменения баланса Задачи с ответами для Всероссийской олимпиады по праву Мы поможем в написании ваших работ! ЗНАЕТЕ ЛИ ВЫ?
Влияние общества на человека
Приготовление дезинфицирующих растворов различной концентрации Практические работы по географии для 6 класса Организация работы процедурного кабинета Изменения в неживой природе осенью Уборка процедурного кабинета Сольфеджио. Все правила по сольфеджио Балочные системы. Определение реакций опор и моментов защемления |
Ограничение на глубину рекурсииСодержание книги
Поиск на нашем сайте
По умолчанию глубина рекурсии в языке Питон ограничена 1000 вызовов. Это ограничение можно поднять при помощи функции setrecursionlimit из модуля system. Например, чтобы увеличить возможную глубину рекурсии до 10000 нужно в начале программы выполнить две инструкции: import sys Следует учитывать, что глубину рекурсии нельзя увеличивать до очень большого значения, помимо ограничения, который устанавливается при помощи setrecursionlimit есть и ограничения операционной системы. Объект map в Python Если необходимо обработать каждый элемент списка, это можно сделать в цикле, например: for i in s: А можно воспользоваться специальной функцией map, которой передается два параметра — функция, которая будет применена к каждому элементу, и список (или другой итерируемый объект), к элементам которого будет применяться эта функция. На самом деле map — это объект, который можно в дальнейшем преобразовать в список, или использовать непосредственно как итератор (например, в цикле for). s = map(int, t) Вот несколько типичных примеров использования map: s = list(map(int, input().split())) a, b = map(float, input().split()) map часто использую с lambda-функциями: t = list(map(lambda x: x[0], s)) # взять первый символ каждой строки Lambda-функции в Python lambda-выражения используются для создания однострочных функций, как правило с целью их моментального и единоразового использования, например, как аргумента функций sort, map и т.п. Синтаксис: lambda параметр 1, параметр 2, …: выражение ПРИМЕРЫ f = lambda x, y: x * x + y * y Передача функции как аргумента в Python В Python функции являются такими же объектами, как строки, числа, списки: их можно присваивать переменным, хранить в списках и даже передавать как параметр функции. ПРИМЕР def apply(func, number1, number2): print(apply(max, 1, 2), apply(lambda x, y: x - 2 * y, 100, 10)) Типичный пример использование такой возможности — функция sort, принимающая функцию в качестве параметра key, и функция map, принимающая в качестве первого параметра функцию, которую нужно применить к каждому элементу второго аргумента map: s.sort(key=abs) # отсортировать числа по абсолютному значению s = list(map(int, input().split())) Стиль программирования (для Python) PEP 8 — документ, описывающий соглашение о том, как писать код на языке Python. PEP 8 создан на основе рекомендаций создателя языка Гвидо ван Россума. Ключевая идея Гвидо такова: код читается намного больше раз, чем пишется. Собственно, рекомендации о стиле написания кода направлены на то, чтобы улучшить читаемость кода и сделать его согласованным между большим числом проектов. В идеале, если весь код будет написан в едином стиле, то любой сможет легко его прочесть. Основные правила PEP 8: Форматирование · Используйте четыре пробела для отступов. Не делайте отступов в два пробела. Wing Ide помогает правильно расставлять пробелы. По умолчанию в Wing Ide клавиша Tab ставит четыре пробела. · Пишите import каждого модуля в отдельной строке · Располагайте все import 'ы в верхней части кода перед любыми глобальными объявлениями. · Отделяйте блок import 'ов от кода пустой строкой. · Не используйте конструкцию from … import * } · Скобки не отделяются пробелами с внутренней стороны. Между функцией и ее аргументами пробел не ставится. spam(ham[1], {eggs: 2}) # Правильно · Перед запятой, двоеточием пробел не ставится, после -— ставится. if x == 4: print(x, y) x, y = y, x # Правильно if x == 4: print(x, y) x, y = y, x # Неверно · Всегда окружайте следующие бинарные операторы ровно одним символом пробела с каждой стороны: o присваивания (=, +=, -= и т. д.), o сравнения (==, <, >,!=, <>, <=, >=, in, not in, is, is not), o логические (and, or, not), o арифметические (+, -, *, /, //, \%, **). · Не располагайте несколько инструкций в одной строке. Разнесите их по разным строкам. x = 3 # Правильно Комментарии · Комментарии, противоречащие коду, хуже, чем их отсутствие. · Располагайте однострочные комментарии после кода в той же строке и отделяйте их от кода не менее чем двумя пробелами. Комментарии должны начинаться с # и одного пробела. Имена · Не используйте символы `l', `O', и `I' как имена переменных. В некоторых шрифтах они могут быть очень похожи на цифры. · Имена переменных и функций должны содержать только маленькие буквы. Слова разделяются символами подчёркивания. Примеры: name, name_with_several_words_in_it · Имена констант должны содержать только заглавные буквы. Слова разделяются символами подчёркивания. Примеры: NAME, NAME_WITH_SEVERAL_WORDS_IN_IT · Давайте переменным говорящие английские имена, не используйте транслит. num_letters = int(input()) # Правильно kolvo_bukv = int(input()) # Неверно Функции · Разделяйте определения функций двумя пустыми строками. Отделяйте определения функций от основного кода двумя пустыми строками до и после. · Разделяйте тело функции на логические части одной пустой строкой.
|
||||
Последнее изменение этой страницы: 2017-02-19; просмотров: 1053; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 3.137.186.26 (0.006 с.) |