Уведомления

Группа в Telegram: @pythonsu

#1 Май 15, 2014 23:32:58

quaker
Зарегистрирован: 2013-07-13
Сообщения: 30
Репутация: +  0  -
Профиль   Отправить e-mail  

Как мыслит программист в данном примере?

def total(initial=5, *numbers, **keywords):
	count = initial
	for number in numbers:
		count += number
	for key in keywords:
		count += keywords[key]
	return count
print(total(10, 1, 2, 3, vegetables=50, fruits=100))
Допустим программист хочет написать данную программу, как она зарождается у него в голове? Где её стержень? С чего начинается скелет? Опишите пожалуйста



Использую Python 3 + komodo edit )

Офлайн

#2 Май 16, 2014 07:34:31

valentjedi
Зарегистрирован: 2014-03-06
Сообщения: 26
Репутация: +  3  -
Профиль   Отправить e-mail  

Как мыслит программист в данном примере?

quaker
Это же вроде из Bytes of Python, да?
Ну а если в общем, то процесс мышления программиста давно формализован в следующих пунктах:

1. Постановка задачи — выполняется специалистом в предметной области на естественном языке (русском, английском и т. д.). Необходимо определить цель задачи, ее содержание и общий подход к решению. Возможно, что задача решается точно (аналитически), и без компьютера можно обойтись. Уже на этапе постановки надо учитывать эффективность алгоритма решения задачи на ЭВМ, ограничения, накладываемые аппаратным и программным обеспечением (АО и ПО).

2. Анализ задачи и моделирование — определяются исходные данные и результат, выявляются ограничения на их значения, выполняется формализованное описание задачи и построение (выбор) математической модели, пригодной для решения на компьютере.

3. Разработка или выбор алгоритма решения задачи — выполняется на осно­ве ее математического описания. Многие задачи можно решить различными способами. Программист должен выбрать оптимальное решение. Неточности в постановке, анализе задачи или разработке алгоритма могут привести к скрытой ошибке — программист получит неверный результат, считая его правильным.

4. Проектирование общей структуры программы — формируется модель решения с последующей детализацией и разбивкой на подпрограммы, определяется “архитектура” программы, способ хранения информации (набор переменных, массивов и т. п.).

5. Кодирование — запись алгоритма на языке программирования. Современные системы программирования позволяют ускорить процесс разработки программы, автоматически создавая часть ее текста, однако творческая работа по-прежнему лежит на программисте. Для успешной реализации целей проекта программисту необходимо использовать методы структурного программирования.

6. Отладка и тестирование программы. Под отладкой понимается устранение ошибок в программе. Тестирование позволяет вести их поиск и, в конечном счете, убедиться в том, что полностью отлаженная программа дает правильный результат. Для этого разрабатывается система тестов — специально подобранных контрольных примеров с такими наборами па­раметров, для которых решение задачи известно. Тестирование должно охватывать все возможные ветвления в программе, т. е. проверять все ее инструкции, и включать такие исходные данные, для которых решение невозможно. Проверка особых, исключительных ситуаций, необходима для анализа корректности. Например, программа должна отказать клиенту банка в просьбе выдать сумму, отсутствующую на его счете. В ответст­венных проектах большое внимание уделяется так называемой “защите от дурака” подразумевающей устойчивость программы к неумелому обращению пользователя. Использование специальных программ — отладчиков, которые позволяют выполнять программу по отдельным шагам, просматривая при этом значения переменных, значительно упрощает этот этап.

7. Анализ результатов — если программа выполняет моделирование какого-либо известного процесса, следует сопоставить результаты вычислений с результатами наблюдений. В случае существенного расхождения необ­ходимо изменить модель.

8. Публикация результатов работы, передача заказчику для эксплуатации.

9. Сопровождение программы — включает консультации представителей заказчика по работе с программой и обучение персонала. Недостатки и ошибки, замеченные в процессе эксплуатации, должны устраняться.

Взято с сайта на народе.



#!/usr/bin/env python
# -*- coding: utf-8 -*-

Офлайн

#3 Май 16, 2014 12:35:23

py.user.next
От:
Зарегистрирован: 2010-04-29
Сообщения: 10016
Репутация: +  857  -
Профиль   Отправить e-mail  

Как мыслит программист в данном примере?

quaker
Допустим программист хочет написать данную программу, как она зарождается у него в голове? Где её стержень? С чего начинается скелет?
если кратко, то лучше не спрашивай :)
надо прочитать десять тонн книг, чтобы понять, как писать одну функцию

в своём коде обрати в внимание на последнюю строчку, вот с неё как раз всё и начинается



Офлайн

#4 Май 16, 2014 20:57:04

Shaman
Зарегистрирован: 2013-03-15
Сообщения: 1369
Репутация: +  88  -
Профиль   Отправить e-mail  

Как мыслит программист в данном примере?

quaker
Где её стержень? С чего начинается скелет?
Тут программист сначала то ли выпил, то ли укололся.
def total(*numbers, **keywords):
    return keywords.pop('initial', 5) \
           + sum(numbers) \
           + sum(keywords.itervalues())

Офлайн

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version