мета-данные страницы
  •  
Загрузка не удалась. Возможно, проблемы с правами доступа?

Различия

Показаны различия между двумя версиями страницы.

Ссылка на это сравнение

Предыдущая версия справа и слеваПредыдущая версия
Следующая версия
Предыдущая версия
python:week2 [28/08/2018 14:49] – [Диапазоны] ybezrukovpython:week2 [16/10/2018 12:17] (текущий) ybezrukov
Строка 3: Строка 3:
 Цикл for в Питоне перебирают элементы некоторой коллекции (например списка), в этом случае, переменной цикла является элемент списка Цикл for в Питоне перебирают элементы некоторой коллекции (например списка), в этом случае, переменной цикла является элемент списка
  
-{{url>http://novt.net/iframe-embed.html#code=l+%3D+%5B1,+2,+5.5,+'abcd',+%5B1,2.5%5D%5D%0A%0Afor+x+in+l%3A%0A++++print(x%29&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=3&rawInputLstJSON=%5B%5D&curInstr=0&codeDivWidth=350&codeDivHeight=400}} +{{url>https://pt.nsunc.com/iframe-embed.html#code=l+%3D+%5B1,+2,+5.5,+'abcd',+%5B1,2.5%5D%5D%0A%0Afor+x+in+l%3A%0A++++print(x%29&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=3&rawInputLstJSON=%5B%5D&curInstr=0&codeDivWidth=350&codeDivHeight=400}}
- +
-{{url>http://novt.net/iframe-embed.html#code=l%20%3D%20%5B1,%202,%205.5,%20'abcd',%20%5B1,2.5%5D%5D%20%20%20%20%0Afor%20x%20in%20l%3A%0A%20%20%20%20print%28x%29&codeDivHeight=400&codeDivWidth=350&cumulative=false&curInstr=5&heapPrimitives=nevernest&origin=opt-frontend.js&py=3&rawInputLstJSON=%5B%5D&textReferences=false}}+
  
 Однако, существует возможность обратиться ко всем элементам списка и по номеру (например, нам хочется видеть их не все, а только с четными номерами). Сделать это можно воспользовавшись специальной функцией, предоставляемой стандартной библиотекой языка, которая называется range(). Эта функция создает список, состоящий из последовательных натуральных чисел, соответствующих условию. Функция может принимать от одного до трех аргументов и в зависимости от этого меняется ее поведение: Однако, существует возможность обратиться ко всем элементам списка и по номеру (например, нам хочется видеть их не все, а только с четными номерами). Сделать это можно воспользовавшись специальной функцией, предоставляемой стандартной библиотекой языка, которая называется range(). Эта функция создает список, состоящий из последовательных натуральных чисел, соответствующих условию. Функция может принимать от одного до трех аргументов и в зависимости от этого меняется ее поведение:
Строка 14: Строка 12:
  
 Например: Например:
-{{url>http://novt.net/iframe-embed.html#code=l+%3D+range(10%29%0Al+%3D+range(2,10%29%0Al+%3D+range(2,10,3%29&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=3&rawInputLstJSON=%5B%5D&curInstr=0&codeDivWidth=350&codeDivHeight=400}}+{{url>https://pt.nsunc.com/iframe-embed.html#code=l+%3D+range(10%29%0Al+%3D+range(2,10%29%0Al+%3D+range(2,10,3%29&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=3&rawInputLstJSON=%5B%5D&curInstr=0&codeDivWidth=350&codeDivHeight=400}}
  
 Воспользуемся этим знанием, чтобы перебрать элементы списка другим способом: Воспользуемся этим знанием, чтобы перебрать элементы списка другим способом:
-{{url>http://novt.net/iframe-embed.html#code=l+%3D+%5B1,+2,+5.5,+'abcd',+%5B1,2.5%5D%5D%0A%0Afor+x+in+range(2,len(l%29,2%29%3A%0A++++print(l%5Bx%5D%29&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=3&rawInputLstJSON=%5B%5D&curInstr=0&codeDivWidth=350&codeDivHeight=400}}+{{url>https://pt.nsunc.com/iframe-embed.html#code=l+%3D+%5B1,+2,+5.5,+'abcd',+%5B1,2.5%5D%5D%0A%0Afor+x+in+range(2,len(l%29,2%29%3A%0A++++print(l%5Bx%5D%29&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=3&rawInputLstJSON=%5B%5D&curInstr=0&codeDivWidth=350&codeDivHeight=400}}
 ====== Функция split ====== ====== Функция split ======
  
Строка 30: Строка 28:
 Можно эту задачу решить с помощью самодельной функции, которая будет искать пробелы. Однако, в Питоне есть встроенная функция, которая позволяет сделать это несколько проще.  Можно эту задачу решить с помощью самодельной функции, которая будет искать пробелы. Однако, в Питоне есть встроенная функция, которая позволяет сделать это несколько проще. 
  
-{{url>http://novt.net/iframe-embed.html#code=s+%3D+%221+23+14%22%0Aprint(s%29%0As+%3D+s.split(%22+%22%29%0Aprint(s%29&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=3&rawInputLstJSON=%5B%5D&curInstr=0&codeDivWidth=350&codeDivHeight=400}}+{{url>https://pt.nsunc.com/iframe-embed.html#code=s+%3D+%221+23+14%22%0Aprint(s%29%0As+%3D+s.split(%22+%22%29%0Aprint(s%29&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=3&rawInputLstJSON=%5B%5D&curInstr=0&codeDivWidth=350&codeDivHeight=400}}
  
 Как видно функция делит строку на список строк, однако список символов не ограничивается пробелом. В качестве аргумента для функции split может выступать любой набор символов. Как видно функция делит строку на список строк, однако список символов не ограничивается пробелом. В качестве аргумента для функции split может выступать любой набор символов.
  
-{{url>http://novt.net/iframe-embed.html#code=s+%3D+%22antananarivu%22%0Aprint(s%29%0As+%3D+s.split(%22n%22%29%0Aprint(s%29&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=3&rawInputLstJSON=%5B%5D&curInstr=0&codeDivWidth=350&codeDivHeight=400}}+{{url>https://pt.nsunc.com/iframe-embed.html#code=s+%3D+%22antananarivu%22%0Aprint(s%29%0As+%3D+s.split(%22n%22%29%0Aprint(s%29&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=3&rawInputLstJSON=%5B%5D&curInstr=0&codeDivWidth=350&codeDivHeight=400}}
  
 ====== Ввод с клавиатуры ====== ====== Ввод с клавиатуры ======
Строка 40: Строка 38:
 Помимо печати на экран с помощью функции print() нам иногда требуется и вводить в данные с клавиатуры (а так же и из файлов, но с ними разберемся позже). Делается это с помощью функции input() Помимо печати на экран с помощью функции print() нам иногда требуется и вводить в данные с клавиатуры (а так же и из файлов, но с ними разберемся позже). Делается это с помощью функции input()
  
-{{url>http://novt.net/iframe-embed.html#code=s+%3D+input(%22Type+a+string%3A+%22%29%0Aprint(s%29%0A&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=3&rawInputLstJSON=%5B%22%5C%22dfgdfgdfg%5C%22%22%5D&curInstr=2&codeDivWidth=350&codeDivHeight=400}}+{{url>https://pt.nsunc.com/iframe-embed.html#code=s+%3D+input(%22Type+a+string%3A+%22%29%0Aprint(s%29%0A&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=3&rawInputLstJSON=%5B%22%5C%22dfgdfgdfg%5C%22%22%5D&curInstr=2&codeDivWidth=350&codeDivHeight=400}}
  
 Однако, у нее есть некоторая особенность, о которой нужно помнить. input() рассматривает вводимую строку с точки зрения синтаксиса Питона и пытается интерпретировать, поэтому если просто ввести, например, 4 и 5 через пробел, то это будет ошибкой, так как для интерпретатора она ничего не описывает. Чтобы ввод сработал корректно, нужно взять 4 и 5 в кавычки "4 5". Кавычки указывают на то, что у нас введена строка и интерпретатор поймет все верно. С одной стороны, выглядит как ограничение, другой, можно сразу, например, ввести список: [2,4,5]  Однако, у нее есть некоторая особенность, о которой нужно помнить. input() рассматривает вводимую строку с точки зрения синтаксиса Питона и пытается интерпретировать, поэтому если просто ввести, например, 4 и 5 через пробел, то это будет ошибкой, так как для интерпретатора она ничего не описывает. Чтобы ввод сработал корректно, нужно взять 4 и 5 в кавычки "4 5". Кавычки указывают на то, что у нас введена строка и интерпретатор поймет все верно. С одной стороны, выглядит как ограничение, другой, можно сразу, например, ввести список: [2,4,5] 
Строка 48: Строка 46:
 В Питоне существует возможность переводить типы данных друг в друга. Например, если строка содержит только символы цифр без пробелов ("45363"), то ее можно преобразовать в натуральное число с помощью функции int() В Питоне существует возможность переводить типы данных друг в друга. Например, если строка содержит только символы цифр без пробелов ("45363"), то ее можно преобразовать в натуральное число с помощью функции int()
  
-{{url>http://novt.net/iframe-embed.html#code=s+%3D+%2215%22%0Aprint(type(s%29%29%0As+%3D+int(s%29%0Aprint(type(s%29%29&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=3&rawInputLstJSON=%5B%5D&curInstr=0&codeDivWidth=350&codeDivHeight=400}}+{{url>https://pt.nsunc.com/iframe-embed.html#code=s+%3D+%2215%22%0Aprint(type(s%29%29%0As+%3D+int(s%29%0Aprint(type(s%29%29&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=3&rawInputLstJSON=%5B%5D&curInstr=0&codeDivWidth=350&codeDivHeight=400}}
  
 ====== Задача 1 ====== ====== Задача 1 ======
Строка 69: Строка 67:
 Строки в Питоне немножко списки и к ним можно применять похожие действия. Например, выборку элементов и подстрок Строки в Питоне немножко списки и к ним можно применять похожие действия. Например, выборку элементов и подстрок
  
-{{url>http://novt.net/iframe-embed.html#code=s+%3D+%22visualization+capabilities%22%0Aprint(len(s%29%29%0Aprint(s%5B4%5D%29%0Aprint(s%5B4%3A10%5D%29%0Aprint(s%5B-2%5D%29%0A&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=3&rawInputLstJSON=%5B%5D&curInstr=0&codeDivWidth=350&codeDivHeight=400}}+{{url>https://pt.nsunc.com/iframe-embed.html#code=s+%3D+%22visualization+capabilities%22%0Aprint(len(s%29%29%0Aprint(s%5B4%5D%29%0Aprint(s%5B4%3A10%5D%29%0Aprint(s%5B-2%5D%29%0A&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=3&rawInputLstJSON=%5B%5D&curInstr=0&codeDivWidth=350&codeDivHeight=400}}
  
 В строках можно и поискать, для этого существуют две специальные функции find() и rfind(). Первая возвращает позицию первого вхождения подстроки в строке, начиная с начала, а вторая - с конца. В строках можно и поискать, для этого существуют две специальные функции find() и rfind(). Первая возвращает позицию первого вхождения подстроки в строке, начиная с начала, а вторая - с конца.
  
-{{url>http://novt.net/iframe-embed.html#code=s+%3D+%22atcbcevbcstghbcsewer%22%0Aprint(s.find(%22bc%22%29%29%0Aprint(s.rfind(%22bc%22%29%29&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=3&rawInputLstJSON=%5B%5D&curInstr=3&codeDivWidth=350&codeDivHeight=400}}+{{url>https://pt.nsunc.com/iframe-embed.html#code=s+%3D+%22atcbcevbcstghbcsewer%22%0Aprint(s.find(%22bc%22%29%29%0Aprint(s.rfind(%22bc%22%29%29&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=3&rawInputLstJSON=%5B%5D&curInstr=3&codeDivWidth=350&codeDivHeight=400}}
  
 ====== Задача 3 ====== ====== Задача 3 ======
Строка 81: Строка 79:
 ====== Заполнение списка с помощью генератора ====== ====== Заполнение списка с помощью генератора ======
  
-{{url>http://novt.net/iframe-embed.html#code=from+random+import+randint%0A%0Al+%3D+%5Brandint(15,+2000%29+for+_+in+range(6%29%5D%0Aprint(l%29&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=3&rawInputLstJSON=%5B%5D&curInstr=0&codeDivWidth=350&codeDivHeight=400}}+{{url>https://pt.nsunc.com/iframe-embed.html#code=from+random+import+randint%0A%0Al+%3D+%5Brandint(15,+2000%29+for+_+in+range(6%29%5D%0Aprint(l%29&origin=opt-frontend.js&cumulative=false&heapPrimitives=false&textReferences=false&py=3&rawInputLstJSON=%5B%5D&curInstr=0&codeDivWidth=350&codeDivHeight=400}}
  
 ====== Задача 4 ====== ====== Задача 4 ======
  
 Отсортировать столбцы матрицы по возрастанию сумм элементов в столбце. Отсортировать столбцы матрицы по возрастанию сумм элементов в столбце.
 +
 +====== Самостоятельная работа======
 +
 +  - Превратите список ["Рыжая", "лиса", "перепрыгнула", "через", "низкий", "забор", "."] в грамматически правильное предложение. Каждое слово должно отделяться пробелом, но между словом "забор" и следующей за ним точкой пробела быть не должно.
 +  - Создайте строку "тритритритри", используя конкатенацию, а затем сделайте то же самое, только с помощью умножения.
 +  - Выведите каждый элемент в списке из первого задания вместе с индексами.
 +  - Умножьте все числа в списке [8, 19, 148, 4] на все числа в списке [9, 1, 33, 83] попарно и поместите результаты в третий список.
 +  - Замените каждое вхождение буквы "б" на цифру "1", а вхождение буквы "р" на "*"  в строке "Все бобры добры для своих бобрят".
 +  - Напишите программу, которая принимает от пользователя две строки ans1 и ans2, вставляет их в строку "Вчера я написал ans1. Вчера я ходил в ans2." и выводит новую строку.
 +
 +