Заглавная страница Избранные статьи Случайная статья Познавательные статьи Новые добавления Обратная связь 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; просмотров: 1144; Нарушение авторского права страницы; Мы поможем в написании вашей работы! infopedia.su Все материалы представленные на сайте исключительно с целью ознакомления читателями и не преследуют коммерческих целей или нарушение авторских прав. Обратная связь - 216.73.216.214 (0.009 с.) |