Програмирование на языке питон. Какие характеристики можно отнести к языку программирования Python
Скачать 0.54 Mb.
|
Номер 3 Укажите результат выполнения скрипта: try: print ([].popitem()) except AttributeError: print ('Неправильный атрибут') except: print ('Ошибка!') else: print ('Отрицание') Ответ: (1) Неправильный атрибут (2) Ошибка! (3) Неправильный атрибут,Отрицание (4) Ошибка!,Отрицание (5) скрипт не будет выполнен, т.к. код содержит ошибки Номер 4 Укажите результат выполнения скрипта: try: x=1/0 except ZeroDivisionError: print ('Деление на ноль') finally: print ('Выход из программы') Ответ: (1) Деление на ноль (2) Выход из программы (3) Деление на ноль,Выход из программы (4) скрипт не будет выполнен, т.к. код содержит ошибки Номер 5 Укажите результат выполнения скрипта: try: y=x.pop() except AttributeError: print ('Неправильный атрибут') except NameError: print ('Неправильное имя') finally: print ('Выход из программы') Ответ: (1) Неправильный атрибут (2) Неправильное имя (3) Неправильный атрибут,Выход из программы (4) Неправильное имя ,Выход из программы (5) скрипт не будет выполнен, т.к. код содержит ошибки Номер 6 Укажите результат выполнения скрипта: try: x=[].pop() except: print ('Ошибка!') else: print ('Отрицание') finally: print ('Выход из программы') Ответ: (1) Ошибка! (2) Отрицание (3) Ошибка!,Выход из программы (4) Отрицание,Выход из программы (5) скрипт не будет выполнен, т.к. код содержит ошибки Упражнение 37: Номер 1 В языке Python enumerate() модуля threading используется для: Ответ: (1) получения списка всех активных потоков (2) получения количества всех активных потоков (3) получения списка всех активных и завершенных потоков (4) получения количества всех активных и завершенных потоков (5) получения количества блокировок, принадлежащих потоку, вызвавшему эту функцию, на момент вызова функции Номер 2 Потоки управления(threads) имеют следующие свойства: Ответ: (1) каждый поток управления работает в отдельном процессе (2) все потоки управления работают в одном процессе (3) потоки имеют четко определенную очередность доступа к объектам (4) очередность доступа к объектам не определена и зависит от того, какой поток обратился к объекту первым (5) очередность доступа к объектам определена только по отношению главного потока ко всем остальным Номер 3 В языке Python метод join() класса Thread используется для: Ответ: (1) получения имени текущего потока (2) уменьшения количества потоков путем слияния одного с другим (3) приостановления одного потока до момента завершения другого потока (4) приостановления потока на определенное время (5) приостановления одного потока до момента завершения другого потока или же до момента истечения установленного времени Номер 4 Потоки управления(threads) имеют следующие свойства: Ответ: (1) каждый поток управления работает в отдельном процессе (2) все потоки управления работают в одном процессе (3) существует один главный поток управления (4) все потоки управления равнозначны (5) многопоточная программа завершается, когда завершают свою работу все потоки Номер 5 При обращении нескольких потоков управления(threads) к одному объекту очередность доступа к объекту: Ответ: (1) гарантирована и зависит от типа доступа потоков (чтение/запись) (2) гарантирована и зависит от приоритета потоков (3) гарантирована только очередность главного потока по отношению к остальным (главные поток получает доступ первым) (4) гарантирована только очередность главного потока по отношению к остальным (главные поток получает доступ последним) (5) не гарантирована Номер 6 Потоки управления(threads) имеют следующие свойства: Ответ: (1) существует один главный поток управления (2) существует несколько главных потоков управления (3) все потоки управления равнозначны (4) любой поток может разделяться на несколько потоков в любой момент времени (5) поток может разделяться на несколько только, если на момент разделения в программе существует только один поток управления Упражнение 38: Номер 1 Для механизма синхронизации типа блокировка (Lock, Rlock) определены следующие действия - Ответ: (1) захватить блокировку, в случае неудачи ждать ее освобождения (2) попробовать захватить блокировку, в случае неудачи продолжить работу (3) освободить блокировку (4) послать сообщение об изменении состояния блокировки определенному потоку (5) послать сообщение об изменении состояния блокировки всем потокам Номер 2 Для механизма синхронизации типа событие (Event) определены следующие действия - Ответ: (1) установить событие произошедшим (2) отменить наступление события (3) проверить состояние события (4) ожидать наступления события в течение определенного количества времени (5) послать определенному потоку сообщение о наступлении события Номер 3 Термин deadlock при синхронизации потоков обозначает - Ответ: (1) определенный вид управления доступом к критической области при помощи блокировок (2) состояние программы, когда несколько потоков не могут получить доступ к нескольким ресурсам, так как каждый уже взял блокировки на часть этих ресурсов (3) блокировку, которая никогда не меняет свое состояние в процессе исполнения программы (4) блокировку, которая берется только главным потоком управления (5) блокировку, которая имеет состояние "занята" Номер 4 Термин блокировка (Lock) обозначает - Ответ: (1) метод синхронизации потоков с помощью семафоров (2) любой семафор (3) семафор с двумя состояниями – 0 и 1 (4) синхронизацию потоков в общем смысле (5) определенный вид события Номер 5 Термин семафор(семафор Дейкстры, Semaphore) обозначает - Ответ: (1) механизм управления доступа к критической области при помощи дополнительного объекта с двумя состояниями – область свободна и область занята (2) механизм управления доступа к критической области при помощи подсчета количества потоков, имеющих доступ к области (3) механизм управления доступа к критической области при помощи рассылки сообщений определенным потокам (4) механизм управления доступом к критической области в общем смысле (5) определенный вид события Номер 6 Термин событие (Event) обозначает - Ответ: (1) механизм управления доступа к критической области при помощи дополнительного объекта с двумя состояниями – область свободна и область занята (2) механизм управления доступа к критической области при помощи подсчета количества потоков, имеющих доступ к области (3) механизм управления доступа к критической области при помощи рассылки сообщений определенным потокам (4) механизм управления доступом к критической области в общем смысле (5) метод обмена данными между потоками Упражнение 39: Номер 1 Среди приведенных ниже фрагментов укажите все варианты кода, при подстановке которого вместо знаков подчеркивания результатом станет строка 1 1 2: import threading, time res = _________ def pr(): if threading.currentThread().getName()>'t1': res.acquire() print (1) else: time.sleep(1) res.acquire() print (2) if threading.currentThread().getName()>'t1': res.release() ps=['t1','t2','t3'] for i in range(3): ps[i] = threading.Thread(target=pr, name=ps[i], args=[]) for p in ps: p.start() for p in ps: p.join() Ответ: (1) threading.Lock() (2) threading.RLock() (3) threading.Condition() (4) threading.Semaphore(2) (5) threading.Event() Номер 2 Среди приведенных ниже фрагментов укажите все варианты кода, при подстановке которого вместо знаков подчеркивания результатом станет строка 0 1 2 3 4 5: import threading, time res = ______ def pr(): if threading.currentThread().getName()=='t1': for i in range(5): res.acquire(); print (i); res.release() res.acquire() else: time.sleep(1); res.acquire(); print (5) ps=['t1','t2'] for i in range(2): ps[i] = threading.Thread(target=pr, name=ps[i], args=[]) for p in ps: p.start() for p in ps: p.join() Ответ: (1) threading.Lock() (2) threading.RLock() (3) threading.Semaphore() (4) threading.Semaphore(2) (5) threading.Condition() Номер 3 Среди приведенных ниже фрагментов укажите все варианты кода, при подстановке которого вместо знаков подчеркивания результатом станет строка t1 t2: import threading res = ________ def pr(): if threading.currentThread().getName()=='t2': res.wait() print (threading.currentThread().getName()) res.set() p1 = threading.Thread(target=pr, name='t1', args=[]) p2 = threading.Thread(target=pr, name='t2', args=[]) p1.start() p2.start() p1.join() p2.join() Ответ: (1) threading.Lock() (2) threading.RLock() (3) threading.Event() (4) threading.Condition() (5) fthreading.Semaphore() Номер 4 Среди приведенных ниже фрагментов укажите все варианты кода, при подстановке которого вместо знаков подчеркивания результатом станет строка 1 2 3 4 1 2 3 4: import threading res = ________ def pr(): res.acquire() for i in range(1,5): print (i) res.release() p1 = threading.Thread(target=pr, name='t1', args=[]) p2 = threading.Thread(target=pr, name='t2', args=[]) p1.start() p2.start() p1.join() p2.join() Ответ: (1) threading.Lock() (2) threading.Condition() (3) threading.Semaphore() (4) threading.Semaphore(0) (5) threading.Semaphore(1) Номер 5 Среди приведенных ниже фрагментов укажите все варианты кода, при подстановке которого вместо знаков подчеркивания результатом при вводе нецелого числа станет строка Thread 1 Thread 2: import threading res = threading.Lock() def pr(): if threading.currentThread().getName()=='t2': res.wait() if threading.currentThread().getName()=='t1': print ('Thread 1') res.set() else: print ('Thread 2') p1 = threading.Thread(target=pr, name='t1', args=[]) p2 = threading.Thread(target=pr, name='t2', args=[]) p1.start() p2.start() p1.join() p2.join() Ответ: (1) threading.Lock() (2) threading.Condition() (3) threading.Semaphore() (4) threading.Semaphore(2) (5) threading.Event() Номер 6 Среди приведенных ниже фрагментов укажите все варианты кода, при подстановке которого вместо знаков подчеркивания результатом при вводе нецелого числа станет строка 0 1 2 3 4 5: import threading, time res = _________ def pr(): if threading.currentThread().getName()=='t1': for i in range(5): res.acquire(); print (i) else: time.sleep(1); res.acquire(); print (5) if threading.currentThread().getName()=='t1': for i in range(5): res.release() ps=['t1','t2'] for i in range(2): ps[i] = threading.Thread(target=pr, name=ps[i], args=[]) for p in ps: p.start() for p in ps: p.join() Ответ: (1) threading.Lock() (2) threading.RLock() (3) threading.Condition() (4) threading.Semaphore() (5) threading.Semaphore(2) Упражнение 40: Номер 1 Укажите результат выполнения скрипта: import threading, time res = {'A': threading.Event(), 'B': threading.Event()} def pr(rs): for r in rs: res[r].acquire() time.sleep(1) for i in range(2): print (i) for r in rs: res[r].release() p1 = threading.Thread(target=pr, name='t1', args=['AB']) p2 = threading.Thread(target=pr, name='t2', args=['BA']) p1.start() p2.start() p1.join() p2.join() Ответ: (1) 0 1 0 1 (2) цифры из набора [0, 0, 1, 1] в недетерминированном порядке (3) скрипт будет выполняться бесконечно долго (4) скрипт не будет выполнен, т.к. код содержит ошибки Номер 2 Укажите результат выполнения скрипта: import threading, time res = {'A': threading.Semaphore(5), 'B': threading.Semaphore(5)} def pr(rs): for r in rs: res[r].acquire() time.sleep(1) print (threading.currentThread().getName()[1]) for r in rs: res[r].release() p1 = threading.Thread(target=pr, name='t1', args=['AB']) p2 = threading.Thread(target=pr, name='t2', args=['BA']) p1.start() p2.start() p1.join() p2.join() Ответ: (1) 1 2 (2) цифры из набора [1, 2] в недетерминированном порядке (3) скрипт будет выполняться бесконечно долго (4) скрипт не будет выполнен, т.к. код содержит ошибки Номер 3 Укажите результат выполнения скрипта: import threading, time x=threading.Semaphore(2) res = {'A': threading.Condition(x), 'B': threading.Condition(x)} def pr(rs): for r in rs: res[r].acquire() time.sleep(1) print ('out') for r in rs: res[r].release() p1 = threading.Thread(target=pr, name='t1', args=['AB']) p2 = threading.Thread(target=pr, name='t2', args=['BA']) p1.start() p2.start() p1.join() p2.join() Ответ: (1) out out (2) цифры из набора [o, o, u, u, t, t] в недетерминированном порядке (3) скрипт будет выполняться бесконечно долго (4) скрипт не будет выполнен, т.к. код содержит ошибки Номер 4 Укажите результат выполнения скрипта: import threading, time res = {'A': threading.Lock(), 'B': threading.Lock()} def pr(rs): for r in rs: res[r].acquire() time.sleep(10) for i in range(1,5): print (i) for r in rs: res[r].release() p1 = threading.Thread(target=pr, name='t1', args=['AB']) p2 = threading.Thread(target=pr, name='t2', args=['BA']) p1.start() p2.start() p1.join() p2.join() Ответ: (1) 1 2 3 4 1 2 3 4 (2) цифры из набора [1, 1, 2, 2, 3, 3, 4, 4] в недетерминированном порядке (3) скрипт будет выполняться бесконечно долго (4) скрипт не будет выполнен, т.к. код содержит ошибки Номер 5 Укажите результат выполнения скрипта: import threading, time res = {'A': threading.Semaphore(2), 'B': threading.Semaphore(2)} def pr(rs): for r in rs: res[r].acquire() time.sleep(1) print (threading.currentThread().getName()) for r in rs: res[r].release() p1 = threading.Thread(target=pr, name='t1', args=['AB']) p2 = threading.Thread(target=pr, name='t2', args=['BA']) p1.start() p2.start() p1.join() p2.join() Ответ: (1) t1 t2 (2) элементы набора [t, 1, t, 2] в недетерминированном порядке (3) скрипт будет выполняться бесконечно долго (4) скрипт не будет выполнен, т.к. код содержит ошибки Номер 6 Укажите результат выполнения скрипта: import threading, time res = {'A': threading.RLock(), 'B': threading.RLock()} def pr(rs): for r in rs: res[r].acquire() time.sleep(1) print ('Hello!') for r in rs: res[r].release() p1 = threading.Thread(target=pr, name='t1', args=['AB']) p2 = threading.Thread(target=pr, name='t2', args=['BA']) p1.start() p2.start() p1.join() p2.join() Ответ: (1) Hello! Hello! (2) элементы набора [H, H, e, e, l, l, l, l, o, o, !, !] в недетерминированном порядке (3) скрипт будет выполняться бесконечно долго (4) скрипт не будет выполнен, т.к. код содержит ошибки |