Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Уроки по Python, часть 3, циклы (важно!)  (Прочитано 25246 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Grigory Smirnov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1339
  • Дайте мне исходники, и я переверну Землю.
    • Просмотр профиля
    • Дафтер
Всем доброго дня. Сегодня я разошелся и написал целых 2 урока по отличному языку программирования Python. Вот небольшое оглавление по моим урокам:

Итак, сегодня мы поговорим о циклах. Это очень важная тема, циклы широко применяются в дальнейшем, поэтому прочитайте урок внимательно.

Цикл While
Циклы выполняют что-нибудь, пока условие не будет выполнено. While - довольно простой цикл, вот его схема:

while переменная условие вторая_переменная:
    действие_пока_цикл_правдив

С каждым "оборотом" цикла, действие внутри него происходит снова. Обратите внимание, что как и с условными операторами, требуется делать отступы, тем самым обозначая блок, который будет выполняться. Пример просто цикла, который мы детально разберем:
Код: (python) [Выделить]
x='!'
i=2
while i < 8:
    print(x)
    i = i + 1

В первой строчке мы присваиваем переменной x значение !, а второй делаем тоже самое для переменной i, значение 2. Затем идет цикл, то есть: пока i меньше 8, выводить на экран x. Самая интересная последняя строчка. Так мы с каждым оборотом цикла увеличиваем значение i на 1, следовательно, цикл не бесконечен. Когда значение i станет больше 8, цикл остановится.

А вот очень популярный цикл, который генерирует числа Фибоначчи - ряд чисел, в котором каждое последующее число равно сумме двух предыдущих: 0, 1, 1, 2, 3, 5, 8, 13 и т.д. Попробуйте в нем сами разобраться. Если у вас это не получится, то смотрите объяснение под спойлером. Или просто проверьте себя :)

Код: (python) [Выделить]
fib1 = 0
fib2 = 1
print (fib1)
print (fib2)
r = 10
i = 0
while i < r:
fib_sum = fib1 + fib2
print (fib_sum)
fib1 = fib2
fib2 = fib_sum
i = i + 1
Объяснение:
(Нажмите, чтобы показать/скрыть)

Цикл for
В отличие от других языков программирования (я изучаю Java, говорю про нее, возможно в других языках также), цикл for в Python не просто цикл со счетчиком. Он как бы перебирает по одному элементы. Разберем состав цикла:

for переменная

создаем новую переменную, в которой будет храниться результат выполнения цикла.

in переменная2

in - обязательно, а из второй переменной берем значение, которое и будем перебирать. Если вам сейчас не очень понятно, то вот пример:

Код: (python) [Выделить]
word='hello'
for letter in word: #Опять отступы!
    print(letter, end=' * ')   #end - на конце буквы будет ставится *

#Вывод это цикла:
п * р * и * в * е * т *

Также можно использовать счетчик для цикла:

Код: (python) [Выделить]
for i in range(100): #100 - количество повторов цикла
print(i,end=' ')

Также цикл for используется для работы со словарями и списками. Следующий урок так раз будет про них. Мы изучим словари, списки, строки; повторим работу с циклом for и научимся применять его не только со словами.

Домашнее задание:
1. Можно сделать бесконечный цикл, используя логические операторы, которые мы изучили в прошлом уроке. Попробуйте написать такой цикл. Не используйте pass!
2. Напишите цикл с for, где выводится слово по буквам

К сожалению, следующий урок выйдет не скоро, т.к. я буду занят :'(. Но ждите и осваивайте текущий материал!

P.S. Зачем я сделал такое "нелогичное" изучение материал? На самом деле я просто хочу, чтобы старый материал не забывался, а изучение новых возможностей и применение их со старыми помогут в этом.

Прочитайте урок на Дафтере: http://dafter.ru/duf/python/53.html. Подсветка кода там лучше :)
« Последнее редактирование: 13 Июля 2013, 17:29:06 от Grigory Smirnov »

fly-R

  • Гость
Re: Уроки по Python, часть 3, циклы (важно!)
« Ответ #1 : 14 Июля 2013, 09:55:19 »
ну вот, еще толком с ветвлениями не разобрались, уже циклы
прям лавина уроков, такими темпами все через неделю станут крутыми програмерами :)

спасибо, все выучил (=

(Нажмите, чтобы показать/скрыть)
« Последнее редактирование: 14 Июля 2013, 12:00:36 от док. Штопор »

Оффлайн Grigory Smirnov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1339
  • Дайте мне исходники, и я переверну Землю.
    • Просмотр профиля
    • Дафтер
Re: Уроки по Python, часть 3, циклы (важно!)
« Ответ #2 : 15 Июля 2013, 23:22:46 »
док. Штопор, к сожалению, сейчас не смогу посмотреть вложение, т.к. не дома. Но скоро обязательно посмотрю :) С первого раза даже не разобрался в задачке, но потом понял. А вы за сколько ее решили?
P.S. Вы мой постоянный читатель, спасибо!

fly-R

  • Гость
Re: Уроки по Python, часть 3, циклы (важно!)
« Ответ #3 : 15 Июля 2013, 23:57:58 »
док. Штопор, к сожалению, сейчас не смогу посмотреть вложение, т.к. не дома. Но скоро обязательно посмотрю :) С первого раза даже не разобрался в задачке, но потом понял. А вы за сколько ее решили?
P.S. Вы мой постоянный читатель, спасибо!
Задачка интересная, кстати! Мы толпой решали на втором курсе - нашли в инете и разнесли по общаге, никто так и не решил толком, бегали с исписанными тетрадями - доказывали друг-другу что вот так правильнее будет, только все не то - решение уже объяснял препод по информатике, классный мужик - в предмете разбирался по-лучше многих программеров, спрашивается что делал в институте, мог неплохие деньги зашибать даже фрилансером и со студентами всегда находил общий язык - у нас правда информатика шла зачетом, все сдали конечно, ну а у тех у кого экзамен был - кричали что препод четкий... вообщем, разложил он все по-пальцам, так что решение не мое, просто запомнилось, а на питоне уже сам кое-как нацарапал, может быть даже не правильно =)

Оффлайн Grigory Smirnov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1339
  • Дайте мне исходники, и я переверну Землю.
    • Просмотр профиля
    • Дафтер
Re: Уроки по Python, часть 3, циклы (важно!)
« Ответ #4 : 16 Июля 2013, 22:29:57 »
док. Штопор, пожалуйста, скопируйте код и отправьте мне в ЛС. Уж очень интересно.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Уроки по Python, часть 3, циклы (важно!)
« Ответ #5 : 17 Июля 2013, 05:24:02 »
while переменная условие вторая_переменная:
    действие_пока_цикл_правдив

Что за ересь? должно быть
while условие:
    действия

У тебя у самого написано i < 8. Или ты константу 8 записал в переменные?
А сложных условий быть не может?

И > это не условие! А оператор сравнения.

Что значит пока цикл правдив?
Ёханый бабай, терминология жжот напалмом просто.
Там тело цикла нахоится. И это тело раз за разом выполняется по условие выполняется (истинно). Этот самый "раз" называется итерацией.

Горшочек, не вари лучше.
Твоим падаванам же потом мозг обратно не вправишь.

fly-R

  • Гость
Re: Уроки по Python, часть 3, циклы (важно!)
« Ответ #6 : 17 Июля 2013, 09:56:34 »
Yurror, да нафига вот этот прогруз терминологией, ее и так валом в учебниках, главное что все кратко, понятно и без лишних заумных програмерских словечек. до меня например, так лучше доходит)

Оффлайн Grigory Smirnov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1339
  • Дайте мне исходники, и я переверну Землю.
    • Просмотр профиля
    • Дафтер
Re: Уроки по Python, часть 3, циклы (важно!)
« Ответ #7 : 17 Июля 2013, 21:32:58 »
Yurror, когда я написал 8 я не говорил, что это переменная. Ведь может быть:
while b < c:
    print('')
Думаю, в этом случае человек сам додумается, какие условия ему делать.

А я говорил, что < условие? Я имел ввиду все выражение есть условие. А для новичков так понятней.

Ну тело, думаю, так как я написал, тоже понятно. Хотя про него добавлю. А про истинно не понял, как я раньше думал, истина=правда, то есть это синонимы. Так какая разница??

Про итерацию действительно лучше добавить, но опять же, "раз" понятней.

Спасибо за замечания, буду держать грань между профессиональными понятиями и простым языком.

Оффлайн peregrine

  • FSM
  • СуперМодератор
  • Старожил
  • *
  • Сообщений: 7211
  • Gentoo x64 Ubuntu 16.04.1 x64
    • Просмотр профиля
Re: Уроки по Python, часть 3, циклы (важно!)
« Ответ #8 : 17 Июля 2013, 21:39:22 »
док. Штопор, перегруз терминологией необходим, иначе эти люди (не знающие терминологию) будут нести какую-то ахинею и не смогут понять, когда у них будут проблемы и им на форуме напишут что делать терминологией.
Grigory Smirnov, терминологии чуть побольше не помешает. Предлагаю урок 0, где объясняется терминология.

Оффлайн Grigory Smirnov

  • Автор темы
  • Старожил
  • *
  • Сообщений: 1339
  • Дайте мне исходники, и я переверну Землю.
    • Просмотр профиля
    • Дафтер
Re: Уроки по Python, часть 3, циклы (важно!)
« Ответ #9 : 17 Июля 2013, 23:11:27 »
peregrine, согласен, нужно давать больше терминов. Думаю, сделаю справку по ним.

Оффлайн Yurror

  • Старожил
  • *
  • Сообщений: 1966
    • Просмотр профиля
Re: Уроки по Python, часть 3, циклы (важно!)
« Ответ #10 : 22 Июля 2013, 09:07:41 »
док. Штопор,
ты же вроде как сдулся? или еще борешься?

fly-R

  • Гость
Re: Уроки по Python, часть 3, циклы (важно!)
« Ответ #11 : 22 Июля 2013, 09:27:30 »
док. Штопор,
ты же вроде как сдулся? или еще борешься?
=)
да я теперь больше за баш скрипты, так и че?

Оффлайн Freezeman

  • Активист
  • *
  • Сообщений: 637
  • Xubuntu 14.04.2 LTS :: SSD Kingston HyperX Fury
    • Просмотр профиля
Re: Уроки по Python, часть 3, циклы (важно!)
« Ответ #12 : 22 Июля 2013, 11:02:11 »
док. Штопор,
Про DEADBEEF
(Нажмите, чтобы показать/скрыть)

Пользователь решил продолжить мысль 22 Июля 2013, 11:08:13:
Не могу догнать, а что значит "умирает в течение (не «через»!) 24 часов"?
« Последнее редактирование: 22 Июля 2013, 11:08:13 от Freezeman »

fly-R

  • Гость
Re: Уроки по Python, часть 3, циклы (важно!)
« Ответ #13 : 22 Июля 2013, 11:41:27 »
док. Штопор,
Про DEADBEEF
аналогия была более простая, deadbeef - мертвое мясо
Цитировать
Не могу догнать, а что значит "умирает в течение (не «через»!) 24 часов"?
кот шредингера, пока не пройдут сутки - не узнаешь точно выпил он яд или нет
может умереть в любой момент интервала времени [0..24] часов с момента принятия, либо сразу либо через 24 часа
условие так себе, не я составлял - взял готовое на какомто сайте
« Последнее редактирование: 22 Июля 2013, 11:47:45 от док. Штопор »

Оффлайн Freezeman

  • Активист
  • *
  • Сообщений: 637
  • Xubuntu 14.04.2 LTS :: SSD Kingston HyperX Fury
    • Просмотр профиля
Re: Уроки по Python, часть 3, циклы (важно!)
« Ответ #14 : 22 Июля 2013, 14:06:15 »
Не могу догнать, а что значит "умирает в течение (не «через»!) 24 часов"?
кот шредингера, пока не пройдут сутки - не узнаешь точно выпил он яд или нет
может умереть в любой момент интервала времени [0..24] часов с момента принятия, либо сразу либо через 24 часа
условие так себе, не я составлял - взял готовое на какомто сайте
[/quote]
У вас в программе "возможно уже мертвые" продолжают пить из бочек. Хотя на результат это вроде не влияет :)

 

Страница сгенерирована за 0.098 секунд. Запросов: 25.