Архив метки: Программирование

Настройка NGINX. Вывод переменных

Одной из самых непостижимых областей для меня остаётся nginx. Точнее его настройка/программирование. Но жизнь вынуждает изучить этот инструмент, который значительно снижает нагрузку на сервер. Читать

Программирование на Go

Несмотря на то что Go — это еще очень молодой язык, он уже используется во многих очень важных системах интернета и его область применения будет расти. Поэтому изучение программирования на Go — это одна из лучших инвестиций для программиста на данный момент. В этой статье мы сделаем небольшое введение в программирование на Go. Читать

Программирование под Linux

Все действия в операционной системе выполняются с помощью программ, поэтому многим новичкам интересно не только использовать чужие программы, а писать свои. Многие хотят внести свой вклад в кодовую базу OpenSource. Читать

Как создать Snap пакет Ubuntu 16.04

Технология Snap разработанная в Canonical для облегчения установки программного обеспечения в дистрибутиве Ubuntu появилась совсем недавно. Она разрабатывалась на протяжении последних нескольких лет, но только к релизу Ubuntu 16.04 стала более-менее готова к использованию широкой аудиторией. Читать

Майкл Доусон — Программируем на Python, ответы на 5-ую главу…

Задача №1

  1. # coding=utf-8
  2. # Создайте программу, которая будет выводить список слов в случайном порядке.
  3. # На экране должны печататься без повторений все слова из представленного списка.
  4. import random
  5. print(«Введите 4 слова для демонстрации программы:»)
  6. a = input(«Первое слово: n«)
  7. b = input(«Второе слово: n«)
  8. c = input(«Третье слово: n«)
  9. d = input(«Четвертое слово: n«)
  10. WORDS = [a, b, c, d]
  11. print(«nИзначальный список:n«, WORDS)
  12. # Эта функция не упоминалась в главе, но чтобы не писать лишнего, лучше заменим строчки этим:
  13. random.shuffle(WORDS)
  14. print(«nСписок в случайном порядке:n«, WORDS)
  15. input(«nНажмите Enter, чтобы выйти…»)

Задача №2

  1. «»» coding=utf-8
  2. Напишите программу «Генератор персонажей» для ролевой игры.
  3. Пользователю должно быть предоставлено 30 пунктов,которые можно
  4. распределить между четырями характеристиками: Сила, Здоровье,
  5. Мудрость и Ловкость. Надо сдлать так, чтобы пользователь мог
  6. не только брать эти пункты из общего»пула», но и возвращать их туда из
  7. характеристик, которым он решит присвоить другие значения.»»»
  8. «»» Также, хоть это и не требуется в задании, мы будем требовать
  9. от игрока, чтобы он улаживался в отведенные 30 очков и использовал их все.
  10. Также, только после окончания задания заметил, что 5 глава была
  11. про списки и словари, соответственно, автором, скорей всего,
  12. подразумевалось, что здесь должны использоваться словари.
  13. Переделывать или писать вторую версию с использованием словаря
  14. не буду, так как считаю, что алгоритм решения ясен.Даже будет короче.
  15. А в следующей главе изучите функции и попробуйте сделать это задание,
  16. сипользуя функции. И вы удивитесь, насколько сократится код.
  17. Но, следуя согласно книге, подразумевается, что мы пока не знаем о них.»»»
  18. # Объяснение условий игроку.
  19. print(«»»Вам будут представлены изначальные характеристики героя: Сила, Здоровье, Мудрость и Ловкость.
  20. Вам нужно будет, как в ролевой игре, распределить 30 очков между навыками»»»)
  21. # Объявляем переменные.
  22. strength = 0
  23. health = 0
  24. wisdom = 0
  25. agility = 0
  26. choice = None

    </li >

  27. global_choice = None
  28. while global_choice != 0:
  29. # Вывод актуальной таблицы после действия.
  30. ost_points = (30 — strength — health — wisdom — agility)
  31. print(«Таблица характеристик на данный момент: n«
  32. «ttt1. Сила:», strength, «n«
  33. «ttt2. Здоровье:», health, «n«
  34. «ttt3. Мудрость:», wisdom, «n«
  35. «ttt4. Ловкость:», agility, «nn«
  36. «tttСвободное количество очков:», ost_points, «n«)
  37. # Первый выбор
  38. print(«Что вы хотите сделать сейчас?n«
  39. «ttt1. Добавить очки в одну из характеристик.n«
  40. «ttt2. Убрать очки из характеристики.n«
  41. «ttt3. Закончить распределиние очков.n«)
  42. global_choice = int(input())
  43. if global_choice == 1:
  44. print(«В какую из характеристик вы хотите добавить очки?n«
  45. «ttt1. Сила.n«
  46. «ttt2. Здоровье.n«
  47. «ttt3. Мудрость.n«
  48. «ttt4. Ловкость.n«)
  49. choice = int(input())
  50. if choice == 1:
  51. print(«Сколько очков вы хотите добавить?n«)
  52. scores = int(input())
  53. if scores >= 0 and scores <= ost_points:
  54. strength += scores
  55. else:
  56. print(«Недопустимое количество очков.n«)
  57. elif choice == 2:
  58. print(«Сколько очков вы хотите добавить?n«)
  59. scores = int(input())
  60. if scores >= 0 and scores <= ost_points:
  61. health += scores
  62. else:
  63. print(«Недопустимое количество очков.n«)
  64. elif choice == 3:
  65. print(«Сколько очков вы хотите добавить?n«)
  66. scores = int(input())
  67. if scores >= 0 and scores <= ost_points:
  68. wisdom += scores
  69. else:
  70. print(«Недопустимое количество очков.n«)
  71. elif choice == 4:
  72. print(«Сколько очков вы хотите добавить?n«)
  73. scores = int(input())
  74. if scores >= 0 and scores <= ost_points:
  75. agility += scores
  76. else:
  77. print(«Недопустимое количество очков.n«)
  78. # Второй выбор
  79. elif global_choice == 2:
  80. print(«Из какой характеристики вы хотите убрать очки?n«
  81. «ttt1. Сила.n«
  82. «ttt2. Здоровье.n«
  83. «ttt3. Мудрость.n«
  84. «ttt4. Ловкость.n«)
  85. choice = int(input())
  86. if choice == 1:
  87. print(«Сколько очков вы хотите убрать?n«)
  88. scores = int(input())
  89. if scores >= 0 and (strength — scores) >= 0:
  90. strength —= scores
  91. else:
  92. print(«Недопустимое количество очков.n«)
  93. elif choice == 2:
  94. print(«Сколько очков вы хотите убрать?n«)
  95. scores = int(input())
  96. if scores >= 0 and (health — scores) >= 0:
  97. health —= scores
  98. else:
  99. print(«Недопустимое количество очков.n«)
  100. elif choice == 3:
  101. print(«Сколько очков вы хотите убрать?n«)
  102. scores = int(input())
  103. if scores >= 0 and (wisdom — scores) >= 0:
  104. wisdom —= scores
  105. else:
  106. print(«Недопустимое количество очков.n«)
  107. elif choice == 4:
  108. print(«Сколько очков вы хотите убрать?n«)
  109. scores = int(input())
  110. if scores >= 0 and (agility — scores) >= 0:
  111. agility —= scores
  112. else:
  113. print(«Недопустимое количество очков.n«)
  114. # Третий выбор. Проверяем, все ли очки использованы.
  115. elif global_choice == 3:
  116. if ost_points == 0:
  117. break
  118. else:
  119. print(«Используйте все очки, данные вам!n«)
  120. print(«Ваш герой готов! Таблица его характеристик выглядит так: n«
  121. «ttt1. Сила:», strength, «n«
  122. «ttt2. Здоровье:», health, «n«
  123. «ttt3. Мудрость:», wisdom, «n«
  124. «ttt4. Ловкость:», agility, «n«)
  125. input(«nНажмите Enter, чтобы выйти…»)

Задача №3

  1. # coding=utf-8
  2. «»»
  3. Напишите программу «Кто твой папа?», в которой пользователь будет
  4. вводить имя человека, а программа — называть отца этого человека.
  5. Чтобы стало интересней, можно «научить» программу родственным
  6. отношениям среди литературных персонажей, исторических персонажей,
  7. исторических лиц и современных знаменитостей.
  8. Предоставьте пользователю возможность добавлять,
  9. заменять и удалять пары «сын-отец».»»»
  10. MENU = («»»
  11. 1 — Поиск отца человека по имени
  12. 2 — Изменение данных
  13. 3 — Удаление данных
  14. 4 — Добавить новые данные
  15. 5 — Выход
  16. «»»)
  17. family = {«Остап Бендер»: «Турецкоподанный»,
  18. «Люк Скайуокер»: «Дарт Вейдер»,
  19. «Солид Снейк»: «Биг Босс»}
  20. choice = None
  21. son = «»
  22. father = «»
  23. while choice != 5:
  24. print(MENU)
  25. choice = int(input(«Выберите пункт меню:»))
  26. # Поиск отца человека по имени.
  27. if choice == 1:
  28. son = input(«Введите имя человека: «)
  29. if son in family:
  30. print(«nРодителем человека по имени», son, «является», family[son])
  31. else:
  32. print(«Ошибка, такого человека нет в базе данных»)
  33. # Изменение данных.
  34. elif choice == 2:
  35. son = input(«Введите имя человека: «)
  36. if son in family:
  37. father = str(input(«Введите новое имя его отца: «))
  38. family[son] = father
  39. print(«nРодителем человека по имени», son, «является», family[son])
  40. else:
  41. print(«Ошибка, такого человека нет в базе данных»)
  42. # Удаление данных.
  43. elif choice == 3:
  44. son = input(«Введите имя человека: «)
  45. if son in family:
  46. del family[son]
  47. print(«nЗапись удалена»)
  48. else:
  49. print(«Ошибка, такого человека нет в базе данных»)
  50. # Добавить новые данные.
  51. elif choice == 4:
  52. son = input(«Введите имя человека: «)
  53. if son in family:
  54. print(«nТакая запись уже существует»)
  55. else:
  56. father = str(input(«Введите имя родителя: «))
  57. family[son] = father
  58. print(«Добавлено в базу данных»)
  59. # Выход.
  60. elif choice == 5:
  61. print(«До свиданья!»)

Задача №4

  1. # coding=utf-8
  2. «»»
  3. Доработайте программу «Кто твой папа? так, чтобы можно было,
  4. введя имя человека, узнать, кто его дед. Программа должна
  5. по-прежнему пользоваться словарем с парами «сын-отец».
  6. Подумайте, как включить в этот словарь несколько
  7. поколений. «»»
  8. MENU = («»»
  9. 1 — Поиск деда человека по имени
  10. 2 — Изменение данных
  11. 3 — Удаление данных
  12. 4 — Добавить новые данные
  13. 5 — Выход
  14. «»»)
  15. family = {«Остап Бендер»: {«Турецкоподанный»: «Отец турецкоподанного»},
  16. «Люк Скайуокер»: «Дарт Вейдер»,
  17. «Солид Снейк»: «Биг Босс»}
  18. choice = None
  19. son = «»
  20. father = «»
  21. while choice != 5:
  22. print(MENU)
  23. choice = int(input(«Выберите пункт меню:»))
  24. # Поиск от ца человека по имени.
  25. if choice == 1:
  26. son = input(«Введите имя человека: «)
  27. if son in family:
  28. print(«nРодителем человека по имени», son, «является», family[son[0]], «а его дедом», family[son[1]])
  29. else:
  30. print(«Ошибка, такого человека нет в базе данных»)
  31. # Изменение данных.
  32. elif choice == 2:
  33. son = input(«Введите имя человека: «)
  34. if son in family:
  35. father = str(input(«Введите новое имя его отца: «))
  36. family[son] = father
  37. print(«nРодителем человека по имени», son, «является», family[son])
  38. else:
  39. print(«Ошибка, такого человека нет в базе данных»)
  40. # Удаление данных.
  41. elif choice == 3:
  42. son = input(«Введите имя человека: «)
  43. if son in family:</ div>
  44. del family[son]
  45. print(«nЗапись удалена»)
  46. else:
  47. print(«Ошибка, такого человека нет в базе данных»)
  48. # Добавить новые данные.
  49. elif choice == 4:
  50. son = input(«Введите имя человека: «)
  51. if son in family:
  52. print(«nТакая запись уже существует»)
  53. else:
  54. father = str(input(«Введите имя родителя: «))
  55. family[son] = father
  56. print(«Добавлено в базу данных»)
  57. # Выход.
  58. elif choice == 5:
  59. print(«До свиданья!»)

Автор: Alek Azimov

Майкл Доусон — Программируем на Python, ответы на 4-ую главу…

Майкл Доусон — Программируем на Python.

Ответы на 4-ую главу.

Задание №1

# coding=utf-8
# Программа считает числа из заданного интервала, значения которых задает пользоваетель.

itog = int(«0»)
first = int(input(«Введите начальное значение: «))
last = int(input(«Введите последнее значение: «))
interval = int(input(«Введите интервал между 
целыми  числами: «
))
last += 1
for i in range(first, last, interval):
    itog += i
print(«Сумма введеных вами чисел: «, itog)
input(«nnВведите Enter, чтобы выйти…»)

Задание №2

# coding=utf-8
# Программа, которая принимает текст
 пользовательского ввода и печатает его наоборот

message = str(input(«Введите любой текст и вы
 получите его наоборот: «
))
new_message = «»
for i in message[::-1]:
    new_message += i
print(«А вот ваш новый текст:», new_message)
input(«nnНажмите Enter, чтобы выйти из программы…»)

Задание №3

  1. # coding=utf-8
  2. import random
  3.  
  4. # Создадим последовательность слов, из которых компьютер будет выбирать
  5. WORDS = («питон»,
  6.          «анаграмма»,
  7.          «простая»,
  8.          «сложная»,
  9.          «ответ»,
  10.          «подстаканник»)
  11.  
  12. # случайным образом выбираем из последовательности одно слово
  13. word = random.choice(WORDS)
  14.  
  15. # Создадим переменную, с которой будет сопоставлена версия игрока
  16. correct = word
  17.  
  18. # Создаем переменную и подсказку, которая будет появляться при запросе игрока «Не знаю»
  19. i_dont_know = «Не знаю»
  20. podskazka = word[0] + word[1] + word[2]
  21.  
  22. # создаем анаграмму выбранного слова, в которой буквы будут расставлены хаотично
  23. jumble = «»
  24. while word:
  25.     position = random.randrange(len(word))
  26.     jumble += word[position]
  27.     word = word[:position] + word[(position + 1):]
  28.  
  29. # Создаем очки для игроков. Те, кто не использовал подсказку, получают больше.
  30. scores = 10
  31.  
  32. # Начало игры
  33. print(
  34.     «»»
  35.                                      Добро пожаловать в игру 'Анаграммы'!
  36.                         Надо переставить буквы так, чтобы получилось осмысленное слово.
  37.                                
    Если вам нужна подсказка введите: «Не знаю».
  38.            Но учтите, если вы не будете использовать подсказку, кол-во заработанных очков будет больше.
  39.                             (Для выхода нажмите Enter, не вводя своей версии.)
  40.     «»»
  41. )
  42. print(«Вот анаграмма: «, jumble)
  43. guess = input(«nПопробуйте отгадать исходное слово: «)
  44. while guess != «» and guess != correct:
  45.     if guess != correct and not guess == i_dont_know:
  46.         print(«К сожалению, вы неправы.»)
  47.     if guess == i_dont_know:
  48.         scores —= 5
  49.         print(«nПодсказка! Первые три буквы слова!», podskazka)
  50.     guess = input(«Попробуйте отгадать исходное слово: «)
  51.     if guess == correct:
  52.         print(«Да, именно так! Вы отгадали!n«)
  53.  
  54. # Если игрок слишком часто использовал подсказку (что странно, ведь она одна и та же), избегаем отрицательного значения
  55. # приводя к нулю
  56. if scores < 0:
  57.     scores = 0
  58. print(«Спасибо за игру! У вас», scores, «очков!»)
  59. input(«nnНажмите Enter, чтобы выйти…»)

Задание №4

  1. # coding=utf-8
  2. import random
  3. # Создадим последовательность слов, из которых компьютер будет выбирать
  4. WORDS = («питон»,
  5.          «анаграмма»,
  6.          «простая»,
  7.          «сложная»,
  8.          «ответ»,
  9.          «подстаканник»)
  10.  
  11. # случайным образом выбираем из последовательности одно слово
  12. word = random.choice(WORDS)
  13.  
  14. print(«ttЗдравствуй игрок!»)
  15. print(«Попробуй угадать с пяти попыток слово, которое загадал компьютер.»)
  16. print(«Ты можешь спрашивать, есть ли определенная буква в слове. А потом скажешь слово.»)
  17. print(«Итак, поехали!»)
  18. print(«nКоличество букв в слове:», len(word))
  19.  
  20. # Цикл отгадывания букв
  21. tries = 5
  22. letter = ()
  23. while tries >= 1:
  24.     letter = str(input(«В загаданном слове есть буква: «))
  25.     if letter not in word:
  26.         tries —= 1
  27.         print(«nВы ошиблись, такой буквы нет в слове!»)
  28.         print(» У вас осталось», tries, «попыток(ки)!»)
  29.     if letter in word:
  30.         tries —= 1
  31.         print(«nВы угадали, эта буква есть в слове!»)
  32.         print(«У вас осталось», tries, «попыток(ки)!»)
  33.  
  34. # Вторая часть отгадывания.
  35. i_dont_know = «Не знаю»
  36. print(«nВаши 5 попыток закончились, вы готовы угадать слово?»)
  37. print(«Если вы сдались и не хотите продолжать, напишите 'Не знаю'.»)
  38. correct = (input(«nЭто слово: «))
  39.  
  40. while correct != word:
  41.     print(«Попробуйте еще раз!»)
  42.     correct = (input(«nЭто слово: «))
  43.     if correct == word:
  44.         print(«nПоздравляю! Вы выиграли!»)
  45.     if correct == i_dont_know:
  46.         print(«nОчень жаль!»)
  47.         break
  48.  
  49. input(«nНажмите Enter, чтобы выйти…»)

Автор: Alek Azimov