last lab
This commit is contained in:
16
labPython/lab2/Series15.py
Executable file
16
labPython/lab2/Series15.py
Executable file
@@ -0,0 +1,16 @@
|
||||
K = int(input())
|
||||
numlist=[]
|
||||
num = 1
|
||||
while(num!=0):
|
||||
num = int(input())
|
||||
numlist.append(num)
|
||||
|
||||
count=0
|
||||
for i in range(len(numlist)):
|
||||
if numlist[i] > K:
|
||||
print(i)
|
||||
count =1
|
||||
break
|
||||
|
||||
if count == 0:
|
||||
print(numlist[-1])
|
||||
29
labPython/lab2/TheTwo16.py
Executable file
29
labPython/lab2/TheTwo16.py
Executable file
@@ -0,0 +1,29 @@
|
||||
# print("Введите число N")
|
||||
# N = int(input())
|
||||
#
|
||||
# def fac(x: int): # факториал числа
|
||||
# return _fac (x*2, x)
|
||||
#
|
||||
# def _fac(x: int, y: int):
|
||||
# if x > y:
|
||||
# return (y * _fac(x, y+1))
|
||||
# else:
|
||||
# return y
|
||||
#
|
||||
# x = 0
|
||||
# if N <= 12:
|
||||
# for i in range(1, N+1):
|
||||
# step = i**i
|
||||
# factorial = fac(i)
|
||||
# x += step / factorial
|
||||
# print(x)
|
||||
|
||||
N = int(input())
|
||||
s = 0
|
||||
for i in range(1, N + 1):
|
||||
p = 1
|
||||
for j in range(i, 2 * i + 1):
|
||||
p *= j
|
||||
s += i**2 / p
|
||||
|
||||
print(s)
|
||||
28
labPython/lab2/TheTwo20.py
Executable file
28
labPython/lab2/TheTwo20.py
Executable file
@@ -0,0 +1,28 @@
|
||||
# print("Введите число")
|
||||
# num = int(input())
|
||||
# micronum = 0
|
||||
# i=1
|
||||
# list=[]
|
||||
# while num != micronum:
|
||||
# micronum = (num%(10**i)-num%(10**(i-1)))//(10**(i-1))
|
||||
# list.insert(0, micronum)
|
||||
# print (list)
|
||||
# micronum = num%(10**i)
|
||||
# i+=1
|
||||
#
|
||||
# max = 0
|
||||
# count = 0
|
||||
# maxcount = 0
|
||||
# for i in list:
|
||||
# count += 1
|
||||
# if i > max:
|
||||
# max = i
|
||||
# maxcount = count
|
||||
#
|
||||
# print(f"Максимальное цифра{max}, индекс {maxcount}")
|
||||
|
||||
N = int(input())
|
||||
s = str(N)[::-1]
|
||||
m = min(s)
|
||||
print("Минимальная цифра:", m)
|
||||
print("Порядковый номер:", s.index(m) + 1)
|
||||
17
labPython/lab2/While18.py
Executable file
17
labPython/lab2/While18.py
Executable file
@@ -0,0 +1,17 @@
|
||||
# num = int(input())
|
||||
# i=1
|
||||
# micronum=0
|
||||
# sum = 0
|
||||
#
|
||||
# print (i-1, sum)
|
||||
|
||||
N = int(input())
|
||||
s = 0
|
||||
k = 0
|
||||
while N > 0:
|
||||
d = N % 10
|
||||
s += d
|
||||
k += 1
|
||||
N //= 10
|
||||
print("Количество цифр:", k)
|
||||
print("Сумма цифр:", s)
|
||||
15
labPython/lab2/task3.py
Executable file
15
labPython/lab2/task3.py
Executable file
@@ -0,0 +1,15 @@
|
||||
import random
|
||||
|
||||
while True:
|
||||
comp = random.randint(1, 3)
|
||||
user = int(input("1 - камень, 2 - ножницы, 3 - бумага: "))
|
||||
|
||||
if comp == user:
|
||||
print("Ничья, попробуйте снова!")
|
||||
continue
|
||||
|
||||
if (user == 1 and comp == 2) or (user == 2 and comp == 3) or (user == 3 and comp == 1):
|
||||
print("Вы выиграли!", comp)
|
||||
else:
|
||||
print("Компьютер выиграл!", comp)
|
||||
break
|
||||
16
labPython/lab2/task6.py
Executable file
16
labPython/lab2/task6.py
Executable file
@@ -0,0 +1,16 @@
|
||||
print("введите точность и коэффициент")
|
||||
from math import atan
|
||||
T = int(input())
|
||||
x = float(input())
|
||||
count = 0
|
||||
num = 0
|
||||
for i in range(1, T, 2):
|
||||
count += 1
|
||||
if count%2 == 1:
|
||||
num += (x**i)/i
|
||||
else:
|
||||
num -= (x**i)/i
|
||||
|
||||
print(atan(x))
|
||||
print(f"Число arctng(x) с точностью {T}: {num}")
|
||||
|
||||
277
labPython/lab2/windows.py
Executable file
277
labPython/lab2/windows.py
Executable file
@@ -0,0 +1,277 @@
|
||||
import curses
|
||||
|
||||
class InputWindow(): # Позиция x, позиция y, ширина, высота, текст окна.
|
||||
|
||||
def __init__(self, position_x, position_y, width, heigth, text="", xMax=6):
|
||||
|
||||
self.x = position_x
|
||||
|
||||
self.y = position_y
|
||||
|
||||
self.w = width
|
||||
|
||||
self.h = heigth
|
||||
|
||||
self.t = text
|
||||
|
||||
self.inputwin = curses.newwin(self.h-2, self.w-3, self.y+1, self.x+2) # Разметка окна ввода
|
||||
|
||||
self.win = curses.newwin(self.h, self.w, self.y, self.x) # Основное окно с рамкой
|
||||
|
||||
self.xMax = xMax
|
||||
|
||||
|
||||
|
||||
def draw(self):
|
||||
|
||||
|
||||
|
||||
# Главное окно
|
||||
|
||||
self.win.border() # Рамка
|
||||
|
||||
self.win.addstr(0, 1, self.t) # Надпись на окне(не более 8 символов)
|
||||
|
||||
|
||||
|
||||
self.win.refresh()
|
||||
|
||||
self.inputwin.refresh()
|
||||
|
||||
|
||||
|
||||
def edit(self): # Статическое окно
|
||||
|
||||
input = self.inputwin # Окно ввода
|
||||
|
||||
input.clear()
|
||||
|
||||
text = "" # Возвращаемый текст
|
||||
|
||||
cursX = 0 # Позиция курсора
|
||||
|
||||
|
||||
|
||||
while True:
|
||||
|
||||
|
||||
|
||||
# Каждую итерацию цикла отрисовываем окно, ждем ввод, в зависимости от ввода делаем действие
|
||||
|
||||
input.addstr(0, 0, text)
|
||||
|
||||
input.move(0, cursX)
|
||||
|
||||
self.win.refresh()
|
||||
|
||||
self.inputwin.refresh()
|
||||
|
||||
|
||||
|
||||
ch = input.getch()
|
||||
|
||||
|
||||
|
||||
if ch == 7: # Проверяем на Ctrl+g
|
||||
|
||||
return text
|
||||
|
||||
elif ch == 10: # Проверям на enter
|
||||
|
||||
return text
|
||||
|
||||
elif cursX > self.w-5:
|
||||
|
||||
StaticWindow(1, 0, f"Maximum lenght {self.w-4}")
|
||||
|
||||
|
||||
|
||||
elif ch == 127: # Проверяем на backspace
|
||||
|
||||
if text!="":
|
||||
|
||||
text = text[:-1]
|
||||
|
||||
cursX -= 1
|
||||
|
||||
input.clear()
|
||||
|
||||
input.refresh()
|
||||
|
||||
|
||||
|
||||
else: # Отрисосвываем текст
|
||||
|
||||
text += chr(ch)
|
||||
|
||||
cursX += 1
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
|
||||
def editResize(self): # Динамически масштабируемое окно
|
||||
|
||||
input = self.inputwin # Окно ввода
|
||||
|
||||
input.clear()
|
||||
|
||||
text = "" # Возвращаемый текст
|
||||
|
||||
cursX = 0 # Позиция курсора
|
||||
|
||||
while True:
|
||||
|
||||
# Каждую итерацию цикла отрисовываем окно, ждем ввод, в зависимости от ввода делаем действие
|
||||
|
||||
input.addstr(0, 0, text)
|
||||
|
||||
input.move(0, cursX)
|
||||
|
||||
self.win.refresh()
|
||||
|
||||
self.inputwin.refresh()
|
||||
|
||||
|
||||
|
||||
ch = input.getch()
|
||||
|
||||
|
||||
|
||||
if ch == 7: # Проверяем на Ctrl+g
|
||||
|
||||
return text
|
||||
|
||||
elif ch == 10: # Проверям на enter
|
||||
|
||||
return text
|
||||
|
||||
elif ch == 127: # Проверяем на backspace
|
||||
|
||||
if text!="":
|
||||
|
||||
text = text[:-1]
|
||||
|
||||
cursX -= 1
|
||||
|
||||
input.clear()
|
||||
|
||||
input.refresh()
|
||||
|
||||
|
||||
|
||||
elif len(text) <= (self.xMax - 6): # Отрисосвываем текст
|
||||
|
||||
text += chr(ch)
|
||||
|
||||
cursX += 1
|
||||
|
||||
|
||||
|
||||
if cursX > self.w-4: # Динамическое увеличение рамки и текстового поля
|
||||
|
||||
self.x -=1
|
||||
|
||||
self.w +=2
|
||||
|
||||
|
||||
|
||||
input.mvwin(self.y+1, self.x+2)
|
||||
|
||||
self.win.mvwin(self.y, self.x)
|
||||
|
||||
|
||||
|
||||
input.resize(self.h-2, self.w-3) # Разметка окна ввода
|
||||
|
||||
self.win.resize(self.h, self.w) # Основное окно с рамкой
|
||||
|
||||
|
||||
|
||||
self.win.border()
|
||||
|
||||
self.win.addstr(0, 1, self.t) # Надпись на окне(не более 8 символов)
|
||||
|
||||
|
||||
|
||||
def clear(self):
|
||||
|
||||
|
||||
|
||||
self.inputwin.clear()
|
||||
|
||||
self.inputwin.refresh()
|
||||
|
||||
|
||||
|
||||
class StaticWindow(): # Поция x, позиция y, текст
|
||||
|
||||
def __init__(self, position_x, position_y, text, textInline="", reverse=False, minHeigtg=False):
|
||||
|
||||
self.x = position_x
|
||||
|
||||
self.y = position_y
|
||||
|
||||
if len(text) < 20 and minHeigtg:
|
||||
|
||||
self.w = 24
|
||||
|
||||
else:
|
||||
|
||||
self.w = len(text)+4
|
||||
|
||||
self.h = 3
|
||||
|
||||
self.t = text
|
||||
|
||||
self.ti = textInline
|
||||
|
||||
self.r = reverse
|
||||
|
||||
|
||||
|
||||
self.win = curses.newwin(self.h, self.w, self.y, self.x)
|
||||
|
||||
|
||||
|
||||
def draw(self):
|
||||
|
||||
if self.r:
|
||||
|
||||
self.win.attron(curses.A_REVERSE)
|
||||
|
||||
self.win.border()
|
||||
|
||||
self.win.attroff(curses.A_REVERSE)
|
||||
|
||||
self.win.attron(curses.A_REVERSE)
|
||||
|
||||
self.win.addstr(0, 1, self.ti)
|
||||
|
||||
self.win.attroff(curses.A_REVERSE)
|
||||
|
||||
|
||||
|
||||
else:
|
||||
|
||||
self.win.border()
|
||||
|
||||
self.win.addstr(0, 1, self.ti)
|
||||
|
||||
|
||||
|
||||
self.win.addstr(1,2, self.t)
|
||||
|
||||
self.win.refresh()
|
||||
|
||||
|
||||
|
||||
def clear(self):
|
||||
|
||||
|
||||
|
||||
self.win.clear()
|
||||
|
||||
self.win.refresh()
|
||||
Reference in New Issue
Block a user