Различия между версиями 5 и 6
Версия 5 от 2012-11-19 15:34:39
Размер: 3277
Редактор: FrBrGeorge
Комментарий:
Версия 6 от 2012-11-19 15:38:28
Размер: 3602
Редактор: FrBrGeorge
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 40: Строка 40:
   * ''А вот так мы будем уметь делать к концу учебного года:'' >:>
   {{{#!python
N,S = input()
def su(n,s):
    for i in xrange(max(0,2-n,s-(n-1)*9),min(9,s)+1):
        for a in n>1 and su(n-1,s-i) or [s-i]:
            yield i+a*10
for num in su(N,S):
    print num
}}}

Списки. Строковые методы (продолжение)

  • Списки, операции над ними
  • Списки как изменяемые типы данных:
    • Изменение элемента и секции
    • Имена объектов и счётчики ссылок
    • Мелкое копирование вида a[:] и глубокое копирование

    • Методы sort(),pop()/append(), count()

  • Строковые методы split() и join()

  • Другие полезные строковые методы: [r]find(), is…(), replace()

Домашнее задание

  1. {i} Прочитать про списки в учебнике

  2. Зайти на Online python tutor и пошагово посмотреть такую программу (обращаем внимание на то, как устроены ссылки на объекты):

       1 a = ["qwe", 42, [1.23, 4.56], "", 5]
       2 b = a
       3 c = a[:]
       4 print a is b, a == b, a is c, a == c
       5 print "a={0}\nb={1}\nc={2}\n".format(a, b, c)
       6 a[1]="TEST"
       7 print "a={0}\nb={1}\nc={2}\n".format(a, b, c)
       8 a[2][0]="FIX"
       9 print "a={0}\nb={1}\nc={2}\n".format(a, b, c)
    
  3. Ввести список натуральных чисел и отсортировать их по возрастающей (вручную :) )

  4. Ввести отсортированный список чисел и ещё одно число; проверить, содержится ли это число в списке (вручную :) )

    • функции input() можно скармливать что-то вроде range(1,100,3) — будет работать

    • Как можно воспользоваться свойством упорядоченности списка, чтобы уменьшить количество проверок?
  5. Отсортировать слова в строке (не вручную ;) )

  6. <!> (ВМК) Ввести последовательность цифр (чисел от 0 до 9), и вывести её в отсортированном виде

    • Что если последовательность очень длинная?

  7. <!> (Брудно, Каплан) Ввести N и число, вывести все N-значные числа, сумма цифр которых равна заданному числу.

    • Для упражнения решить сначала при N==4
    • Должно приемлемо работать в ситуациях, когда ответ не очень длинный, например для 7, 20

    • А вот так мы будем уметь делать к концу учебного года: >:>

         1 N,S = input()
         2 def su(n,s):
         3     for i in xrange(max(0,2-n,s-(n-1)*9),min(9,s)+1):
         4         for a in n>1 and su(n-1,s-i) or [s-i]:
         5             yield i+a*10
         6 for num in su(N,S):
         7     print num
      

Условные обозначения

  • {o} — тема по Linux

  • <!> ­— необязательная тема

  • {i} — теоретическое задание

  • {*} — тема для самостоятельного изучения


CategoryClass CategoryVmsh

LecturesVMSH/Python/2012-11-16 (последним исправлял пользователь FrBrGeorge 2013-01-19 16:08:11)