def get_list_part_count(lst: list, start_divider):
# ищем наименьшее количество частей списка
ln = len(lst)
while True:
if ln % start_divider != 0:
start_divider += 1
else:
break
return start_divider
def find_max_item_val_in_dict(dc: dict):
# ищем максимальное значение элемента словаря
# предполагаем, что отрицательных чисел в наших списках не будет
max_val = -1
result_item = None
for key in dc:
if dc[key] > max_val:
max_val = dc[key]
result_item = key
return result_item
def split_list_to_parts(lst, part_count):
# делим список на части, заданные в параметре part_count
part_len = int(len(lst) / part_count) # длина одной части
y = [] # результирующий список
for multiplier in range(1, part_count + 1):
# заполняем наш список срезами исходного
y.append(lst[(part_len * multiplier) - part_len:part_len * multiplier])
return y
def find_periodic_seq(seq, start_divider):
# получаем наш разделенный список
splitted_list = split_list_to_parts(seq, get_list_part_count(seq, start_divider))
# тут будут храниться наши последовательности
counters = []
# нужно больше циклов!!!
# пробегаем по нашему расщепенцу
for sub_list in splitted_list:
dc = {}
for element in sub_list:
# заполняем словарь dc данными, сколько раз каждый элемент встречается в последовательности
# count намеренно не использовал
try:
dc[element] += 1
except KeyError:
dc[element] = 1
# находим элемент, котрый максимально часто встречается в последовательности
max_item = find_max_item_val_in_dict(dc)
lst = []
# собираем индексы, на которых находятся наши элементы и запихиваем в список lst
for pos, element in enumerate(sub_list):
if element == max_item:
lst.append(pos)
# список со списками индексов максимально часто повторяющихся элементов, предварительно разбитого списка!
counters.append(lst)
# если длина списка == количеству повторений первого элемента -> наш список содержит одинаковые элементы
if len(counters) == counters.count(counters[0]):
return counters[0]
else:
return None
if __name__ == '__main__':
# не улетаем в небеса и ограничиваем бесконечный цикл
stop_cycles = 10
current_cycles = 1
# исходный список
lst = [0, 1, 1, 2, 1, 3, 4, 4, 5, 4, 5, 6, 6, 3, 6]
# минимальное количество элементов в каждой части при дроблении списка на части
start_divider = 3
while True:
if current_cycles > stop_cycles:
print(f'Can not find sequence with {current_cycles} cycles, stopping :(')
break
# вызываем нашу основную функцию
result = find_periodic_seq(lst, start_divider)
if not result:
# если ничего не нашлось - увеличиваем минимальную длину части на 1
start_divider += 1
else:
print(f'seq was founded with {current_cycles} cycles! {result}')
break
x = '1'
y = 2
z = x + y # нельзя сложить число и строку
Traceback (most recent call last):
File "main.py", line 3, in <module>
z = x + y
TypeError: can only concatenate str (not "int") to str
TypeError: 'NoneType' object is not callable
означает, что ваш объек - None, а есть попытка вызвать его, что невозможно.import labaa2
class Laba2(QMainWindow):
def __init__(self):
super().__init__()
self.ui = self.setupUi(self)
self.ui.button # например
uic.loadUi('TEST.ui', self)
self.ui = uic.loadUi('TEST.ui', self)
, дабы не возникло не нужных пересечений имен, да и, на мой взгляд, аккуратнее получиться, мало ли еще одну форму в этот же класс грузить будете.)import labaa2
from labaa2.Ui_Laba2 import Ui_что_там_у_вас as MainForm_UI
class Laba2(QMainWindow,):
def __init__(self):
super().__init__()
self.ui = MainFormUI()
self.ui.setupUi(self)
# импорт
import labaa2
from forms.py.temp_ui import Ui_MainWindow as MainForm
class Laba2(QMainWindow,):
def __init__(self):
super().__init__()
self.ui = MainForm()
self.ui.setupUi(self)
a = 0
b = 1
c = 2
d = 3
alls = min(a, b, c, d)
globs = globals().copy()
for i in globs:
if id(globs[i]) == id(alls):
print("имя переменной, у которой самый маленький int:", i)
break
from subprocess import Popen, PIPE
# запускаем команду, вывод перенаправляем в PIPE
proc = Popen('cmd /c ping 8.8.8.8', stdout=PIPE)
# по завершении работы proc, прочитать данные из
# stdout (и отправить ввод, если надо), результат не декодирован (bytes)
res = proc.communicate()[0] # <- communicate возвращает кортеж (stdout_data, stderr_data)
print(res.decode('cp866')) # выводим на печать декодированные данные
model = 1
color = "black"
year = 2010
number_of_doors = 6
print(str(model) + "\n" + color + "\n" + str(year) + "\n" + str(number_of_doors))
print('####')
print("%d\n%s\n%d\n%d" % (model, color, year, number_of_doors))
print('####')
print(f"{model}\n" \
f"{color}\n" \
f"{year}\n" \
f"{number_of_doors}")
print("####")
print(f"{model}\n{color}\n{year}\n{number_of_doors}")
except Exception as e:
print(e, e.args, file=sys.stderr)
x = [['Курица'] , ['Масло'], [' Гречка'], ['Молоко'], ['Мясо'], ['Рыба'], ['Хлеб']]
for i in x:
print(i[0], end=' ')
print()
new_list = []
for i in x:
new_list.append(i[0])
print(" ".join(new_list))
print(" ".join(i[0] for i in x))
ln = len(x)
stroke = ""
for i, j in enumerate(x):
stroke += j[0]
if i < ln:
stroke += " "
print(stroke)
foods = ['Бургер', 'Картофель', 'Куринные ножки']
for food in foods:
print(food)