Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #! /usr/bin/env python3
- # Задачи на оптимизацию кода.
- # Исходная версия программы (задача -- определить индекс числа,
- # являющегося двойкой, возведенной в степень, показатель которой
- # хранится в переменной X):
- L = [1, 2, 4, 8, 16, 32, 64]
- X = 5
- found = False
- i = 0
- while not found and i < len(L):
- if 2 ** X == L[i]:
- found = 1
- else:
- i = i + 1
- if found:
- print("It's at index", i)
- else:
- print(X, "not found.")
- # Задачи на оптимизацию.
- # Задача №1: оптимизировать вычисление степени
- L = [1, 2, 4, 8, 16, 32, 64]
- X = 5
- P = 2 ** X
- i = 0
- while i < len(L):
- if P == L[i]:
- print("It's at index", i)
- break
- else:
- i = i + 1
- else:
- print(X, "not found.")
- # Задача №2: избавиться от литерала списка
- L = [2 ** i for i in range(7)]
- X = 5
- found = False
- i = 0
- while not found and i < len(L):
- if 2 ** X == L[i]:
- found = 1
- else:
- i = i + 1
- if found:
- print("It's at index", i)
- else:
- print(X, "not found.")
- # Задача №3: избавиться от флага found.
- L = [1, 2, 4, 8, 16, 32, 64]
- X = 5
- i = 0
- while i < len(L):
- if 2 ** X == L[i]:
- print("It's at index", i)
- break
- else:
- i = i + 1
- else:
- print(X, "not found.")
- # Задача №4: решить при помощи цикла for.
- L = [1, 2, 4, 8, 16, 32, 64]
- X = 5
- i = 0
- for i in L:
- if 2 ** X == i:
- print("It's at index", L.index(i))
- break
- else:
- print(X, "not found.")
- # Задача №5: решить без циклов.
- # Решение №1:
- L = [1, 2, 4, 8, 16, 32, 64]
- X = 5
- if (2 ** X) in L:
- print("It's at index", L.index(2 ** X))
- else:
- print(X, "not found.")
- # Решение №2
- L = [1, 2, 4, 8, 16, 32, 64]
- X = 5
- try:
- print("It's at index", L.index(2 ** X))
- except:
- print(X, "not found.")
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement