Add Python notes

This commit is contained in:
2022-05-06 00:49:26 +03:00
parent 4c0cdb2f71
commit 1863176b39
57 changed files with 1205 additions and 5 deletions

21
python/функции/NOK.py Executable file
View File

@@ -0,0 +1,21 @@
def nok (a,b):
c=a
d=b
ia=1
ib=1
while c != d:
if c < d:
ia += 1
c = a*ia
else:
ib+=1
d = b*ib
print(c, d)
return c
z = int(input('a: '))
x = int(input('b: '))
nok(z, x)
input()

88
python/функции/NOK2.py Executable file
View File

@@ -0,0 +1,88 @@
import operator
import functools
prime = [2, 3]
def simple(a):
num = a[-1]+1
tr = False
while tr != True:
for i in range(2, num):
if num%i == 0:
tr = False
num += 1
break
else:
tr = True
a.append(num)
# print(f'В список добавлено число {num}')
def NOK(x,y):
if x > y:
difx = True
else:
difx=False
arrayx=[]
arrayy=[]
counter=0
while x!=1:
for i in range(counter, len(prime)):
if prime[i]>(x/2):
arrayx.append(x)
x=1
break
if x%prime[i]==0:
x //= prime[i]
arrayx.append(prime[i])
counter=0
i=0
break
if (x>1) and (i==(len(prime)-1)):
simple(prime)
counter=i
counter=0
while y!=1:
for i in range(counter, len(prime)):
if prime[i]>(y/2):
arrayy.append(y)
y=1
break
if y%prime[i]==0:
y//=prime[i]
arrayy.append(prime[i])
counter=0
i=0
break
if (y>1) and (i==(len(prime)-1)):
simple(prime)
counter=i
print(arrayx, arrayy)
count_ax = 0
y_second = list(arrayy)
x_second = list(arrayx)
for i in range(0, len(arrayy)):
for for_x in range(0, len(x_second)):
if arrayy[i] == x_second[for_x]:
y_second.remove(arrayy[i])
x_second.remove(arrayy[i])
break
result_array = y_second + arrayx
result = functools.reduce(operator.mul, result_array, 1)
print(result_array, result)
return result
first = int(input())
second = int(input())
print(NOK(first,second))
input()

33
python/функции/def.py Executable file
View File

@@ -0,0 +1,33 @@
# Функции создаются при помощи def Имя (Список параметров)
#В тройных кавычках содержится описание функции
def division (dividend, divisor):
"""Делит делимое на делитель"""
if divisor != 0:
z = dividend/divisor
#return возвращает результат функции. Без него результатом будет None
#также есть pass, при использовании которого функция ничего не возвращает
return z
else:
print('На 0 делить нельзя')
#Просмотр описания функции
print(division.__doc__)
print(division(18,6))
def gcd(a, b):
"Нахождение НОД"
while a != 0:
a,b = b%a,a # параллельное определение. Не смотря на то, что b написано после a, переменной b всё равно присваивается старое значение a
print(a,b)
print(b)
return b
gcd(2,3)
#вместо списка параметров можно написать *args, тогда кол-во параметров определится само
def test(*args):
print(args)
pass
test(23, "hi", 4221)

View File

@@ -0,0 +1,2 @@
mult = lambda x, y: x * y
print(mult(2, 5))

View File

@@ -0,0 +1,35 @@
prime = [2, 3]
print(prime)
num = prime[-1]+1
tr = False
while tr != True:
for i in range(2, num):
if num%i == 0:
tr = False
print(num, i, tr)
num += 1
break
else:
tr = True
print(num, i, tr)
prime.append(num)
for z in range(1, 1500):
num = prime[-1]+1
tr = False
while tr != True:
for i in range(2, (num//2)):
if num%i == 0:
tr = False
num += 1
break
else:
tr = True
prime.append(num)
print(prime)