Изучение языка программирования Python



Pdf көрінісі
бет12/14
Дата04.03.2023
өлшемі1,23 Mb.
#171016
1   ...   6   7   8   9   10   11   12   13   14
Байланысты:
python

Работа с файлами 
Каждый раз вводить данные заново – не самый лучший способ. Если 
нужно сохранить данные на долгий срок, используются файлы. 
Чтобы можно было сохранять или загружать файлы в программе, 
подключим модуль 
pickle
. Для этого впишем «
import pickle
» в начало 
программного кода. 
В коде программы, где объявлялись функции поиска, удаления записей 
книг, добавим функции 
saveArray
(сохранения) и 
loadArray
(загрузки) 
файла.
Предусмотрим, что файла может не оказаться. В таком случае программа 
создаст собственный пустой текстовый файл с названием 
test.txt

def saveArray(fname, store): 
with open(fname, "wb") as fout: 
for obj in store: 
#встроенная функция записи в подключенном модуле 
pickle.dump(obj, fout) 
def loadArray(fname, store): 
try: 
with open(fname, "rb") as fin: 
while True: 
try: 
#встроенная функция загрузки в подключенном модуле
a = pickle.load(fin) 
store.append(a) 
except EOFError: 


26
return store 
#На случай, если файла нет, создадим собственный документ с 
названием test.txt 
except FileNotFoundError: 
return [] 
store = [] 
#Загрузка файла 
loadArray("test.txt", store)

Типовые алгоритмы. (Учебник §19) 
1.
 
Поиск в отсортированной последовательности: 
left = 0 
right = len(a) - 1 
k = right // 2 
while (a[k] != b) and (left < right): 
if (a[k] < b): 
left = k + 1 
else: 
right = k - 1 
k = (right + left) // 2 
print (k)
2.
 
Сортировка пузырьком 
k = 1
while k < len(a): 
for i in range(len(a)-k): 
if (a[i] > a[i+1]): 
b = a[i] 
a[i] = a[i+1] 
a[i+1] = b 
k = k + 1 
print (a)
Улучшим алгоритм с помощью отсутствия перестановок: 
k = 1 
while k: 
k = 0 
for i in range(len(a)-1): 
if a[i] > a[i + 1]: 
b = a[i] 
a[i] = a[i + 1] 
a[i + 1] = b 
k = i 
lim = k - 1 
print(a) 


27


Достарыңызбен бөлісу:
1   ...   6   7   8   9   10   11   12   13   14




©engime.org 2024
әкімшілігінің қараңыз

    Басты бет