Простой Python — страница 57 из 66

Это удалит элемент по значению:

>>> things.remove("salmonella")

>>> things

['MOZZARELLA', 'Cinderella']

Поскольку элемент находится на последнем месте в списке, следующая строка тоже сработает:

>>> del things[-1]

Элемент также можно удалить, указав смещение от начала:

>>> del things[2]

8. Создайте список, который называется surprise и содержит элементы 'Groucho', 'Chico' и 'Harpo'.

>>> surprise = ['Groucho', 'Chico', 'Harpo']

>>> surprise

['Groucho', 'Chico', 'Harpo']

9. Напишите последний элемент списка surprise со строчной буквы, затем обратите его и напишите с прописной буквы:

>>> surprise[-1] = surprise[-1].lower()

>>> surprise[-1] = surprise[-1][::-1]

>>> surprise[-1].capitalize()

'Oprah'

10. Создайте англо-французский словарь, который называется e2f, и выведите его на экран. Вот ваши первые слова: dog/chien, cat/chat и walrus/morse:

>>> e2f = {'dog': 'chien', 'cat': 'chat', 'walrus': 'morse'}

>>> e2f

{'cat': 'chat', 'walrus': 'morse', 'dog': 'chien'}

11. Используя словарь e2f, выведите французский вариант слова walrus:

>>> e2f['walrus']

'morse'

12. Создайте французско-английский словарь f2e на основе словаря e2f. Используйте метод items:

>>> f2e = {}

>>> for english, french in e2f.items():

····f2e[french] = english

>>> f2e

{'morse': 'walrus', 'chien': 'dog', 'chat': 'cat'}

13. Используя словарь f2e, выведите английский вариант слова chien:

>>> f2e['chien']

'dog'

14. Создайте и выведите на экран множество английских слов из ключей словаря e2f:

>>> set(e2f.keys())

{'cat', 'walrus', 'dog'}

15. Создайте многоуровневый словарь life. Используйте следующие строки для ключей верхнего уровня: 'animals', 'plants' и 'other'. Сделайте так, чтобы ключ 'animals' ссылался на другой словарь, имеющий ключи 'cats', 'octopi' и 'emus'. Сделайте так, чтобы ключ 'cats' ссылался на список строк со значениями 'Henri', 'Grumpy' и 'Lucy'. Остальные ключи должны ссылаться на пустые словари.

Это довольно трудный пример, поэтому, если вы подглядели сюда, ничего особо страшного не случилось:

>>> life = {

…·····'animals': {

…·········'cats': [

…·············'Henri', 'Grumpy', 'Lucy'

…·············],

…·········'octopi': {},

…·········'emus': {}

…·········},

…·····'plants': {},

…·····'other': {}

…·····}

>>>

16. Выведите на экран высокоуровневые ключи словаря life:

>>> print(life.keys())

dict_keys(['animals', 'other', 'plants'])

Python 3 содержит функционал для работы с ключами словарей. Чтобы вывести их как список, используйте следующую строку:

>>> print(list(life.keys()))

['animals', 'other', 'plants']

Вы можете использовать пробелы, чтобы сделать ваш код более удобочитаемым:

>>> print (list (life.keys()))

['animals', 'other', 'plants']

17. Выведите на экран ключи life['animals']:

>>> print(life['animals'].keys())

dict_keys(['cats', 'octopi', 'emus'])

18. Выведите значения life['animals']['cats']:

>>> print(life['animals']['cats'])

['Henri', 'Grumpy', 'Lucy']

Глава 4. Корочка Python: структуры кода

1. Присвойте значение 7 переменной guess_me. Далее напишите условные проверки (if, else и elif), чтобы вывести строку 'too low', если значение переменной guess_me меньше 7, 'too high' — если оно больше 7, и 'just right' — если равно 7:

guess_me = 7

if guess_me < 7:

····print('too low')

elif guess_me > 7:

····print('too high')

else:

····print('just right')

Запустите эту программу, и вы увидите следующую строку:

just right

2. Присвойте значение 7 переменной guess_me и значение 1 переменной start. Напишите цикл while, который сравнивает переменные start и guess_me. Выведите строку 'too low', если значение переменной start меньше значения переменной guess_me. Если значение переменной start равно значению переменной guess_me, выведите строку 'found it!' и выйдите из цикла. Если значение переменной start больше значения переменной guess_me, выведите строку 'oops' и выйдите из цикла. Увеличьте значение переменной start на выходе из цикла:

guess_me = 7

start = 1

while True:

····if start < guess_me:

········print('too low')

····elif start == guess_me:

········print('found it!')

········break

····elif start > guess_me:

········print('oops')

········break

····start += 1

Если вы сделали все правильно, то увидите следующие строки:

too low

too low

too low

too low

too low

too low

found it!

Обратите внимание на то, что строка elif start > guess_me: могла содержать обычный оператор else:, поскольку, если значение start не меньше и не равно значению guess_me, оно должно быть больше. По крайней мере в этой Вселенной.

3. Используйте цикл for, чтобы вывести на экран значения списка [3, 2, 1, 0]:

>>> for value in [3, 2, 1, 0]:

…·····print(value)

3

2

1

0

4. Используйте включение списка, чтобы создать список, который содержит нечетные числа в диапазоне range(10):

>>> even = [number for number in range(10) if number % 2 == 0]

>>> even

[0, 2, 4, 6, 8]

5. Используйте включение словаря, чтобы создать словарь squares. Используйте вызов range(10), чтобы получить ключи, и возведите их в квадрат, чтобы получить их значения:

>>> squares = {key: key*key for key in range(10)}

>>> squares

{0: 0, 1: 1, 2: 4, 3: 9, 4: 16, 5: 25, 6: 36, 7: 49, 8: 64, 9: 81}

6. Используйте включение множества, чтобы создать множество odd, которое содержит четные числа в диапазоне range(10):

>>> odd = {number for number in range(10) if number % 2 == 1}

>>> odd

{1, 3, 9, 5, 7}

7. Используйте включение генератора, чтобы вернуть строку 'Got ' и количество чисел в диапазоне range(10). Итерируйте по нему с помощью цикла for:

>>> for thing in ('Got %s' % number for number in range(10)):

…·····print(thing)

Got 0

Got 1

Got 2

Got 3

Got 4

Got 5

Got 6

Got 7

Got 8

Got 9

8. Определите функцию good, которая возвращает список ['Harry', 'Ron', 'Hermione']:

>>> def good():

…·····return ['Harry', 'Ron', 'Hermione']

>>> good()

['Harry', 'Ron', 'Hermione']

9. Определите функцию генератора get_odds, которая возвращает нечетные числа из диапазона range(10). Используйте цикл for, чтобы найти и вывести третье возвращенное значение:

>