add new functions to the default file
This commit is contained in:
parent
9016442dda
commit
15486cba29
@ -282,7 +282,7 @@ for x in range(k,n,l): # n не включено 3,11,2
|
|||||||
(k+l)+l # 5+2 = 7
|
(k+l)+l # 5+2 = 7
|
||||||
... # n не включено, 9 stop
|
... # n не включено, 9 stop
|
||||||
```
|
```
|
||||||
- для перебора цифр и заключение их в список
|
- для перебора цифр и заключение их в список (генератор списка `[for]`)
|
||||||
```python
|
```python
|
||||||
list = [num for num in range(0,10)] # первый num можно опустить
|
list = [num for num in range(0,10)] # первый num можно опустить
|
||||||
print (list) -> [0,1,2,3...9] # 10 не вкл
|
print (list) -> [0,1,2,3...9] # 10 не вкл
|
||||||
@ -330,16 +330,6 @@ for index, letters in enumerate(my_str):
|
|||||||
print (letter + 'is at index' + str(index))
|
print (letter + 'is at index' + str(index))
|
||||||
```
|
```
|
||||||
|
|
||||||
### Различные функции
|
|
||||||
---
|
|
||||||
- `min()` | `max()`
|
|
||||||
```python
|
|
||||||
print (min(1,2,3,4)) -> 1
|
|
||||||
```
|
|
||||||
- `min()` | `max()` работают также с листами по аскикоду
|
|
||||||
```python
|
|
||||||
print(max('Hello')) -> o # по аскикоду о = 111
|
|
||||||
```
|
|
||||||
#### Добавление библиотек
|
#### Добавление библиотек
|
||||||
- Добавление предустановленных библиотек
|
- Добавление предустановленных библиотек
|
||||||
```python
|
```python
|
||||||
@ -400,7 +390,119 @@ randint (1,10) -> 6 # Выбирает любое число по диапазо
|
|||||||
## Функции
|
## Функции
|
||||||
- код, кот. вып. фун-цию и назван именем
|
- код, кот. вып. фун-цию и назван именем
|
||||||
ВИД: ``set()``
|
ВИД: ``set()``
|
||||||
|
|
||||||
|
Виды:
|
||||||
|
- без возращаемого значения (без `return`, справочное)
|
||||||
|
- без параметров (`def():`)
|
||||||
|
- произвольные число параметров (`def min(*a)`)
|
||||||
|
```python
|
||||||
|
def min(*a):
|
||||||
|
m=a[0]
|
||||||
|
for x in a:
|
||||||
|
if m>x:
|
||||||
|
m=x
|
||||||
|
return m
|
||||||
|
```
|
||||||
|
- параметры со значениями по умолчанию (`print(a,end='')`)
|
||||||
|
- пример функции, которая показывает сколько эл-тов между числами
|
||||||
|
```python
|
||||||
|
def my_range(start,stop,step=1): # Знак равно - это необязательный пункт, тут шаг необязательно вводить
|
||||||
|
res=[]
|
||||||
|
if step >0:
|
||||||
|
x= start
|
||||||
|
while x<stop:
|
||||||
|
res+=[x]
|
||||||
|
x+=step
|
||||||
|
elif step <0:
|
||||||
|
x=start
|
||||||
|
while x>stop:
|
||||||
|
res+=[x]
|
||||||
|
x+=step
|
||||||
|
return res
|
||||||
|
```
|
||||||
|
### Различные функции и методы
|
||||||
|
---
|
||||||
|
- `min()` | `max()`
|
||||||
|
```python
|
||||||
|
print (min(1,2,3,4)) -> 1
|
||||||
|
```
|
||||||
|
- `min()` | `max()` работают также с листами по аскикоду
|
||||||
|
```python
|
||||||
|
print(max('Hello')) -> o # по аскикоду о = 111
|
||||||
|
```
|
||||||
|
---
|
||||||
|
- метод `.reverse()` и ф-я `reversed()` - нужны чтобы сделать обратный порядок эл-тов [::-1]
|
||||||
|
```python
|
||||||
|
list = [1,2,3,4,5]
|
||||||
|
print (list.reverse()) -> [5,4,3,2,1]
|
||||||
|
```
|
||||||
|
> метод `.reverse()`
|
||||||
|
- не возвращает новый списокб изменяет существующий
|
||||||
|
- применяется только к изменяемым посл-тям
|
||||||
|
> ф-я `reversed()`
|
||||||
|
- применяется ко всем посл-тям (строки, списки, кортежи(tuple) и диапазоны(range))
|
||||||
|
- возвращает обратный итератор, а не изменяет, т.е. чтобы вывести нужно сконвертировать в нужный тип
|
||||||
|
```python
|
||||||
|
# список
|
||||||
|
my_list = [1, 2, 3, 4, 5]
|
||||||
|
reversed_list = list(reversed(my_list))
|
||||||
|
print(reversed_list) -> [5, 4, 3, 2, 1]
|
||||||
|
# кортеж
|
||||||
|
my_tuple = (1, 2, 3, 4, 5)
|
||||||
|
reversed_tuple = tuple(reversed(my_tuple))
|
||||||
|
print(reversed_tuple) -> (5, 4, 3, 2, 1)
|
||||||
|
# строка
|
||||||
|
my_string = "Hello, world!"
|
||||||
|
reversed_string = ''.join(reversed(my_string))
|
||||||
|
print(reversed_string) -> !dlrow ,olleH
|
||||||
|
```
|
||||||
|
---
|
||||||
|
- Удаление эл-тов из списка ``del``, ``.pop()``, ``.remove()``
|
||||||
|
> `del` + `list [index]`
|
||||||
|
```python
|
||||||
|
users = ['Ваня', 'Коля', 'Маша']
|
||||||
|
del users [0] # удаляем ваню
|
||||||
|
print (users) -> ['Коля', 'Маша']
|
||||||
|
```
|
||||||
|
> метод `.pop()` - удаляет последний эл-т из списка, но возвращает его
|
||||||
|
- также можно удалять по индексу `.pop(index)`
|
||||||
|
> метод `.remove()` - удаление по значению (только первое которое нашел, чтобы удалить все - исп цикл)
|
||||||
|
- не возвращает
|
||||||
|
```python
|
||||||
|
users = ['Иванов', 'Сидоров', 'Петров', 'Иванов']
|
||||||
|
users.remove('Петров')
|
||||||
|
```
|
||||||
|
---
|
||||||
|
- Функция strip() - для возврата копии исходной строки путем удаления начальных и конечных пробелов, символов (в качестве аргументов), переданных в функцию strip().
|
||||||
|
`strip( 'characters' )`
|
||||||
|
- если не ставить параметр `chars` , то удалит начальные и конечные пробелы из строки
|
||||||
|
- если поставить, то удалит выбранные символы
|
||||||
|
- возвращает копию исходной строки
|
||||||
|
```python
|
||||||
|
strinput = " $$$$$ No. 1 Welcome to JAVATPOINT!! No. 1 $$$ "
|
||||||
|
# use strip() function to remove the set of characters
|
||||||
|
res = strinput.strip ( ' $No. 10 !' ) # store result into res variable
|
||||||
|
print ( " Given string is: ", strinput)
|
||||||
|
print ( " After removing the set of characters: ", res)
|
||||||
|
|
||||||
|
ИЛИ символы
|
||||||
|
|
||||||
|
str5 = '++++++Python Programming Tutorial****** $$$$$'
|
||||||
|
print ("n Given string is = ", str5)
|
||||||
|
# use strip function to remove the symbols from both ends
|
||||||
|
str6 = str5. strip ( ' $*+' )
|
||||||
|
print (" Stripping the '+', '*' and '$' symbols on both sides of the string is = ", str6)
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
### Создание функций
|
### Создание функций
|
||||||
|
Синтаксис : `def` название фунц(аргументы)
|
||||||
|
- можно использовать рез-т функции в этой же функции:
|
||||||
|
```python
|
||||||
|
m = min2(42,30) # функция минимума 2 чисел
|
||||||
|
m = min2(min2(42,30),25)
|
||||||
|
```
|
||||||
```python
|
```python
|
||||||
def print_greeting():
|
def print_greeting():
|
||||||
''' # доксрин
|
''' # доксрин
|
||||||
@ -424,6 +526,15 @@ randint (1,10) -> 6 # Выбирает любое число по диапазо
|
|||||||
print ('Hello' + name + '!')
|
print ('Hello' + name + '!')
|
||||||
print (greeting ... ('Jack')) -> Hello Jack!
|
print (greeting ... ('Jack')) -> Hello Jack!
|
||||||
```
|
```
|
||||||
|
```python
|
||||||
|
def f(n):
|
||||||
|
return n * 10 + 5
|
||||||
|
print(f(f(f(10)))) -> 10555
|
||||||
|
# f(10) -> 100+5=105
|
||||||
|
#f(105) -> 1055
|
||||||
|
#f(1055) -> 10555
|
||||||
|
```
|
||||||
|
|
||||||
### Возвращенная функция
|
### Возвращенная функция
|
||||||
- сумма двух чисел
|
- сумма двух чисел
|
||||||
```python
|
```python
|
||||||
@ -465,6 +576,56 @@ randint (1,10) -> 6 # Выбирает любое число по диапазо
|
|||||||
print ('Hello ' + name + "! I've never see the creture like you!")
|
print ('Hello ' + name + "! I've never see the creture like you!")
|
||||||
return_value = greeting_depends_on_gender ('Jack', 'male')
|
return_value = greeting_depends_on_gender ('Jack', 'male')
|
||||||
```
|
```
|
||||||
|
### Локальные переменные внутри функции
|
||||||
|
- параметры внутри функции __локальные__, мы не можем пользоваться ими вне функции
|
||||||
|
- изменение значений, например, списка
|
||||||
|
```python
|
||||||
|
def append_zero(xs):
|
||||||
|
xs.append(0)
|
||||||
|
# xs= [100]- новый список, поэтому не повлияет на a
|
||||||
|
a =[]
|
||||||
|
append_zero(a)
|
||||||
|
print(a) -> [0]
|
||||||
|
```
|
||||||
|
- также мы можем изменять данные из глобального списка внутри локального:
|
||||||
|
```python
|
||||||
|
l= [1, 3, 4, 5] # глобальная переменная l с сущ. списком
|
||||||
|
def modify_list(l):
|
||||||
|
for i in range(len(l))[::-1]: # делаем в обратном порядке, чтобы избежать ошибки IndexError: list index out of range, которая практически запрограммирована при удалении элементов из списка во время итерирования по нему.
|
||||||
|
# после удаления элемента длина списка уменьшается а кортеж созданный range по длине списка остается неизменным и когда i принимает значение больше чем оставшаяся длина вашего списка то и вылетает ошибка IndexError: list index out of range.
|
||||||
|
# for i in reversed(range(len(l))): --> есть еще такой вариант с функцией `reversed()`
|
||||||
|
if l[i] %2 !=0: # если i нечетное ,то
|
||||||
|
l.remove(l[i]) # удаляем его из списка l
|
||||||
|
else:
|
||||||
|
l[i] = l[i]//2 # иначе оно четное , значит делим его на 2
|
||||||
|
modify_list(l) # выдаст None, т.к. задачей было не возвращать никаких значений
|
||||||
|
print(l) # выдаст - > [2] , т.е. изменили глобальную переменную l
|
||||||
|
|
||||||
|
ИЛИ
|
||||||
|
|
||||||
|
l = [1,2,3,4]
|
||||||
|
def modify_list(l):
|
||||||
|
l[:] = [i//2 for i in l if not i % 2] # генератор списка с условием (есть в конспекте)
|
||||||
|
# not здесь говорит, что остатка НЕ будет. Т.е при деление на 2, число без остатка, добавляют в копию списка
|
||||||
|
# L[:] - срез списка от начала до конца , если без [:], то глоб. L будет ссылаться на новый обьект, при этом исчезнут старые значения
|
||||||
|
modify_list(l) # выдаст None, т.к. задачей было не возвращать никаких значений
|
||||||
|
print(l) # выдаст - > [1,2] , т.е. изменили глобальную переменную l
|
||||||
|
```
|
||||||
|
|
||||||
|
### Глобальные переменные
|
||||||
|
- переменные, которые обьявлены все всяких функций
|
||||||
|
```python
|
||||||
|
def print_value():
|
||||||
|
print(a) # не обьявлена внутри функции, т.е нет a= 5
|
||||||
|
a = 5
|
||||||
|
print_value() -> 5
|
||||||
|
```
|
||||||
|
```python
|
||||||
|
def print_value():
|
||||||
|
print
|
||||||
|
```
|
||||||
|
|
||||||
|
|
||||||
## Методы build-in method
|
## Методы build-in method
|
||||||
ВИД: ``x.append()``
|
ВИД: ``x.append()``
|
||||||
|
|
||||||
@ -478,8 +639,7 @@ randint (1,10) -> 6 # Выбирает любое число по диапазо
|
|||||||
print(b, "is stored in b")
|
print(b, "is stored in b")
|
||||||
print(c, "is stored in c")
|
print(c, "is stored in c")
|
||||||
printThese(1,2,3) # это аргументы
|
printThese(1,2,3) # это аргументы
|
||||||
|
# для вывода нужно записать все аргументы, иначе eror, но если задать в параметрах c=None, то можно не писать аргумент, параметр становится опциональным
|
||||||
# для вывода нужно записать все аргументы, иначе eror, но если задать в параметрах c=None, то можно не писать аргумент, параметр становится опциональным
|
|
||||||
"""
|
"""
|
||||||
1 is stored in a
|
1 is stored in a
|
||||||
2 is stored in b
|
2 is stored in b
|
||||||
@ -609,8 +769,72 @@ print ('i would like to {}{}'.format(args[0],kwargs['food'])) -> I would like on
|
|||||||
```
|
```
|
||||||
|
|
||||||
## Лямбда выр.функции
|
## Лямбда выр.функции
|
||||||
|
- функция без имени, которая вызывается 1 раз
|
||||||
|
- `map` - обьекты записываются как mapobject exm: 0x105ba3610
|
||||||
```python
|
```python
|
||||||
def sum_of_two_num(x):
|
def sum_of_two_num(x):
|
||||||
return x + x
|
return x + x
|
||||||
|
num_list = [1,2,3,4,5,6,7]
|
||||||
|
result = map(sum_of_two_num, num_list) # sum...- функция, num... - посл-ть
|
||||||
|
print (result) -> mapobject at 0x105ba3610
|
||||||
```
|
```
|
||||||
|
- чтобы распаковать объекты `map`:
|
||||||
|
```python
|
||||||
|
for item in result:
|
||||||
|
print(item) -> 2 (1+1)
|
||||||
|
4 (2+2)
|
||||||
|
6 (3+3)
|
||||||
|
...
|
||||||
|
14 (7+7)
|
||||||
|
```
|
||||||
|
```python
|
||||||
|
def cube(num):
|
||||||
|
return num **3
|
||||||
|
num_list = [1,2,3,4,5,6,7]
|
||||||
|
print (list(map(cube(num_list)))) -> [1,8,27,64,125,216,343]
|
||||||
|
```
|
||||||
|
- вариант решения задачи с `modify_list`, но с `lambda`
|
||||||
|
```python
|
||||||
|
def modify_list(l):
|
||||||
|
l[:] = [x // 2 for x in filter(lambda x: x & 1, l)]
|
||||||
|
|
||||||
|
l = [10, 5, 8, 3]
|
||||||
|
print(l)
|
||||||
|
modify_list(l)
|
||||||
|
print(l) # [2, 1]
|
||||||
|
```
|
||||||
|
## Конвертация одних типов в другие
|
||||||
|
> СПИСОК --->> СТРОКА
|
||||||
|
- распаковка списка с помощью `*list`:
|
||||||
|
```python
|
||||||
|
num = [0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
|
||||||
|
print(*num) -> 0 1 2 3 4 5 6 7 8 9 10
|
||||||
|
```
|
||||||
|
- список строк -> `.join()`
|
||||||
|
```python
|
||||||
|
my_list = ["....ru", "-", "хороший", "сайт"]
|
||||||
|
print(" ".join(my_list)) # " " - пустое место- это разделитель дря строк
|
||||||
|
-> ....ru - хороший сайт
|
||||||
|
```
|
||||||
|
- для списка чисел подойдет `.map()` для приведения всех цифр к строке и склеить их `.join()`
|
||||||
|
```python
|
||||||
|
my_list2 = [66, 77, 88, 99]
|
||||||
|
print(" ".join(map(str, my_list2))) -> 66 77 88 99
|
||||||
|
```
|
||||||
|
- чтобы делить с запятой shortcut кода
|
||||||
|
```python
|
||||||
|
my_list3 = [11, 22, 33, 44, 55]
|
||||||
|
print(str(my_list3).strip('[]')) # подробнее о .strip() в разделе функций
|
||||||
|
-> 11, 22, 33, 44, 55
|
||||||
|
```
|
||||||
|
> строку в список
|
||||||
|
```python
|
||||||
|
a = input().split(" ")
|
||||||
|
a = list(a)
|
||||||
|
|
||||||
|
ИЛИ
|
||||||
|
list(string)
|
||||||
|
|
||||||
|
ИЛИ
|
||||||
|
string.split()
|
||||||
|
```
|
Loading…
Reference in New Issue
Block a user