Условные операторы и циклы

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

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

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

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

  • {*} — новая тема

  1. Прочитать в учебнике Первые шаги к программированию и Дополнительные средства управления порядком выполнения

  2. Сгенерировать список кубов натуральных чисел в диапазоне от 1 до 10
    •  [i*i*i for i in xrange(10)] 

  3. Сгенерировать список списков вида

      1 2 3 4  
      1 2 3 4
      1 2 3 4 

    а затем транспонировать его, т. е. привести в вид

      1 1 1
      2 2 2
      3 3 3
      4 4 4 
    Решение:
       1 Table=[range(1,5) for i in xrange(3)]
       2 TTable=[[Table[i][j] for i in xrange(len(Table))] for j in xrange(len(Table[0]))]
    

    Вопрос: почему неправильно range(1,5)*4?

  4. Сгенерировать список списков вида

      1  2  3  4
      5  6  7  8
      9 10 11 12 
    и проверить, правильно ли работает транспонирование из предыдущего примера :)
       1   Table=[range(i*5+1, (i+1)*5+1) for i in xrange(3)] 
    
  5. Сгенерировать список строк размера N✕N вида

      *....
      .*...
      ..*..
      ...*.
      ....* 
    и вывести как показано в примере (без кавычек и запятых)
       1   N=10
       2   Diag=["."*i+"*"+"."*(N-i-1) for i in xrange(N)]
       3   for s in Diag:
       4       print s
    
  6. Упорядочить числа в строке вида "число1/число2/число3/..."

       1 s="2/5/2/78/2/76/2/76/1/6/23/76/7"
       2 L=[int(c) for c in s.split("/")]
       3 L.sort()
       4 r="/".join([str(n) for n in L]) 
    
  7. Найти второй максимум среди элементов списка
    • M2 ∈ списку L:
    • M2 == L[0], если L[i]==L[k] ∀ i,k, т. е. все элементы списка L равны
    • L[i] ⩽ M2 < M ∀ i: L[i]<M, где M=max(L), т. е. M2 не меньше любого элемента списка, кроме максимума

       1 M=M2=Arr[0]
       2 for e in Arr:
       3     if e>M:
       4         M2,M=M,e
       5     elif e<M:
       6         if e>M2 or M == M2:
       7             M2=e 
    


CategoryClass CategoryVmsh

LecturesVMSH/2010-10-27 (last edited 2015-06-07 21:35:45 by FrBrGeorge)