Как добавить прокси к веббраузеру Python?
Как можно добавить прокси с логином и паролем к коду ниже?
<code>
from time import sleep
from fake_useragent import UserAgent
from seleniumwire import webdriver

options = webdriver.ChromeOptions()
options.add_argument(f'user-agent={UserAgent().random}')
options.add_argument("--disable-blink-features=AutomationControlled")
options.headless = True
driver = webdriver.Chrome(executable_path=r'C:\Users\aesok\Desktop\chromedriver.exe', options=options)
try:
    driver.get(link)
    sleep(1)
except Exception as e:
    print(e)
finally:
    driver.close()
    driver.quit()
</code>

options = webdriver.ChromeOptions()
options.add_argument(f'user-agent={UserAgent().random}')
options.add_argument("--disable-blink-features=AutomationControlled")
options.headless = True
params = {
    "options": options,
    "seleniumwire_options": {
        "backend": "default",
        "proxy": {
            "http": full_proxy
        }
    },
}
driver = webdriver.Chrome(
    **params,
    executable_path=r'C:\Users\aesok\Desktop\chromedriver.exe')
try:
    driver.get(link)
    sleep(1)
except Exception as e:
    print(e)
finally:
    driver.close()
    driver.quit()


Python - Как отправлять команду на print из вечного цикла while только в случае изменения переменной в цикле?
Новичок в python, есть такой лёгкий парсер, который читает файл лога и постоянно возвращает либо 1, либо 2
<code>
import time
import os

tot_state = 0
sts = 'Check'
sts2 = 'Sport'
ans = open('logs.txt', encoding='utf-8')
while True:
    time.sleep(1)
    for line in ans:
        for word in line.split():
            if sts2 in word and sts != line.split()[15]:
                 stroki = line.split()
                 act_state = stroki[15]
    if act_state in ('One', 'Two', 'Three', 'Four'):
        tot_state = 2
    else:
        tot_state = 1
    print(tot_state)
</code>
Задача получать не постоянно (каждую секунду - time.sleep(1)) значения 1 или 2, а только в случае изменения этого значения.
Пытался поверх этого цикла повесить ещё один, но что-то не получается, буду благодарен любым идеям или готовому решению.

<code>
import time
import os

tot_state = 0
old_state = 0
sts = 'Check'
sts2 = 'Sport'
ans = open('logs.txt', encoding='utf-8')
while True:
    time.sleep(1)
    for line in ans:
        for word in line.split():
            if sts2 in word and sts != line.split()[15]:
                 stroki = line.split()
                 act_state = stroki[15]
    if act_state in ('One', 'Two', 'Three', 'Four'):
        tot_state = 2
    else:
        tot_state = 1
    if tot_state != old_state:
        print(tot_state)
        old_state = tot_state
</code>
Как то так должно, но не тестировал.
К слову, а то что должно изменять logs к нему доступ то получить сможет? Пробовал?


Удаление текста в tkinter
Нужно сделать так, чтобы через время(использую модуль time) сообщения исчезали/удалялись.
Подскажите пожалуйста строку для удаления
обрывок кода:
<code>
def click1():
    number = randint(1, 1)
    for i in cu.execute(f"SELECT cash FROM user WHERE login = '{user_login}'"):
        cashe = i[0]
    if number == 1:
        cu.execute(f"UPDATE user SET cash = {1 + cashe} WHERE login = '{user_login}'")
        text.insert(INSERT, f"\nВаше число кликов: {cashe}")
        db.commit()
</code>

Для удаления конкретных строк их поля
Text нужно вызвать метод
delete с указанием индексов удаляемых строк. Например, чтобы удалить первую строку:

text.delete(1.0, 2.0)

(удалить от нулевого символа 1-й строки до нулевого символа 2-й строки)
Для удаления последней строки можно использовать текстовые индексы:

text.delete("end-1l", "end")  # end-1l - минус одна строка от конца


"Магазин" не работает
Делаю кликер с функцией апгрейда. Как только начал делать магазин, всё полетело. При нажатии на магазин, открывается новая кнопка И отправляется это:

Вам не хватает
Ваше число кликов: 32
Вам не хватает
Ваше число кликов: 32

Кнопка второй уровень вовсе не работает
<code>
import sqlite3
from random import randint
from tkinter import *
import tkinter as tk
from PIL import ImageTk, Image

global db
global cu
db = sqlite3.connect('server.db')
cu = db.cursor()
window = tk.Tk()

cu.execute("""CREATE TABLE IF NOT EXISTS user (
    login TEXT,
    password TEXT,
    cash INT
)""")
db.commit()

def menu():
    global user_login
    global password_login
    user_login = input('Ваше имя:')
    password_login = input('Ваш пароль:')
    cu.execute(f"SELECT login FROM user WHERE login = '{user_login}'")
    if cu.fetchone() is None:
        cu.execute(f"INSERT INTO user VALUES(?, ?, ?)", (user_login, password_login, 0))
        db.commit()
        text.insert(INSERT, "Регистрация успешна\n")
        text.pack()
        print("Успешно")
    else:
        text.insert(INSERT, f"Добро пожаловать, {user_login}\n")
        text.pack()
        print("Успешно")
        game()

def game():
    text.insert(INSERT, "Чтоб начать игру, нажмите на кнопку ниже\n")
    text.pack()
    tk.Button(window, text="Клик(1 уровень)", command=click1).place(x=200, y=40)
    tk.Button(window, text="Магазин", command=shop).place(x=500, y=40)

def game1():
    text.insert(INSERT, "Чтоб начать игру, нажмите на кнопку ниже\n")
    text.pack()
    tk.Button(window, text="Клик(1 уровень)", command=click1).place(x=200, y=40)
    tk.Button(window, text="Клик(2 уровень)", command=click2).place(x=200, y=70)
    tk.Button(window, text="Магазин", command=shop).place(x=500, y=40)

def click1():
    number = randint(1, 1)
    for i in cu.execute(f"SELECT cash FROM user WHERE login = '{user_login}'"):
        global cashe
        cashe = i[0]
    if number == 1:
        cu.execute(f"UPDATE user SET cash = {1 + cashe} WHERE login = '{user_login}'")
        text.insert(INSERT, f"\n\nВаше число кликов: {cashe}")
        db.commit()

def click2():
    number = randint(1, 1)
    if number == 1:
        cu.execute(f"UPDATE user SET cash = {2 + cashe} WHERE login = '{user_login}'")
        text.insert(INSERT, f"\n\nВаше число кликов: {cashe}")
        db.commit()

def shop():
    tk.Button(window, text="2 уровень").place(x=500, y=65)
    if cashe == 20:
        text.insert(INSERT, f"\nВы купили 2 уровень\nВаше число кликов: {cashe}")
        game1()
    else:
        text.insert(INSERT, f"\nВам не хватает\nВаше число кликов: {cashe}")
    tk.Button(window, text="3 уровень", command=shop).place(x=500, y=90)
</code>

В функции def shop():

def shop():
    tk.Button(window, text="2 уровень").place(x=500, y=65)
    if cashe == 20:
    ...

Сработка if'а возможна только при количестве кликов точно равном 20. Чтобы срабатывало при 20 и больше надо сделать вместо
cashe == 20 -
cashe >= 20.


Помогите доработать функцию разделения списка

def list_slice(lst, count):
    n = len(lst) // count
    grps = (lst[i:i + n] for i in range(0, len(lst), n))
    return list(grps)

list1 = [1, 2, 3, 4, 5, 6]

При вызове функции
list_slice(list1, 2) выводит список
[[1, 2, 3], [4, 5, 6]], но мне нужно это
[[1, 2, 3, 4], [5, 6]]. То есть чтобы длина каждого списка в выведенном списке была 4 элемента.

Вы слайс по списку берете не так, как нужно. Как вариант Ваш пример можно сделать таким образом:

def list_slice(lst, count):
    gen = (lst[count*i:count*(i+1)] for i in range(len(lst) // count + 1))
    return list(filter(bool, gen))

list1 = [1, 2, 3, 4, 5, 6]
print(list_slice(list1, 3))  # [[1, 2, 3, 4], [5, 6]]

В конце использую
filter(bool, func) для отсечения пустых списков


Как сделать значение ''print(key + ':', info[num][key])'' и нового словаря одинаковыми?
Необходимо , чтоб в новый словарь попадали такие же значения, как и при
print(key + ':',info[num][key]).
Что сделал не так? Помогите исправить ошибку

info = {1 : {'name': 'Timur', 'job': 'Teacher'},
    2 : {'name': 'Ruslan', 'job': 'Developer'},
    3 : {'name': 'Rustam', 'job': 'Tester'}}
num = int(input("Какой номер ID? :"))
print('Employee ID:', num)
print()
new_w = {}

for key in info[num]:
    print(key + ':', info[num][key])
print()
for s in info.values():
    new_w.update(**s)
print(new_w)

Вывод:

Какой номер ID? :1
Employee ID: 1

name: Timur
job: Teacher

{'name': 'Rustam', 'job': 'Tester'}

Вы в цикле
for s in info.values(): перебираете все значения словаря
info, подставляя их в
new_w.update(**s). В результате у Вас в
new_w будет всегда значение последнего ключа
info.
Вместо

for s in info.values():
    new_w.update(**s)

нужно использовать тогда

new_w.update(info[num])

или вообще

new_w = info[num]

Тогда код будет примерно таким:

info = {1 : {'name': 'Timur', 'job': 'Teacher'},
    2 : {'name': 'Ruslan', 'job': 'Developer'},
    3 : {'name': 'Rustam', 'job': 'Tester'}}
num = int(input("Какой номер ID? :"))
print('Employee ID:', num)
for key in info[num]:
    print(key + ':', info[num][key])
new_w = {}
new_w.update(info[num])
print(new_w)

Вывод:

Какой номер ID? :1
Employee ID: 1
name: Timur
job: Teacher
{'name': 'Timur', 'job': 'Teacher'}


Преобразование всех словарей из списка Python
У меня есть список словарей с датами. Я написал код функции, которая должна преобразовать дату в нужный мне формат. Если словарь один, то функция работает так как надо:

import datetime
days = {'date': '2010-08-07T19:36:14.672617'}

def all_date(days):
    days['date'] = datetime.datetime.fromisoformat(days['date'])
    day_x = datetime.datetime.strftime(days['date'], '%d.%m.%Y')
    return day_x

print(all_date(days))

Результат:

07.08.2010

Если я подставляю список словарей, то возникает ошибка:

TypeError: list indices must be integers or slices, not str

Я переписал код, но в результате только первая дата:

import datetime
days = [{'date': '2010-08-07T19:36:14.672617'}, {'date': '2015-08-07T19:36:14.672617'}, {'date': '2020-08-07T19:36:14.672617'}]

def all_date(days):
    for i in range(len(days)):
        days[i]['date'] = datetime.datetime.fromisoformat(days[i]['date'])
        day_x = datetime.datetime.strftime(days[i]['date'], '%d.%m.%Y')
        return day_x

print(all_date(days)

Сейчас я получаю:

07.08.2010

А надо получить:

07.08.2010
07.08.2015
07.08.2020

Как это правильно сделать?

Все можно сделать в одну строку, поскольку метод
strftime() применим к объекту
datetime, создаваемый через
datetime.datetime.fromisoformat(). В результате все делается за один проход.
В итоге в цикле подаваемый список словарей обрабатываем строкой с двойным преобразованием
datetime.datetime.fromisoformat(d['date']).strftime('%d.%m.%Y')

import datetime

def all_date(days):
    return [datetime.datetime.fromisoformat(d['date']).strftime('%d.%m.%Y') for d in days]

days = [{'date': '2010-08-07T19:36:14.672617'}, {'date': '2015-08-07T19:36:14.672617'}, {'date': '2020-08-07T19:36:14.672617'}]

print(*all_date(days), sep='\n')

Вывод:

07.08.2010
07.08.2015
07.08.2020


Регулярное выражение. Исключить перенос
У меня есть переменная s

13:50 - 15:20
4. ОСНОВЫ БУХГАЛТЕРСКОГО УЧЕТА
Рулева А.Е.
15:30 - 17:00
5. ИНОСТРАННЫЙ ЯЗЫК В ПРОФЕССИОНАЛЬНОЙ ДЕЯТЕЛЬНОСТИ
Цой А.И./ Гузенко Л.В.
17:10 - 18:40,   18:50 - 20:20
6,7. СИСТЕМНОЕ ПРОГРАММИРОВАНИЕ

Мне нужно время записать в список вот так:

TIME: ['13:50 - 15:20', '15:30 - 17:00', '17:10 - 18:40,   18:50 - 20:20']

Я написал вот такой шаблон выражения:

patterTIME = r'[0-9][0-9]\:[0-9][0-9]\s*\-*\—*\s*[0-9][0-9]\:[0-9][0-9]\,*\s*\s*[0-9]*[0-9]*\:*[0-9]*[0-9]*\s*\-*\—*\s*[0-9]*[0-9]*\:*[0-9]*[0-9]*'

Но, к сожалению, берется перенос и цифра после него. Я получил такой результат:

TIME: ['13:50 - 15:20\n4', '15:30 - 17:00\n5', '17:10 - 18:40,   18:50 - 20:20']

Как исключить перенос(\n) в patter?

Выбирай:

Замени
\s на
[ \t].

Замени
\s на
(?!\r?\n)\s в тех местах, где надо запретить перенос.
И про группу (вероятно, незахватываемую) не забудь, а то там дальше звёздочка.

Используй
^ и
$ если питон поддерживает многострочный режим.


Вывести значения словаря через функции Python
У меня есть список со словарями. Я хочу сделать функции, которые будут как-то обрабатывать значения ключей и выводить их на экран. Я написал код, который работает с одним словарём.

friend = {'name': 'Егор', 'age': 20, 'city': 'Москва'}

def name():
    name_friend = friend['name']
    return name_friend

def age():
    age_friend = friend['age']
    return age_friend

def city():
    city_friend = friend['city']
    return city_friend

def print_friend(name, age, city):
    print(name, age, city)

print_friend(name(), age(), city())

Для списка словарей я переделал функции, но выводится информация только из первого словаря.

friends = [{'name': 'Егор', 'age': 20, 'city': 'Москва'}, {'name': 'Алина', 'age': 25, 'city': 'Казать'}, {'name': 'Дима', 'age': 23, 'city': 'Калининград'}]

def name():
    for name_friend in friends:
        name_friend = name_friend['name']
        return name_friend

def age():
    for age_friend in friends:
        age_friend = age_friend['age']
        return age_friend

def city():
    for city_friend in friends:
        city_friend = city_friend['city']
        return city_friend

def print_friend(name, age, city):
    print(name, age, city)

print_friend(name(), age(), city())

Как правильно сделать чтобы выводилась информация со всех словарей?
Сейчас я получаю

Егор 20 Москва

А надо получить

Егор 20 Москва
Алина 25 Казань
Дима 23 Калиниград

def name(friend):
    name_friend = friend['name']
    return name_friend

def age(friend):
    age_friend = friend['age']
    return age_friend

def city(friend):
    city_friend = friend['city']
    return city_friend

def print_friend(name, age, city):
    print(name, age, city)

for fr in friends:
    print_friend(name(fr), age(fr), city(fr))

Результат:

Егор 20 Москва
Алина 25 Казать
Дима 23 Калининград

Если вдруг почему-то функцию вывода обязательно надо вызывать ровно один раз, то последние четыре строчки заменяются на

def print_friend(friends):
    for fr in friends:
        print(name(fr), age(fr), city(fr))

print_friend(friends)

Результат остается без изменений.


Пересыл сообщений с помощью ID
Как сделать, чтобы бот пересылал сообщения из переписки с ботом другим людям по их ID? Хотелось бы узнать структуру кода, хотя бы один пример.

await bot.forward_message(...)
Параметры:
chat_id: Union[int, str]
Unique identifier for the target chat or username of the target channel (in the format @channelusername)
from_chat_id: Union[int, str]
Unique identifier for the chat where the original message was sent (or channel username in the format @channelusername)
message_id: int
Message identifier in the chat specified in from_chat_id
disable_notification:
Optional[bool]
Sends the message silently. Users will receive a notification with no sound.

Получаете id человека, которому необходимо отправить сообщение (Важно! Бот не может инициировать диалог)
Берете id чата (откуда переслать) и id сообщения
Profit :)

Пример:
<code>
...
await bot.forward_message(chat_id=123123123, from_chat_id=message.chat.id, message_id=message.message_id)
...
</code>


FileExistsError: [Errno 17] File exists: 'C://tgplay/123_business.py'
Я сделал функцию покупки игрового бизнеса. Код:

@bot.message_handler(content_types=['text'])
def get_text_messages(message):
    if message.text == 'Бизнес купить 1':
        # проверка денег(баланса)
        File = open('c://tgplay/{0}_money.py'.format(message.chat.id), 'r')
        isset_money = int(File.read())
        File.close

        if not (str(message.chat.id)+'_business.py') in 'C://tgplay': # если файл не существует:
            if isset_money >= int(5000):
                File = open('C://tgplay/{0}_business.py'.format(message.chat.id), 'x+')
                File.write('BALANCE = 1')
                File.close
                bot.send_message(message.chat.id, 'Вы успешно купили бизнес "Продажа самоделок"!')
                bot.send_message(123, 'Игрок ' + str(message.chat.id) + ' купил бизнес.')
            elif isset_money < int(5000): # если в файле money недостаточно денег:
                bot.send_message(message.chat.id, 'Недостаточно средств!')
        else: # если файл business уже существует:
            bot.send_message(message.chat.id, 'Ошибка. У вас уже есть бизнес!')

Но выдаёт ошибку при тестировании команды, т.е. он не видит
else и всё равно пытается создать файл business.
Где ошибка в моём коде?
UPD: да, я знаю что когда пользователь покупает бизнес, у него не вычитаются деньги

В данной строке кода:

if not (str(message.chat.id)+'_business.py') in 'C://tgplay'

вы делаете проверку на отсутствие подстроки
str(message.chat.id)+'_business.py' в строке
'C://tgplay'. Очевидно это условие будет выполняться всегда для любого значения
message.chat.id.
Если вы хотите проверить существует ли соответствующий файл, то это можно сделать так:

import os.path

if os.path.isfile(f"C://tgplay/{message.chat.id}_business.py"):
    ...

чтобы проверить, что файл не существует:

if not os.path.isfile(f"C://tgplay/{message.chat.id}_business.py"):
    ...


ошибка Traceback (most recent call last): File "C:
библиотека pyautogui не хочет нормально работать и выдает ошибки

import pyautogui
import time
i = 1
while i < 1000:
    i = i + 1
time.sleep(5)
pyautogui.moveTo(453, 1012)
pyautogui.click()
pyautogui.write('Hello world!', interval=0.1)
pyautogui.press('enter')

вот весь код ошибки

Traceback (most recent call last):
  File "C:\Users\ПК\Desktop\spam.py", line 1, in <module>
    import pyautogui
  File "C:\Users\ПК\AppData\Roaming\Python\Python37\site-packages\pyautogui\__init__.py", line 221, in <module>
    locateOnWindow.__doc__ = pyscreeze.locateOnWindow.__doc__
AttributeError: module 'pyscreeze' has no attribute 'locateOnWindow'

код писался в висуал студио ,а в качестве компилятора использовал Thonny

Установите модули
<code>
pyscreeze
pymsgbox
pytweening
</code>
Если не помогло возможно у вас не верная версия python. Используйте 3.8


Как сделать значение ''print(key + ':', info[num][key])'' и нового словаря одинаковыми

info = {1 : {'name': 'Timur', 'job': 'Teacher'},
        2 : {'name': 'Ruslan', 'job': 'Developer'},
        3 : {'name': 'Rustam', 'job': 'Tester'}}
num = int(input("Какой номер ID? :"))
print('Employee ID:', num)
print()
new_w = {}

for key in info[num]:
    print(key + ':', info[num][key])
print()
for s in info.values():
    new_w.update(**s)
print(new_w)

Какой номер ID? :1
Employee ID: 1

name: Timur
job: Teacher

{'name': 'Rustam', 'job': 'Tester'}

Понять ваш вопрос можно лишь выполнив код из вопроса.
А именно:

при любом введенном
num, в словаре
new_w оказывается
только последняя запись из словаря
info. Почему так происходит?

Если распечатать содержимое словаря
new_w на каждом шаге цикла - становится более понятно, что происходит:

In [134]: for s in info.values():
     ...:     new_w.update(**s)
     ...:     print(new_w)
{'name': 'Timur', 'job': 'Teacher'}
{'name': 'Ruslan', 'job': 'Developer'}
{'name': 'Rustam', 'job': 'Tester'}

По причине одинаковых ключей (
name и
job) во всех записях исходного словаря,
dict.update() честно обновляет значения и после последнего шага цикла в них всегда будут значения из последней записи
info.
В данном ответе я ответил на вопрос "почему так происходит". В вашем вопросе вы нигде не упомянули какой результат вы хотите получить и из вашего кода это тоже непонятно. Поэтому советую вам открыть новый вопрос с примером входных данных и результата, который вы хотите получить если вам интересно как исправить код.
PS также настоятельно рекомендую вам ознакомиться с тем:

как правильно задавать вопросы
как создать минимальный, самодостаточный и воспроизводимый пример


Python. Выполнение условия при совпадении одного из значений в файле
помогите реализовать подобие игнор-листа для бота:
Есть список, скажем, .txt с id пользователей в игнор-листе. Необходимо, чтобы выполнялась подобная команда:
<code>
if message.from_id != *все id пользователей в игнор-списке*:
    send.message('hello')
else:
    continue
</code>
Рассмотрю также варианты с таблицами.

Для этого существует оператор
in.

>>> 5 in [1, 8, 4, 5]
True
>>> 6 in [1, 8, 4, 5]
False
>>> 5 not in [1, 8, 4, 5]
False

В вашем случае:

if message.from_id not in [123, 456, 789]:
    send.message('hello')
else:
    continue

Если значения в текстовом файле, одно значение на строку, то сначала нужно прочитать файл, и перевезти текст в каждой строке в тот формат, который нужен вам. К примеру если значения, это числа, то:

with open('ignore.txt') as f:
    lines = f.readlines()

ids = map(int, lines)

...

if message.from_id not in ids:
    send.message('hello')
else:
    continue


Вывести таблицу умножения
В задание указано, сделать таблицу в 2 ряда, с 1 до 5 и 6 до 10. Код работает, но преподаватель дал задание, чтобы я оптимизировал без 2ой части кода. Благодарю Вас.
<code>
 for i in range(1, 11):
    for j in range(1, 6):
        print(f'{j} * {i:>2} = {i * j:>2}', end=' '*3)
    print()
print()
for i in range(1, 11):
    for j in range(6, 11):
        print(f'{j} * {i:>2} = {i * j:>2}', end=' '*3)
    print()

</code>

Можно просто организовать ещё один цикл сверху, чтобы не повторять код.
<code>
step = 5
for row in range(1, 11, step):
    for i in range(1, 11):
        for j in range(row, row + step):
            print(f'{j} * {i:>2} = {i * j:>2}', end=' '*3)
        print()
    print()
</code>


Воспроизведение звука, запакованного в .qrc
Нужен звук на нажатие клавиш, из опробованных библиотек остановился на
pyglet, шустрая и отлично работает с одновременным воспроизведением. Однако после запаковки ресурсов в
.qrc файл, оказалось что она, по всей видимости, не умеет работать в таком формате и выдаёт ошибку
OSError: [Errno 22] Invalid argument: ':sound/type.wav'.
С подключением и файлами ресурсов всё в порядке, изображения и гифки работают нормально.
Какие есть варианты решения этой проблемы? Не хотелось бы иметь дополнительные файлы с дистрибутивом, поэтому хочу запаковать.
Насколько я понял,
.qrc переводит файлы в двоичный код, однако во всей информации, что я нарыл об этой системе, она использовалась исключительно для изображений.

import pyglet
import qrc_resources

sound = ':sound/type.mp3'
song = pyglet.media.load(sound, streaming=False)
song.play()

<RCC>
  <qresource prefix="sound">
    <file>type.mp3</file>
  </qresource>
</RCC>

Как выяснилось,
pyglet действительно не может работать с запакованными в
rcc данными. Выход из этой ситуации - распаковывать содержимое во временную папку перед использованием.

temp_dir = tempfile.mkdtemp()
    sound_data = QtCore.QResource(sound).data()
    sound_name = sound.split("/")[-1]
    sound_path = os.path.join(temp_dir, sound_name)

    with open(sound_path, "wb") as f:
        f.write(sound_data)

Теперь можно подключать в
pyglet переменную
sound_path.


Как сделать следующее: password Password pAssword paSsword pasSword passWpord и тд?
Вообщем, как я уже написал в теме вопроса, я хочу чтоб каждая буква по очереди стала заглавной.
У меня были идеи, как сделать это всё, при помощи слайсов и капиталайза, каждый раз при слайсе сохранять в переменную удаленную часть, а после капиталайза просто соединять их обратно. Но что-то пошло не так.
У меня так и не получилось, надеюсь кто-то сможет мне помочь.

Попробуйте так:

res = [word] + [word[:i] + word[i:].capitalize()  for i in range(1, len(word))]

Результат:

In [108]: res
Out[108]:
['password',
 'pAssword',
 'paSsword',
 'pasSword',
 'passWord',
 'passwOrd',
 'passwoRd',
 'passworD']


Работа с файлами из быстрого доступа
В windows в проводнике есть раздел
быстрый доступ как я могу обратиться к файлам из быстрого доступа? Они же по сути там не хранятся, а просто указывают путь на файл. Как мне получить эти пути к файлам с помущью
python или с помощью системных команд
windows?

на аналогичный вопрос в англоязычном SO в комментариях написали, что для решения отсутствует описание API от производителя (для папки
Quick Access).
Отсюда, я полагаю, лучше решать средствами GUI - через shell.
Вот один из примеров "тупой" VBscript реализации.
Запускаем Проводник, открывая нужный каталог. А затем, подождав полсекунды, получаем список файлов в последнем открытом окне.

'-------------quick_access-list.vbs
'Создаем объект оболочки
Set objShell = CreateObject("WScript.Shell")
' Запускаем Проводник, открывая нужный объект
objShell.Run("explorer.exe shell:::{679f85cb-0220-4080-b29b-5540cc05aab6}")
'выжидаем полсекунды
WScript.Sleep 500

'Создаем объект для управления оболочкой
Set objShellAPP = CreateObject("Shell.Application")
'Найдя последнее окно, обращаемся к его свойству document
With objShellAPP.Windows(objShellAPP.Windows.Count - 1).document
'Проходим в цикле по всем объектам документа окна
    For Each FileItem In .Folder.Items
'Выводим в цикле путь к каждому объекту
       WScript.Echo FileItem.Path
    Next
End With

P.S. Хотелось бы увидеть решение от автора вопроса на Python.
А чтобы получить перечень в консоль, а не в виде множества сообщений подсистемы Windows Script Host, рекомендую запускать скрипт командой:

cscript //nologo quick_access-list.vbs


DISCORD.PY - Как добавить TimeStamp и аватарку отправившего сообщения?
Я хочу сделать так, чтобы при написании команды .say отправлялось вместе с сообщением аватарку автора и время, когда отправлялось сообщение. Это как-то делается через
embed.add_author. Мой код:

@commands.has_permissions( administrator = True )
async def say(ctx, *, content: str):
    title, description= content.split('|')
    embed = discord.Embed(
        title=title,
        description=description,
        color=discord.Colour.dark_blue(),
    )
    await ctx.send(embed=embed)```

Добавить время - параметр
timestamp. В качестве значения указываем время создания текущего сообщения "
.say текст|текст" -
ctx.message.created_at
Добавить аватар можно через метод
set_image() или
set_thumbnail() класса
discord.Embed. В данном случае он будет принимать значение
url, куда мы передадим ссылку на аватар пользователя.
Разница в том, что
set_image() добавляет большую картинку, а
set_thumbnail() маленькую, справа сверху.
Какой нужен вам, выбирайте сами :)
Полный код:

import discord
from discord.ext import commands

bot = commands.Bot(command_prefix = '.', intents = discord.Intents.all())

@bot.command()
async def say(ctx, *, content):
    title, description= content.split('|')
    embed = discord.Embed(
        title=title,
        description=description,
        color=discord.Colour.dark_blue(),
        timestamp=ctx.message.created_at
    )
    embed.set_image(url = ctx.author.avatar_url)
    embed.set_thumbnail(url = ctx.author.avatar_url)
    await ctx.send(embed = embed)

bot.run('TOKEN')


vkAPI. Как получить имена и фамилии всех людей из списка json?
Продолжаю писать бота. Получаю список людей в чёрном списке. Нужно вывести весь список (35 имён, фамилий и их состояние страницы(deactivated)), помогите пожалуйста!
]1
Нужно вывести в формате: Имя Фамилия
весь список

<code>
for user in response["response"]["profiles"]:
    print(f"Имя: {user["first_name"]}")
    print(f"Фамилия: {user["last_name"]}")
    print(f"Аккаунт деактивирован: {"да" if "deactivated" in user else "нет"}")
</code>
Что-то такое?


Поиск целых и вещественных чисел
Всем привет. Помогите, пожалуйста с регулярными выражениями. Пытаюсь составить регулярное выражение, чтобы можно было выбирать целые или дробные числа от 0 до 99, содержащие не более 2 символов после точки.

import re

result = re.findall(r'\d{1,2}\.{1}\d{1,2}\b|\b\d{1,2}\.{0}\b', '10 rew 14.03 ytr 123 dsffd 15.443 er')
print(result)

Данный код выводит ответ

['10', '14.03', '15']

а надо

['10', '14.03']

Не могу понять, как сделать это правильно.

Используйте

import re
pattern = r'(?<!\d)(?<!\d\.)\d{1,2}(?:\.\d{1,2})?(?!\.?\d)'
print(re.findall(pattern, '10 rew 14.03 ytr 123 dsffd 15.443 er', re.ASCII))
# => ['10', '14.03']

См. пример работы программы на Python. Выражение находит

(?<!\d) - место в строке, сразу перед которым нет цифры

(?<!\d\.) - место в строке, сразу перед которым нет последовательности "цифра + точка"

\d{1,2} - одна или две цифры

(?:\.\d{1,2})? - необязательная последовательность "точка + одна или две цифры"

(?!\.?\d) - сразу после текущей позиции не должно быть точки и цифры или просто цифры.

Благодаря флагу
re.ASCII шаблон
\d находит цифры из набора
0-9.
См. пример работы регулярного выражения.
Ещё один вариант выражения с границами слова:

\b(?<!\d\.)\d{1,2}(?:\.\d{1,2})?\b(?!\.\d)

См. пример работы этого регулярного выражения.


Как заставить скрипт сразу же перезапускаться, после выполнения программы?
Программа нужна для бекапа сохранений игры каждые 5 минут. Беру дату и время, записываю в переменную  x, а позже в name. Создаю папку-шаблон и копирую в неё 3 файла сохранений, далее папку переименовываю в значение name и даю перерыв в 5 минут
НО!
Если зациклить выполнение функции, первый круг проходит отлично, на втором вылезает проблема -- папка-шаблон всё так же создаётся, но не переименовывается. И уже на 3 круге выходит ошибка, мол папка savprot уже существует
Ошибки не будет, если перезапускать скрипт ,а не циклить его. Но я не знаю как это сделать

import os
import time
from datetime import datetime
import shutil

x = datetime.now()

def backup():
    name = '{}.{}.{} _ {}.{}.{}'.format(x.day, x.month, x.year, x.hour,
    x.minute, x.second)
    os.mkdir('C:\\WGsav\\savprot')
    shutil.copy2('C:\\ProgramData\\Orbit\\274\\RLD!\\Save001.sav', 'C:\\WGsav\\savprot')
    shutil.copy2('C:\\ProgramData\\Orbit\\274\\RLD!\\Save002.sav', 'C:\\WGsav\\savprot')
    shutil.copy2('C:\\ProgramData\\Orbit\\274\\RLD!\\saves.ini', 'C:\\WGsav\\savprot')
    os.rename('C:\\WGsav\\savprot', 'C:\\WGsav\\{}'.format(name))
    time.sleep(300)

backup()

С циклом:

import os
import time
from datetime import datetime
import shutil
import subprocess

x = datetime.now()

while 1:
    name = '{}.{}.{} _ {}.{}.{}'.format(x.day, x.month, x.year, x.hour,
    x.minute, x.second)
    os.mkdir('C:\\WGsav\\savprot')
    shutil.copy2('C:\\ProgramData\\Orbit\\274\\RLD!\\Save001.sav', 'C:\\WGsav\\savprot')
    shutil.copy2('C:\\ProgramData\\Orbit\\274\\RLD!\\Save002.sav', 'C:\\WGsav\\savprot')
    shutil.copy2('C:\\ProgramData\\Orbit\\274\\RLD!\\saves.ini', 'C:\\WGsav\\savprot')
    os.rename('C:\\WGsav\\savprot', 'C:\\WGsav\\{}'.format(name))
    time.sleep(300)

Используйте модуль subprocess.
<code>
import subprocess

p = subprocess.Popen(['python3', 'code.py'], start_new_session=True)
</code>
Таким образом, по завершению программа будет заново запускать сама себя.


Вычесть один список строк из другого. Python
Даны два списка строк:

weekly_schedule = ['14:00 - 15:30\n4. ФИЗИЧЕСКАЯ КУЛЬТУРА', 'Пучкин А.В..', '15:40 - 17:10\n5. ПРАВОВОЕ ОБЕСПЕЧЕНИЕ ПРОФЕССИОНАЛЬНОЙ ДЕЯТЕЛЬНОСТИ\n', 'Кудряшова В.А.', '6. Н/Б']

name = ['Пучкин А.В..', 'Кудряшова В.А.']

Мне необходимо получить из них разницу (weekly_schedule - name), чтобы получилось:

['14:00 - 15:30\n4. ФИЗИЧЕСКАЯ КУЛЬТУРА', '15:40 - 17:10\n5. ПРАВОВОЕ ОБЕСПЕЧЕНИЕ ПРОФЕССИОНАЛЬНОЙ ДЕЯТЕЛЬНОСТИ\n', '6. Н/Б']

Перепробовал кучу методов, ничего не помогло.

Нужно пересобрать список
weekly_schedule с проверкой на вхождение элемента в список
name

weekly_schedule = ['14:00 - 15:30\n4. ФИЗИЧЕСКАЯ КУЛЬТУРА', 'Пучкин А.В..', '15:40 - 17:10\n5. ПРАВОВОЕ ОБЕСПЕЧЕНИЕ ПРОФЕССИОНАЛЬНОЙ ДЕЯТЕЛЬНОСТИ\n', 'Кудряшова В.А.', '6. Н/Б']

name = ['Пучкин А.В..', 'Кудряшова В.А.']

res = [w for w in weekly_schedule if w not in name]

print(res)  # ['14:00 - 15:30\n4. ФИЗИЧЕСКАЯ КУЛЬТУРА', '15:40 - 17:10\n5. ПРАВОВОЕ ОБЕСПЕЧЕНИЕ ПРОФЕССИОНАЛЬНОЙ ДЕЯТЕЛЬНОСТИ\n', '6. Н/Б']


Как решить задачу с помощью цикла for? [закрыт]

Закрыт. Этот вопрос не по теме. Ответы на него в данный момент не принимаются.

 Учебные задания допустимы в качестве вопросов только при условии, что вы пытались решить их самостоятельно перед тем, как задать вопрос. Пожалуйста, отредактируйте вопрос и укажите, что именно вызвало у вас трудности при решении задачи. Например, приведите код, который вы написали, пытаясь решить задачу

Закрыт 2 года назад.

                        Улучшить вопрос

Напишите программу, которая считывает последовательность из 10 целых чисел и определяет является ли каждое из них чётным или нет.
На вход подаётся 10 целых чисел, каждое на отдельной строке.
Программа должна вывести строку «YES», если все чётные и «NO» в ином случае.

Используем сигнальную метку, если встретили нечетное число.
<code>
flag = 'YES'
for _ in range(10):
    a = int(input())
    if a % 2 != 0:
        flag = 'NO'
print(flag)
</code>


Извлечь данные из словаря [закрыт]

Закрыт. Этот вопрос необходимо уточнить или дополнить подробностями. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение.

Закрыт 2 года назад.

                        Улучшить вопрос

Путаюсь с вложенностью данных.
Допустим есть такой массив
<code>
list = [
{'a': 1, 'b': 2, 'c': {'abc': 123, 'def': 456, 'g': {'h': [7, 8, 9]}}}
]
</code>
В нем мне нужно достать данные из последнего списка [7, 8, 9], допустим нужна только цифра 8, как это сделать?

<code>
list[0]['c']['g']['h'][1]
</code>
А вообще идея называть переменные именами, совпадающими с зарезервированными именами наводит на мысль, что книги по Python вы не читаете.


Не поддается While и if-else

Само аутентичное задание длинное и коряво сформулировано на hyperskill, поэтому в моем кратком изложении звучит так:
1.Есть зоопарк, в нем живут 6 животных. Нужно спросить "Please enter the number of the habitat you would like to view: ", к какому по номеру животному хочу пойти (ещё распечатывается схематичное изображение животного). Все это в виде цикла;

Не забыть указать возможность выхода: ввод "exit" должен завершить программу;

Когда программа завершит работу, она должна напечатать: "See you later!"

У меня выводится только сам вопрос и ответ на него((( Пример вывода на прикреплённом изображении.
<code>
# write your code here
animals = [camel, lion, deer, goose, bat, rabbit]
while True:
    viewer = input("Please enter the number of the habitat you would like to view: ")
    if viewer != exit:
        print(animals[viewer])
    else:
        print("See you later!")
        break
</code>


Рекурсивная функция python
Написать рекурсивную функцию для подсчета суммы чисел в списке. Почему не рекурсия не работает ?
<code>
def summ_l(*args):
    summ = 0
    if args[len(args)-1] == args[0]:
        return 1
    return  summ + summ_l(args[len(args)-1])

print(summ_l(42, 24, 15, 18))
</code>

Вот такое решение вам подойдёт?
<code>
def summ_l(n):
    if not n:
        return 0
    return n[0] + summ_l(n[1:])

print(summ_l([42, 24, 15, 18]))
</code>


Требуемый адрес для своего контекста неверен. Python [закрыт]

Закрыт. Этот вопрос не по теме. Ответы на него в данный момент не принимаются.

 Вопрос вызван проблемой, которая больше не воспроизводится, или опечаткой. Хотя похожие вопросы могут быть уместны на этом сайте, решение для этого вопроса вряд ли поможет будущим посетителям. Обычно можно избежать подобных вопросов написанием и исследованием минимальной программы для воспроизведения проблемы до публикации вопроса.

Закрыт 2 года назад.

                        Улучшить вопрос

Смотрел обучающее видео по библиотеке socket питона с применением TCP  и столкнулся с проблемой. Я запускаю отладчик сервера до момента принятия сообщения, сервер готов к приему. Однако после попытки соединения клиентом, у меня вылезает ошибка:

   Traceback (most recent call last):
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2020.3.2\plugins\python-ce\helpers\pydev\pydevd.py", line 1483, in _exec
    pydev_imports.execfile(file, globals, locals)  # execute the script
  File "C:\Program Files\JetBrains\PyCharm Community Edition 2020.3.2\plugins\python-ce\helpers\pydev\_pydev_imps\_pydev_execfile.py", line 18, in execfile
    exec(compile(contents+"\n", file, 'exec'), glob, loc)
  File "C:/Users/*/PycharmProjects/socket/socket_TCP_client.py", line 4, in <module>
    sock.connect(('', 8888))
OSError: [WinError 10049] Требуемый адрес для своего контекста неверен

У автора полностью идентичный код, ошибок не выдает, давность видео 2 года. Я пробовал менять порты и адреса("0.0.0.0", "") и у клиента, и у сервера, однако ошибка во всех случаях одна и та же. Подскажите, пожалуйста, в чем я неправ.
Код сервера:

import socket

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.bind(('127.0.0.1', 8888))
sock.listen(5)

while True:
    try:
        client, addr = sock.accept()
    except KeyboardInterrupt:
        sock.close()
        break
    else:
        result = client.recv(1024)
        client.close()
        print('Message is', result.decode('utf-8'))

Код клиента:

sock = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
sock.connect(('', 8888))
sock.send(b'funny message')
sock.close()

Спасибо

Для
connect адрес должен быть указан, например:

sock.connect(('127.0.0.1', 8888))

Кст, а вот для
bind можно и не указывать, так будет работать:

sock.bind(('', 8888))


Добавление числа к числу после определённого времени [закрыт]

Закрыт. Этот вопрос не по теме. Ответы на него в данный момент не принимаются.

 Учебные задания допустимы в качестве вопросов только при условии, что вы пытались решить их самостоятельно перед тем, как задать вопрос. Пожалуйста, отредактируйте вопрос и укажите, что именно вызвало у вас трудности при решении задачи. Например, приведите код, который вы написали, пытаясь решить задачу

Закрыт 2 года назад.

                        Улучшить вопрос

код:

File = open(filename.txt, 'r')
number = File.read()
File.close

В файле уже есть число,
Нужно чтобы после 300 секунд, в файл добавлялось по единице (1), я пробовал много вариантов, но у меня просто никак не получалось, как будто прям не хочет. (Если вы скажете: а может просто файл не существует? Я отвечу: он существует)
Помогите мне пожалуйста, очень прошу!
Что я пытался делать:

Fille = open(filename.py, "w")
itog = int(number)+1
time.sleep(300)
File.write(str(itog))
File.close

Для начала Вам нужно открыть файл. Для этого нужно выбрать режим открытия файла. Режим
r — это режим только для чтения, а вам нужен режим для чтения и записи (
r+). Затем Вам нужно передать имя файла в виде строки (т.е. заключить его в кавычки).
Для записи можно использовать метод
write. Но нужно не забыть, что любые операции чтения/записи переводят курсор, и нам нужно возвращать его в начало файла. Иногда ещё требуется урезать файл с помощью
truncate, но в Вашем случае размер содержимого не уменьшается, поэтому это не требуется.
Для того чтобы подождать 300 секунд подойдёт функция
sleep.
Пример:

from time import sleep

with open('filename.txt', 'r+') as file:    # Дескриптор с правами на чтение и запись
    while True:                             # Бесконечный цикл
        s = file.read().rstrip()            # Читаем содержимое и удаляем перевод строки
        number = int(s)                     # Преобразуем содержимое в число
        file.seek(0)                        # Переводим курсор в начало файла
        file.write(str(number + 1))         # Записываем новое содержимое
        file.seek(0)                        # Переводим курсор в начало файла
        sleep(300)                          # Ждём 300 секунд


Запуск приложения при включении компьютера
Есть код приложения и я хочу чтобы он запускался при включении компьютера.
Однако не знаю как это правильно сделать, все что я находил в интернете не помогло, помогите пожалуйста.
Вот код приложения:
<code>
import sys
import sqlite3
import os
import random

import requests
import json
import datetime

from PyQt5.uic import *
from PyQt5.QtCore import QTimer, QTime
from PyQt5.QtCore import Qt
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.Qt import QTranslator, QLocale, QLibraryInfo
from PyQt5.Qt import *

#Класс для заставки
class LoadingScreen(QWidget):
    def __init__(self):
        super().__init__()
        self.setFixedSize(845, 595)
        self.setWindowFlags(Qt.WindowStaysOnTopHint | Qt.CustomizeWindowHint | Qt.FramelessWindowHint)

        self.label_animation = QLabel(self)
        self.label_animation.setWindowFlags(Qt.FramelessWindowHint)
        self.movie = QMovie('tut.gif')
        self.label_animation.setMovie(self.movie)

        timer1 = QTimer(self)

        self.startAnimation()
        timer1.singleShot(4000, self.stopAnimation)

        self.show()

    def startAnimation(self):
        self.movie.start()

    def stopAnimation(self):
        self.movie.stop()
        self.close()

class MainWindow(QtWidgets.QMainWindow):
    def __init__(self):
        super().__init__()
        #размер основного окна
        self.resize(845, 535)
        self.setWindowTitle('Unapp')
        self.setFixedSize(QtCore.QSize(845,535))
        #Вызываем класс с заставкой
        self.loading_screen = LoadingScreen()

        self.setStyleSheet("background-color: rgb(245, 45, 45);")

        self.centralwidget = QtWidgets.QWidget()
        self.centralwidget.setObjectName("centralwidget")
        self.setCentralWidget(self.centralwidget)

# Content horizontalLayout_2
        self.Content = QtWidgets.QFrame(self.centralwidget)
        self.Content.setStyleSheet("background-color: rgb(255, 255, 255);")

        self.Content.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.Content.setFrameShadow(QtWidgets.QFrame.Raised)
        self.Content.setObjectName("Content")
        self.horizontalLayout_2 = QtWidgets.QHBoxLayout(self.Content)
        self.horizontalLayout_2.setContentsMargins(0, 0, 0, 0)
        self.horizontalLayout_2.setSpacing(0)
        #виджет слева
        self.frame_left_menu = QtWidgets.QFrame(self.Content)
        self.frame_left_menu.setMinimumSize(QtCore.QSize(45, 0))

        self.frame_left_menu.setStyleSheet("background-color: rgb(255, 255, 255); border: 0px solid; ")

        self.frame_left_menu.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_left_menu.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_left_menu.setObjectName("frame_left_menu")
        self.verticalLayout_3 = QtWidgets.QVBoxLayout(self.frame_left_menu)
        self.verticalLayout_3.setContentsMargins(0, 0, 0, 0)

        self.frame_top_menus = QtWidgets.QFrame(self.frame_left_menu)
        self.frame_top_menus.setFrameShape(QtWidgets.QFrame.NoFrame)
        self.frame_top_menus.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_top_menus.setObjectName("frame_top_menus")
        #указываем вертикальное выравнивание
        self.verticalLayout_4 = QtWidgets.QVBoxLayout(self.frame_top_menus)
        self.verticalLayout_4.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_4.setSpacing(10)

        #Кнопка с домиком(главной страницей)
        self.btn_page_1 = QtWidgets.QPushButton("", self.frame_top_menus)
        self.btn_page_1.setIcon(QIcon('дом.png'))
        self.btn_page_1.setIconSize(QSize(45,45))
        self.btn_page_1.setMinimumSize(QtCore.QSize(0, 40))

        self.btn_page_1.setStyleSheet('border: 0px solid red;')

        self.btn_page_1.setObjectName("btn_page_1")
        self.verticalLayout_4.addWidget(self.btn_page_1)
        #Кнопка с заметками
        self.btn_page_2 = QtWidgets.QPushButton("", self.frame_top_menus)
        self.btn_page_2.setIcon(QIcon('калькулятор.png'))
        self.btn_page_2.setIconSize(QSize(45,45))
        self.btn_page_2.setMinimumSize(QtCore.QSize(0, 40))

        self.btn_page_2.setStyleSheet('border: 0px solid red;')
        self.btn_page_2.setObjectName("btn_page_2")

        self.verticalLayout_4.addWidget(self.btn_page_2)

        #кнопка с калькулятором
        self.btn_page_3 = QtWidgets.QPushButton("", self.frame_top_menus)
        self.btn_page_3.setIcon(QIcon('заметка1.png'))
        self.btn_page_3.setIconSize(QSize(45,45))
        self.btn_page_3.setMinimumSize(QtCore.QSize(0, 40))

        #Кнопка с текстовым редактором
        self.btn_page_4 = QtWidgets.QPushButton('', self.frame_top_menus)
        self.btn_page_4.setIcon(QIcon('папочка.png'))
        self.btn_page_4.setIconSize(QSize(45, 45))
        self.btn_page_4.setMinimumSize(QtCore.QSize(0, 40))

        timer = QTimer(self)
        timer.timeout.connect(self.showTime)
        timer.start(1000)

        font1 = QFont('Century Gothic', 13, QFont.Bold)
        self.timewidget = QtWidgets.QLabel()
        self.timewidget.setMinimumSize(QtCore.QSize(45,45))
        self.timewidget.setAlignment(Qt.AlignBottom)
        self.timewidget.setFont(font1)

        self.btn_page_3.setObjectName("btn_page_3")
        self.verticalLayout_4.addWidget(self.btn_page_3)

        self.verticalLayout_3.addWidget(self.frame_top_menus, 0, QtCore.Qt.AlignTop)
        self.horizontalLayout_2.addWidget(self.frame_left_menu)

        self.verticalLayout_4.addWidget(self.btn_page_4)

        self.frame_pages = QtWidgets.QFrame(self.Content)
        self.frame_pages.setFrameShape(QtWidgets.QFrame.StyledPanel)
        self.frame_pages.setFrameShadow(QtWidgets.QFrame.Raised)
        self.frame_pages.setObjectName("frame_pages")
        self.verticalLayout_5 = QtWidgets.QVBoxLayout(self.frame_pages)
        self.verticalLayout_5.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_5.setObjectName("verticalLayout_5")

        self.stackedWidget = QtWidgets.QStackedWidget(self.frame_pages)
        self.stackedWidget.setMinimumSize(QtCore.QSize(800, 535))

        self.stackedWidget.setObjectName("stackedWidget")

#1 страница
        self.page_1 = QtWidgets.QWidget()
        self.page_1.setObjectName("page_1")
        self.verticalLayout_7 = QtWidgets.QVBoxLayout(self.page_1)
        self.verticalLayout_7.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_7.setObjectName("verticalLayout_7")
        #указываем что будет находится на 1 странице
        self.label_1 = QtWidgets.QLabel(self.page_1)
        fontleo = QFont('Century Gothic', 25, QFont.Bold)
        self.label_1.setAlignment(QtCore.Qt.AlignCenter)
        self.label_1.setObjectName("label_1")
        self.verticalLayout_7.addWidget(self.label_1)
#Ленин виджет с пожеланиями
        #self.leo = Example()

        #self.leo.setParent(self.page_1)

#календарь
        self.calendarWidget = QtWidgets.QCalendarWidget(self.page_1)
        self.calendarWidget.setWindowFlag(Qt.FramelessWindowHint)
        self.calendarWidget.setEnabled(True)
        self.calendarWidget.setGeometry(QtCore.QRect(0, 154, 800, 381))
        self.calendarWidget.setFixedSize(QtCore.QSize(800, 380))
        self.calendarWidget.setWindowFlags(Qt.FramelessWindowHint)
        font = QtGui.QFont()
        font.setFamily("Century Gothic")
        font.setPointSize(15)
        font.setKerning(False)
        self.calendarWidget.setFont(font)
        self.calendarWidget.setAutoFillBackground(True)
        self.calendarWidget.setGridVisible(False)
        self.calendarWidget.setVerticalHeaderFormat(QtWidgets.QCalendarWidget.NoVerticalHeader)
        self.calendarWidget.setDateEditEnabled(False)
        self.calendarWidget.setDateEditAcceptDelay(0)
        self.calendarWidget.setObjectName("calendarWidget")
        self.calendarWidget.setStyleSheet(Calendar_StyleSheet)
        self.verticalLayout_7.addWidget(self.calendarWidget)

        #self.main = App()

        #self.main.w_root.setParent(self.page_1)
        #self.main.w_root.setGeometry(QtCore.QRect(430,0,345,153))

        #self.main.setMaximumSize(QtCore.QSize(345, 165))
        #self.main.move(455,0)

        self.stackedWidget.addWidget(self.page_1)

        #2 страница
        self.page_2 = QtWidgets.QWidget()
        self.page_2.setObjectName("page_2")
        self.verticalLayout_6 = QtWidgets.QVBoxLayout(self.page_2)
        self.verticalLayout_6.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_6.setObjectName("verticalLayout_6")
        #указываем что будет находиться в 2 странице

        font = QtGui.QFont()
        font.setPointSize(40)
        font.setFamily("Century Gothic")
        font.setKerning(True)

        #self.CAL = Calculator(
            #title='Calculator App : Made by Rahul',
            #parent=None,
            #uiFile='form/ui_calculator.ui')
        #self.verticalLayout_6.addWidget(self.CAL.window)

        self.stackedWidget.addWidget(self.page_2)
        #3 страница
        self.page_3 = QtWidgets.QWidget()
        self.page_3.setStyleSheet('background-color: #336699;')
        self.page_3.setObjectName("page_3")
        #Заметки
        #self.view = AppView()

        # instance of the controller
        #self.ctrl = AppController(view=self.view)

        self.verticalLayout_8 = QtWidgets.QVBoxLayout(self.page_3)

        #self.verticalLayout_8.addWidget(self.view)

        self.verticalLayout_8.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_8.setObjectName("verticalLayout_8")

        self.stackedWidget.addWidget(self.page_3)

# page_4 verticalLayout_9
        self.page_4 = QtWidgets.QWidget()
        self.page_4.setObjectName('page_4')
        #Текстовый редактор
        font2 = QtGui.QFont()
        font2.setPointSize(12)
        font2.setFamily("Century Gothic")
        #self.gg = Main()
        #self.gg.setFont(font2)

        self.verticalLayout_9 = QtWidgets.QVBoxLayout(self.page_4)

        #self.verticalLayout_9.addWidget(self.gg)

        self.verticalLayout_9.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout_9.setSpacing(0)
        self.verticalLayout_9.setObjectName('verticalLayout_9')

        self.stackedWidget.addWidget(self.page_4)

        self.verticalLayout_5.addWidget(self.stackedWidget)
        self.horizontalLayout_2.addWidget(self.frame_pages)
        self.stackedWidget.setCurrentIndex(0)

# verticalLayout  centralwidget
        self.verticalLayout = QtWidgets.QVBoxLayout(self.centralwidget)
        self.verticalLayout.setContentsMargins(0, 0, 0, 0)
        self.verticalLayout.setSpacing(0)
# verticalLayout.addWidget(self.Content)
        self.verticalLayout.addWidget(self.Content)

        #Нажатие на дом
        self.btn_page_1.clicked.connect(
            lambda: self.stackedWidget.setCurrentWidget(self.page_1))
        #Нажатие на заметки
        self.btn_page_2.clicked.connect(
            lambda: self.stackedWidget.setCurrentWidget(self.page_2))
        #Нажатие на погоду
        self.btn_page_3.clicked.connect(
            lambda: self.stackedWidget.setCurrentWidget(self.page_3))

        self.btn_page_4.clicked.connect(
            lambda: self.stackedWidget.setCurrentWidget(self.page_4))

        self.frame_left_menu.installEventFilter(self)
        self.verticalLayout_3.addWidget(self.timewidget, 0, QtCore.Qt.AlignBottom)
    #Функция для добавления приложения в автозапуск Windows
        def add_to_startup(file_path=""):
            if file_path == "":
                file_path = os.path.dirname(os.path.realpath(__file__))
            bat_path = r'C:\Users\%s\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup' % (USER_NAME)
            with open(bat_path + '\\' + "open.bat", "w+") as bat_file:
                bat_file.write(r'start "" %s' % file_path)

# +++ vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv
            with open(bat_path + '\\' + "open.bat", "r") as bat_file:
                _file = bat_file.read()
            print(_file)
     #Функция для показа текущего времени
    def showTime(self):
        current_time = QtCore.QTime.currentTime()
        label_time = current_time.toString('hh:mm')
        self.timewidget.setText(label_time)

Calendar_StyleSheet = '''
/* Верхняя область навигации                            */
#qt_calendar_navigationbar {
    background-color: #6d86a4;
    min-width: 800px;
    max-width: 800px;
    min-height: 35px;
    max-height: 35px;
}

/*  Кнопка последнего месяца и кнопка следующего месяца */
#qt_calendar_prevmonth, #qt_calendar_nextmonth {
    border: none;                     /* убрать границу */
    margin-top: 0px;
    color: white;
    min-width: 30px;
    max-width: 30px;
    min-height: 30px;
    max-height: 30px;
    border-radius: 10px;            /* выглядит как эллипс */
    font-weight: bold;              /* шрифт полужирный    */
    qproperty-icon: none;
    background-color: transparent; /* Цвет фона прозрачный */
}

#qt_calendar_prevmonth {
    qproperty-text: "<";         /* Изменить текст кнопки  */
}
#qt_calendar_nextmonth {
    qproperty-text: ">";
}
#qt_calendar_prevmonth:hover, #qt_calendar_nextmonth:hover {
    background-color: rgba(225, 225, 225, 100);
}
#qt_calendar_prevmonth:pressed, #qt_calendar_nextmonth:pressed {
    background-color: rgba(235, 235, 235, 100);
}

/*  год, месяц                                                */
#qt_calendar_yearbutton, #qt_calendar_monthbutton {
    color: white;
    margin: -1px;
    min-width: -1px;
    border-radius: 15px;
    background-color: #6d86a4;
}
#qt_calendar_yearbutton:hover, #qt_calendar_monthbutton:hover {
    background-color: rgba(225, 225, 225, 100);
}
#qt_calendar_yearbutton:pressed, #qt_calendar_monthbutton:pressed {
    background-color: rgba(235, 235, 235, 100);
}

/* Поле ввода года                                                        */
#qt_calendar_yearedit {
    min-width: 85px;
    color: white;
    background: transparent;         /* Сделать фон окна ввода прозрачным */
}
#qt_calendar_yearedit::up-button {   /* Кнопка вверх                      */
    width: 25px;
    subcontrol-position: right;
}
#qt_calendar_yearedit::down-button { /* Кнопка вниз     */
    width: 25px;
    subcontrol-position: left;
}

/* меню выбора месяца                                          */
CalendarWidget_QToolButton_QMenu {
     background-color: white;
}

CalendarWidget_QToolButton_QMenu_item {
    padding: 10px;
}
CalendarWidget_QToolButton_QMenu_item_selected_enabled {
    background-color: rgb(230, 230, 230);
    selection-color: rgb(45, 86, 100);
    selection-background-color: rgb(205, 217, 226);
}
CalendarWidget_QToolButton_menu-indicator {
    subcontrol-position: right center;
    image: none;
}

/* ниже календарной формы */
#qt_calendar_calendarview {
    outline: 0px;                                 /* Удалить выделенную пунктирную рамку */
    selection-background-color: #6d86a4;
}
'''

if __name__ == '__main__':
    import sys

    app = QtWidgets.QApplication(sys.argv)
    app.setWindowIcon(QtGui.QIcon('Иконка_Горы.png'))
    app1 = QtWidgets.QApplication([])

    PATH_LANGUAGE = r'C:/python2/Lib/site-packages/PyQt5/Qt5/translations/qtbase_ru.qm'
    translator = QTranslator(app1)
    translator.load(PATH_LANGUAGE, "ru_RU")
    app.installTranslator(translator)
    w = MainWindow()
    w.show()
    sys.exit(app.exec_())
</code>

Как вариант, можно проверять наличие только что запущенного скрипта в папке автозагрузки, и если его там нет - копировать туда.

import os, sys

Thisfile = sys.argv[0] # Полный путь к файлу, включая название и расширение
Thisfile_name = os.path.basename(Thisfile) # Название файла без пути
user_path = os.path.expanduser('~') # Путь к папке пользователя

if not os.path.exists(f"{user_path}\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup\\{Thisfile_name}"):
        os.system(f'copy "{Thisfile}" "{user_path}\\AppData\\Roaming\\Microsoft\\Windows\\Start Menu\\Programs\\Startup"')
        print(f'{Thisfile_name} добавлен в автозагрузку')

Но это будет работать только в случае, если у вас программа собрана в .exe
В противном случае, вам помимо самой программы, в папке автозагрузки нужно будет создать .bat или .cmd файл, который уже будет запускать скрипт в интерпретаторе.

@echo off
python PythonCode.py
exit


Как преобразовать строку во время?
Как с помощью
strptime преобразовать строку вида
'2021-08-05T19:34:08+03:00' в формат
datetime?

Пример:
<code>
In [73]: from datetime import datetime as DT

In [74]: DT.strptime("2021-08-05T19:34:08+03:00", "%Y-%m-%dT%H:%M:%S%z")
Out[74]: datetime.datetime(2021, 8, 5, 19, 34, 8, tzinfo=datetime.timezone(datetime.timedelta(seconds=10800)))
</code>


Как построить таблицу из списка?
Есть список из 56 элементов.
Как сделать из него таблицу из 7 столбцов, чтобы каждый элемент списка ложился в свой столбец?


Отрисовка нескольких объектов Canvas
Пробую создать несколько квадратов в сетке 4×4 посредством
Canvas().

field = [
[0,0,0,0],
[0,0,0,0],
[0,0,0,0],
[0,0,0,0]] #двумерный массив
root = Tk() # инициализируем tk
root.geometry('1080x1920')
rect = Canvas(root) # инициализируем класс Canvas()
y_rt = 400 # координаты x, y для постановки фигур методом place()
for i in field: # итерируем по столбцам матрицы
    y_rt+=50
    x_rt = 100
        for j in i: # итерируем по строкам матрицы

            rect.create_rectangle(0, 0, 220, 220, fill = 'black')
            rect.place(x = x_rt, y = y_rt)
                x_rt+=50

Но отрисовывает, по-видимому, только последний квадрат.

Canvas надо размещать один раз.
Квадраты рисовать сразу по заданным координатам.

<code>
from tkinter import *

field = [
[0,0,0,0],
[0,0,0,0],
[0,0,0,0],
[0,0,0,0]] #двумерный массив

root = Tk() # инициализируем tk
root.geometry('1080x1920')

rect = Canvas(root) # инициализируем класс Canvas()
rect.pack(fill=BOTH, expand=True)  # <<< размещаем канвас

y_rt = 200 # координаты x, y для постановки фигур
for i in field: # итерируем по столбцам матрицы
    y_rt += 50
    x_rt  = 100
    for j in i: # итерируем по строкам матрицы
        rect.create_rectangle(x_rt, y_rt, x_rt+45, y_rt+45, fill='black', outline='green', width=2)  # <<< сразу задаём нужные координаты
        x_rt += 50

root.mainloop()
</code>


Перенос sql в телеграм
Учусь sql3 (точнее основам). Решил перенести данный код в телеграмм (использую TelegramBotApi) В итоге, хотелось бы знать, как можно изменить
input, ну, это ведь телеграмм, тут не нужна повторная авторизация. Нужно вставить
chat.id?

import sqlite3
from random import randint

global db
global cu
db = sqlite3.connect('server.db')
cu = db.cursor()

cu.execute("""CREATE TABLE IF NOT EXISTS user (
#логин пароль убрал
    win INT,
    cash INT
)""")
db.commit()

user_login = input('Ваше имя:') #Тот самый input
password_login = input('Ваш пароль:')
cu.execute(f"SELECT login FROM user WHERE login = '{user_login}'")
if cu.fetchone() is None:
    cu.execute(f"INSERT INTO user VALUES(?, ?, ?, ?)", (user_login, password_login, 0, 0))
    db.commit()

Вставить нужно
from_user.id, потому что у каждого пользователя идентификатор индивидуальный.
Пример кода:

import telebot
import sqlite3

bot = telebot.TeleBot('TOKEN')

# Подключаемся к Базе Данных
db = sqlite3.connect('server.db')
cu = db.cursor()

# Создаём таблицу если она ещё не создана
cu.execute("""CREATE TABLE IF NOT EXISTS user (
    user_id INT,
    win INT,
    cash INT
)""")
db.commit()

# Создаём функцию, которая срабатывает при любом входящем сообщении
@bot.message_handler(func=lambda m: True)
def echo_all(message):
    # Если пользователя в БД нету
    cu.execute(f"SELECT * FROM user WHERE user_id={message.from_user.id}")
    if cu.fetchone() is None:
        # Сохраняем его ID в БД
        cu.execute(f"INSERT INTO user VALUES(?, ?, ?)", (message.from_user.id, 0, 0))
        db.commit()

        bot.send_message(message.chat.id, f'{message.from_user.first_name}, я успешно зарегистрировал тебя в Базе Данных!')

# Запускаем бота
bot.polling(none_stop=True)


В чём заключается ошибка? Python
Прописываю данный код и выдаёт ошибку
<code>
class MainWindow(QDialog):
    def __init__(self):
        super(MainWindow, self).__init__()

        loadUi("main.ui", self)

        self.settings_hm.clicked.connect(self.setting)

        self.porydk = 1

class Settings_l(QDialog):
    def __init__(self):
        super(Settings_l, self).__init__()
        loadUi("settings.ui", self)

        ...

    def new(self):

        self.porydk += 1

        self.groupBox_2 = QGroupBox(self.scrollAreaWidgetContents)
        self.groupBox_2.setMinimumSize(QSize(411, 251))
        self.groupBox_2.setMaximumSize(QSize(411, 251))
        self.groupBox_2.setCheckable(False)
        self.groupBox_2.setStyleSheet(u"border: 2px solid #FDD2BF;\n"
"border-radius: 10;")
        self.groupBox_2.setObjectName(f"groupBox_{self.x}")
</code>
Ошибка - AttributeError: 'Settings_l' object has no attribute 'porydk'
Как это исправить?

Не знаю для чего вам это нужно, но если это свойство нужно в
MainWindow, можно его сделать свойством класса
Пример:

class MainWindow(QDialog):
    porydk = 1  # Свойство класса

    def __init__(self):
        super(MainWindow, self).__init__()

        loadUi("main.ui", self)

        self.settings_hm.clicked.connect(self.setting)

class Settings_l(QDialog):
    def __init__(self):
        super(Settings_l, self).__init__()
        loadUi("settings.ui", self)

        ...

    def new(self):
        # Обращаемся и меняем свойство класса
        MainWindow.porydk += 1

        self.groupBox_2 = QGroupBox(self.scrollAreaWidgetContents)
        self.groupBox_2.setMinimumSize(QSize(411, 251))
        self.groupBox_2.setMaximumSize(QSize(411, 251))
        self.groupBox_2.setCheckable(False)
        self.groupBox_2.setStyleSheet(u"border: 2px solid #FDD2BF;\n"
                                      "border-radius: 10;")
        self.groupBox_2.setObjectName(f"groupBox_{self.x}")

Но мне кажется, что это свойство должно было быть в конструкторе
Settings_l:

class MainWindow(QDialog):
    def __init__(self):
        super(MainWindow, self).__init__()

        loadUi("main.ui", self)

        self.settings_hm.clicked.connect(self.setting)

class Settings_l(QDialog):
    def __init__(self):
        super(Settings_l, self).__init__()
        loadUi("settings.ui", self)

        self.porydk = 1
        ...

    def new(self):
        self.porydk += 1

        self.groupBox_2 = QGroupBox(self.scrollAreaWidgetContents)
        self.groupBox_2.setMinimumSize(QSize(411, 251))
        self.groupBox_2.setMaximumSize(QSize(411, 251))
        self.groupBox_2.setCheckable(False)
        self.groupBox_2.setStyleSheet(u"border: 2px solid #FDD2BF;\n"
"border-radius: 10;")
        self.groupBox_2.setObjectName(f"groupBox_{self.x}")


Как перейти в предыдущие окно
При переходе во 2 окно все хорошо, но когда надо вернуться назад, вылезает ошибка
<code>
from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow, QStackedWidget

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(356, 300)
        MainWindow.setMinimumSize(QtCore.QSize(336, 272))
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(80, 90, 161, 61))
        self.pushButton.setMinimumSize(QtCore.QSize(161, 61))
        self.pushButton.setObjectName("pushButton")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 356, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "Вперед"))

class Ui_MainWindow2(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(336, 272)
        MainWindow.setMinimumSize(QtCore.QSize(336, 272))
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(100, 90, 141, 61))
        self.pushButton.setObjectName("pushButton")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 336, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "Назад"))

class MainWindow(QMainWindow,Ui_MainWindow):
    def __init__(self, parent=None):
        super(MainWindow, self).__init__(parent)
        self.setupUi(self)

        self.pushButton.clicked.connect(self.forward)

        self.MainWindow2 = MainWindow2(self)

    def forward(self):
        self.MainWindow2.show()
        windows.hide()

class MainWindow2(QMainWindow,Ui_MainWindow2):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setupUi(self)

        self.pushButton.clicked.connect(self.back)

        self.MainWindow = MainWindow(self)

    def back(self):
        self.MainWindow.show()
        windows.hide()

if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)
    startmenu_window = MainWindow()
    windows = QStackedWidget()

    windows.addWidget(startmenu_window)
    windows.show()
    sys.exit(app.exec_())
</code>

Сделал общее окно с
QStackedWidget, на которое поместил оба виджета из вопроса. А чтобы было переключение перед окнами по кликам на кнопки соединил сигнал
clicked к методу
QStackedWidget.setCurrentWidget
Пример:

...
class MainWindow1(QMainWindow,Ui_MainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setupUi(self)

class MainWindow2(QMainWindow,Ui_MainWindow2):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setupUi(self)

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        window1 = MainWindow1()
        window2 = MainWindow2()

        stacked = QStackedWidget()
        stacked.addWidget(window1)
        stacked.addWidget(window2)

        window1.pushButton.clicked.connect(lambda: stacked.setCurrentWidget(window2))
        window2.pushButton.clicked.connect(lambda: stacked.setCurrentWidget(window1))

        self.setCentralWidget(stacked)

if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)

    mw = MainWindow()
    mw.show()

    sys.exit(app.exec_())

Весь код:

from PyQt5 import QtCore, QtGui, QtWidgets
from PyQt5.QtWidgets import QApplication, QMainWindow, QStackedWidget

class Ui_MainWindow(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(356, 300)
        MainWindow.setMinimumSize(QtCore.QSize(336, 272))
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(80, 90, 161, 61))
        self.pushButton.setMinimumSize(QtCore.QSize(161, 61))
        self.pushButton.setObjectName("pushButton")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 356, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "Вперед"))

class Ui_MainWindow2(object):
    def setupUi(self, MainWindow):
        MainWindow.setObjectName("MainWindow")
        MainWindow.resize(336, 272)
        MainWindow.setMinimumSize(QtCore.QSize(336, 272))
        self.centralwidget = QtWidgets.QWidget(MainWindow)
        self.centralwidget.setObjectName("centralwidget")
        self.pushButton = QtWidgets.QPushButton(self.centralwidget)
        self.pushButton.setGeometry(QtCore.QRect(100, 90, 141, 61))
        self.pushButton.setObjectName("pushButton")
        MainWindow.setCentralWidget(self.centralwidget)
        self.menubar = QtWidgets.QMenuBar(MainWindow)
        self.menubar.setGeometry(QtCore.QRect(0, 0, 336, 21))
        self.menubar.setObjectName("menubar")
        MainWindow.setMenuBar(self.menubar)
        self.statusbar = QtWidgets.QStatusBar(MainWindow)
        self.statusbar.setObjectName("statusbar")
        MainWindow.setStatusBar(self.statusbar)

        self.retranslateUi(MainWindow)
        QtCore.QMetaObject.connectSlotsByName(MainWindow)

    def retranslateUi(self, MainWindow):
        _translate = QtCore.QCoreApplication.translate
        MainWindow.setWindowTitle(_translate("MainWindow", "MainWindow"))
        self.pushButton.setText(_translate("MainWindow", "Назад"))

class MainWindow1(QMainWindow,Ui_MainWindow):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setupUi(self)

class MainWindow2(QMainWindow,Ui_MainWindow2):
    def __init__(self, parent=None):
        super().__init__(parent)
        self.setupUi(self)

class MainWindow(QMainWindow):
    def __init__(self):
        super().__init__()

        window1 = MainWindow1()
        window2 = MainWindow2()

        stacked = QStackedWidget()
        stacked.addWidget(window1)
        stacked.addWidget(window2)

        window1.pushButton.clicked.connect(lambda: stacked.setCurrentWidget(window2))
        window2.pushButton.clicked.connect(lambda: stacked.setCurrentWidget(window1))

        self.setCentralWidget(stacked)

if __name__ == '__main__':
    import sys
    app = QApplication(sys.argv)

    mw = MainWindow()
    mw.show()

    sys.exit(app.exec_())


Как разбить строку на блоки по заданному колличеству символов?
Программа запрашивает номер счёта у пользователя. Он вводит
55437490837429498203.
Как сделать, чтобы программа разбила строку на 5 блоков по 4 символа с пробелом как разделитель?
Чтобы получилось
5543 7490 8374 2949 8203

res = " ".join(s[i*4: i*4+4] for i in range(5))

print(res)
# 5543 7490 8374 2949 8203

если длина введенной строки может изменяться:

res = " ".join(s[i*4: i*4+4] for i in range(len(s) // 4))

Если пользователь ввел не только номер счета, но и текст:

import re

input_str = "Visa 5543 7490 8374 2949 8203"
s = re.sub(r"\D", "", input_str)
res = " ".join(s[i*4: i*4+4] for i in range(len(s) // 4))

PS на будущее: не изменяйте суть вопроса если на него уже даны ответы - это инвалидирует ответы.


Создание двух таблиц с неповторяющимися между собой id primary_key в DJANGO ORM
Необходимо создать две таблицы у которых не будут совпадать id в поле primary_key. Например, в таблицу1 мы добавляем новый элемент у которого id будет = 1. Затем в таблицу2 добавляем элемент у которго id будет продолженим последовательности и равен 2. Прочитал, что для этого в SQL есть объект CREATE SEQUENCE, но я не нашёл как можно применить его в Django ORM. Есть ли возможность осущитвить подобную механику в Django?

Обычно когда требуется решить такую задачу - общий автоинкремент,- то используется схема с дополнительной таблицей и триггерная логика.
Вот пример реализации подобной логики в MySQL: fiddle. В других СУБД оно реализуется аналогично.
Как отобразить это на Django - вот даже не спрашивайте...

Ну и в принципе неплохим решением может быть разделение значений генерируемых уникальных ключей. Если СУБД поддерживает не-единичный seed, то одна таблица настраивается на генерирование чётных id, другая соответственно на нечётные. Если же не поддерживает, то весь диапазон значений для типа данных делится пополам (или в некоей пропорции, если прогнозируемое количество записей в таблицах серьёзно различается), и одна начинает генерацию с единицы, а другая с рассчитанного значения. Правда, в обоих случаях никакой последовательности значений во времени даже не прогнозируется.


Как исправить ошибку TypeError: expected string or bytes-like object? [закрыт]

Закрыт. Этот вопрос не по теме. Ответы на него в данный момент не принимаются.

 Вопрос вызван проблемой, которая больше не воспроизводится, или опечаткой. Хотя похожие вопросы могут быть уместны на этом сайте, решение для этого вопроса вряд ли поможет будущим посетителям. Обычно можно избежать подобных вопросов написанием и исследованием минимальной программы для воспроизведения проблемы до публикации вопроса.

Закрыт 2 года назад.

                        Улучшить вопрос

Я написал регулярное выражение для проверки FQDN адресов, однако, оно не работает. Точно такое же регулярное выражение для ip-адресов выше проблем не создает. Я пытался приводить value словаря к строке в условии if/else, но это не помогло.
Полный текст ошибки:

Traceback (most recent call last):
  File "c:\Users\kvvol\Desktop\Pytest\Script.py", line 72, in <module>
    mistakes()
  File "c:\Users\kvvol\Desktop\Pytest\Script.py", line 31, in mistakes
    if(fqdnadd_pat.match(firewall['Исходящий FQDN']) and firewall['Исходящий FQDN'] != None):
TypeError: expected string or bytes-like object

Сам код:

import openpyxl
import re

wb = openpyxl.reader.excel.load_workbook(filename="Zayavka.xlsx")

wb.active = 0
ws = wb.active
firewall = {} #один блок с одним средством защиты

ipadd_pat = re.compile("^((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])(\/([1-9]|[1-2][0-9]|3[0-2]))?\s?(\([Nn][Aa][Tt]\s(([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\))?;\s?){1,}$")
fqdnadd_pat = re.compile("^(([a-zA-Z0-9]+\.?)+\s?\(((([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5])\.){3}([0-9]|[1-9][0-9]|1[0-9]{2}|2[0-4][0-9]|25[0-5]);\s?){1,}\);\s?){1,}$")

def mistakes():
    if (firewall['Сегмент источника'] == firewall['Сегмент назначения']):
        print('Сегмент источника и сегмент назначения совпадать не должны')
    else:
        if(firewall['Адрес/сеть назначения'] == None):
            print('Заполните поле "Адрес/сеть назначения"')

        if(firewall['Исходящий адрес'] != None):
                print('Поле "Исходящий адрес" оставьте пустым')
        elif(firewall['Исходящий IP-адрес/сеть'] == None and firewall['Исходящий адрес'] != None):
                print('Содержимое поля "Исходящий адрес" перенесите в поле "Исходящий IP-адрес/сеть"')

        if(ipadd_pat.match(firewall['Исходящий IP-адрес/сеть']) and firewall['Исходящий IP-адрес/сеть'] != None):
            print("Ip-адреса заполнены корректно")
        else:
            print("Ip-адреса заполнены некорректно")

        if(fqdnadd_pat.match(firewall['Исходящий FQDN']) and firewall['Исходящий FQDN'] != None): # на этой строке ошибка
            print('FQDN заполнены корректно')
        else:
            print('FQDN заполнены некорректно')

        if(firewall['Протокол доступа'] != None):
                print('Поле "Протокол доступа" оставьте пустым')

        if(firewall['Порт доступа'] != None):
                print('Поле "Порт доступа" оставьте пустым')

def fire_fill():

    firewall['Название средства защиты'] = ws['B' +str(i+1)].value
    firewall['Сегмент источника'] = ws['B' +str(i+2)].value
    firewall['Сегмент назначения'] = ws['B' +str(i+3)].value
    firewall['Протокол доступа'] = ws['B' +str(i+4)].value
    firewall['Исходящий адрес'] = ws['B' +str(i+5)].value
    firewall['Порт доступа'] = ws['B' +str(i+6)].value
    firewall['Исходящая учётная запись/AD'] = ws['B' +str(i+7)].value
    firewall['Исходящий IP-адрес/сеть'] = ws['B' +str(i+8)].value
    firewall['Исходящий FQDN'] = ws['B' +str(i+9)].value
    firewall['Адрес/сеть назначения'] = ws['B' +str(i+10)].value
    firewall['Адрес назначения FQDN'] = ws['B' +str(i+11)].value
    firewall['Номер порта TCP'] = ws['B' +str(i+12)].value
    firewall['Номер порта UDP'] = ws['B' +str(i+13)].value

for i in range(1, ws.max_row):

    checker = i

    if(ws['A' +str(i)].value == '№ Заявки'):
        firewall['№ Заявки'] = ws['B' +str(i)].value
        print()
        print('Заявка ' + str(firewall['№ Заявки']))
        block_counter = 1

    while ws['A' +str(checker+1)].value == 'Название средства защиты':
        fire_fill()
        print()
        print('Блок ' + str(block_counter))
        mistakes()
        checker += 12
        block_counter += 1

Конструкция
condition1 and condition2 and condition3 выполняется в Python слева направо и если находится хотя бы одно условие для которого выполняется
bool(conditionX) == False - проверка обрывается на этом месте и возвращается
False. Все последующие условия не проверяются.
В вашем случае первым выполняется проверка
fqdnadd_pat.match(firewall['Исходящий FQDN']), которая вызывает указанную в вопросе ошибку.
Поэтому вам надо изменить порядок проверки и кроме того лучше использовать идиоматический вид проверки на None:

if firewall.get('Исходящий FQDN') and fqdnadd_pat.match(firewall['Исходящий FQDN']):
    ...

if firewall.get('Исходящий FQDN') - делает сразу две проверки:

проверка на существование в словаре
firewall ключа
"Исходящий FQDN", т.к.
dict.get(<not-existing-key>) вернет
None
проверка на то, что значение firewall['Исходящий FQDN'] не
None

PS по канонам PEP-8, правильно проверять на
variable is None следует так:

if not variable:
    ...

и для
variable is not None:

if variable:
    ...


Как поменять данные внутренних файлов Heroku? _app.py
Залил бота на Heroku и столкнулся с такой проблемой. Как решить на компе понимаю, но как получить доступ к файлам внутри Heroku?
<code>
File /app/.heroku/python/lib/python3.9/site-packages/websocket/_app.py, line 231, in teardown

if thread and thread.isAlive(): AttributeError: Thread object has no attribute isAlive
</code>

Накидал monkey patch (проверял на 3.9)
Пример:

from threading import Thread

setattr(Thread, 'isAlive', getattr(Thread, 'is_alive'))

print(Thread().isAlive)
print(Thread().is_alive)
# <bound method Thread.is_alive of <Thread(Thread-1, initial)>>
# <bound method Thread.is_alive of <Thread(Thread-2, initial)>>

Но, конечно, лучше дождаться когда
websocket исправит багу, а на
heroku будет обновленная версия
websocket


Как написать рекурсивную функцию для факториала числа? [дубликат]

На этот вопрос уже дан ответ здесь:

Вычисление факториала рекурсивно

                                (1 ответ)

Закрыт 2 года назад.

Я смог найти факториал числа с помощью циклов, а с помощью рекурсии не получается придумать решение.
Вот мой код:
<code>
a = int(input())
if a == 0:
    print(1)
else:
    for i in range(1,a):
        a = a*i
    print(a)
</code>
Желательно с объяснением.

Факториал - произведение всех натуральных чисел от 1 до n включительно, поэтому можно записать факториал так:

Факториал какого-то числа равен этому числу, умноженному на
уменьшенный на единицу факториал этого же числа, то есть
n! = n * (n - 1)!

def factorial(n):
    if (n == 0 or n == 1): # Факториал 1 и 0 равны 1
        return 1 # Поэтому возвращаем 1
    else:
        return n * factorial(n-1) # Возвращаем произведение числа на факториал числа на единицу меньше


Получить ключ зная значение
Нужно вытащить ключ из словаря, при условии что пользовательский ввод совпадет со значение словаря

directories = {
    '1': ['2207 876234', '11-2'],
    '2': ['10006'],
    '3': []
}

у меня получилось что-то такое, но естественно не работает ничего

def shelf_id(shelfs):
person = input('Введите номер документа: ')
for key, value in shelfs.items():
    if person == value:
        return key

Изменил код, номер полки теперь пишет корректно, но при любом вводе от пользователя выходит сообщение "Введен несуществующий номер", что изменить, чтобы это сообщение выскакивало только тогда, когда введен номер отсутствующий в словаре?

def shelf_id(shelfs):
person = input('Введите номер документа: ')
for key, value in shelfs.items():
    if person in value:
        return print(key)
    else:
        print('Введен несуществующий номер!')

if person == value:

Нужно просто поменять проверку, поскольку
value - это список и нужно проверить элемент
person на вхождение в этот список:

if person in value:

UPDATE:
По изменённому вопросу (кстати, не делайте так, изменения исходного вопроса делают бесполезными уже данные ответы на первоначальный вопрос). Исправьте табуляции и выводите отрицательный ответ после цикла:

def shelf_id(shelfs):
    person = input('Введите номер документа: ')
    for key, value in shelfs.items():
        if person in value:
            return print(key)
    print('Введен несуществующий номер!')


Как сделать словарь к которому можно обращаться через точку
Необходимо написать словарь к которому можно обращаться как к словарю aiogram'a.
Пример, есть словарь
genMessage - это самый обычный словарь:

genMessage = {
        'from_user': {
            'id': userId,
            'username': username,
            'full_name': fullName
        }
    }

И к этому словарю можно обращаться только так:

genMessage['from_user']['id']

А мне необходимо обращаться к словарю через точку, как к aiogram словарю, пример:

genMessage.from_user.id

Накидал пример класса-обертки:

Суть в магическом методе
__getattr__, который вызывается при запросе поля-атрибута у объекта
Например, при
x.from_user в
__getattr__ будет передана строка
from_user
Чтобы можно было продолжать цепочку вызова понадобится возвращать объект
WrapperMap с новым значением

Пример:

class WrapperMap:
    def __init__(self, d: dict):
        self.d = d

    def get_value(self):
        return self.d

    def __getattr__(self, item: str) -> 'WrapperMap':
        return self.__class__(self.d.get(item))

    def __repr__(self):
        return repr(self.d)

genMessage = {
    'from_user': {
        'id': 123,
        'username': "username",
        'full_name': "fullName"
    }
}
x = WrapperMap(genMessage)
print(x.from_user.id, type(x.from_user.id))
# 123 <class '__main__.WrapperMap'>

print(x.from_user.username.get_value())
# username

Можно немного дописать
__getattr__, чтобы возвращать обертку только для словарей:

    def __getattr__(self, item: str):
        value = self.d.get(item)
        if isinstance(value, dict):
            return self.__class__(value)

        return value

Тогда для получения значений остальных типов не придется вызывать метод
get_value:

x = WrapperMap(genMessage)

print(x.from_user, type(x.from_user))
# {'id': 123, 'username': 'username', 'full_name': 'fullName'} <class '__main__.WrapperMap'>

print(x.from_user.id, type(x.from_user.id))
# 123 <class 'int'>

print(x.from_user.username, type(x.from_user.username))
# username <class 'str'>


Преобразование времени python
У меня есть время в формате строки и его надо преобразовать в формат "ДД.ММ.ГГГГ", т. е. чтобы осталось только "05.08.2021". Все попытки приводят к ошибкам.
И ещё, с символом "T" надо как-нибудь по особенному обращаться или его можно просто заменить на пробел?
Как мне правильно преобразовать строку в время?
Первый вариант

import datetime

day = "2021-08-05T23:56:44.233856"
day_x = datetime.datetime.strptime(day, '%d.%m.%Y').date()

print(day_x)

Второй вариант

import datetime

day = "2021-08-05T23:56:44.233856"
day_x = datetime.datetime.strptime(day, '%d.%m.%Y')

print(day_x)

Возникающая ошибка

ValueError: time data '2021-08-05T23:56:44.233856' does not match format '%d.%m.%Y'

Я пытался заменить "T" на пробел с помощью

day = day.replace('T', ' ')

но ничего не изменилось

Как написали Roman Konoval и andreymal можно считать дату и время с помощью
datetime.datetime.strptime(), но в данном случае формат даты и времени соответствует ISO 8601, что позволяет использовать встроенный метод
datetime.datetime.fromisoformat():

import datetime
dt = datetime.datetime.fromisoformat('2021-08-05T23:56:44.233856')

Дальше уже по классике:

d = datetime.datetime.strftime(dt, '%d.%m.%Y')  # 05.08.2021


Телеграмм бот не реагирует на команды
Всем привет, начал изучать питон и решил создать своего первого тг бота, но он по какой-то причине не реагирует на команду
start (при этом эхо работает исправно). Буду рад, если поможете в решении проблемы

import config
import telebot

bot = telebot.TeleBot(config.token)

@bot.message_handler(content_types=["text"])
def echo(message):
    bot.send_message(message.chat.id, message.text)

@bot.message_handler(commands=['start'])
def welcome(message):

    bot.send_message(message.chat.id,
                     'Привет, {0.first_name}! \nМеня зовут {1.first_name} и я бот, который поможет тебе выбрать '
                     'музыку под твое настроение.Внизу есть кнопки, которые ты можешь использовать для того, чтобы'
                     ' решить свои задачи.'.format(
                         message.from_user, bot.get_me()), parse_mode='html')
    sticker = open('hey.webp', 'rb')
    bot.send_sticker(message.chat.id, sticker)

bot.polling(none_stop=True)

Вы поставили команду "старт" под content_types=["text"], поэтому не работает
<code>
import config
import telebot

bot = telebot.TeleBot(config.token)

@bot.message_handler(commands=['start'])
def welcome(message):

    bot.send_message(message.chat.id,
                     'Привет, {0.first_name}! \nМеня зовут {1.first_name} и я бот, который поможет тебе выбрать '
                     'музыку под твое настроение.Внизу есть кнопки, которые ты можешь использовать для того, чтобы'
                     ' решить свои задачи.'.format(
                         message.from_user, bot.get_me()), parse_mode='html')
    sticker = open('hey.webp', 'rb')
    bot.send_sticker(message.chat.id, sticker)

@bot.message_handler(content_types=["text"])
def echo(message):
    bot.send_message(message.chat.id, message.text)

bot.polling(none_stop=True)
</code>


Можно ли было вернуть количество четных и нечетных чисел в лямбде? [закрыт]

Закрыт. Данный вопрос необходимо конкретизировать. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы он был сосредоточен только на одной проблеме.

Закрыт 2 года назад.

                        Улучшить вопрос

<code>
nums = [3, 5, 6, 1, 9, 12]

even_nums = list(map(lambda even : even% 2 == 0, nums))
odd_nums = list(map(lambda odd : odd% 2 != 0, nums))
print('Количество четных: ',even_nums.count(True))
print('Количество нечетных: ',odd_nums.count(True))
</code>

Я также как и все не уверен, что понял задание правильно, но пусть будет так:

nums = [3, 5, 6, 1, 9, 12]

even_nums = sum(map(lambda n: not n % 2, nums))
odd_nums = sum(map(lambda n: n % 2, nums))
print('Количество четных: ', even_nums)
print('Количество нечетных: ', odd_nums)

Вывод:

Количество четных:  2
Количество нечетных:  4


Вывести значение из списка которая находится в словаре [закрыт]

Закрыт. Этот вопрос не по теме. Ответы на него в данный момент не принимаются.

 Учебные задания допустимы в качестве вопросов только при условии, что вы пытались решить их самостоятельно перед тем, как задать вопрос. Пожалуйста, отредактируйте вопрос и укажите, что именно вызвало у вас трудности при решении задачи. Например, приведите код, который вы написали, пытаясь решить задачу

Закрыт 2 года назад.

                        Улучшить вопрос

Есть задание.

a = {'Civil Engineering': ['Thomas', 'Benjamin', 'Franklin'],
             'Psycology': ['Joe', 'Chedwick', 'Helena']}

Надо использовать одно имя из списка, который является значением у словаря, для выведения утверждения об этом ученике, чтобы получилось как-то так:

This is Franklin. He studies Civil Engineering.
Без понятия как вывести значение из списка в словаре

Первый вариант. Имеем обычную проверку на включение в список с итерацией по словарю:

name = 'Thomas'

for k, v in a.items():
    print('This is {}. He studies {}'.format(name, k)) if name in v else None

Можно пойти другим путем с "выворачиванием" словаря в ключи-имена и значения-предметы, но тут должны быть уникальные ученики:

a = {'Civil Engineering': ['Thomas', 'Benjamin', 'Franklin'],
     'Psycology': ['Joe', 'Chedwick', 'Helena']}

name = 'Thomas'
subj = {}
for k, v in a.items():
    subj.update(dict.fromkeys(v, k))

print('This is {}. He studies {}'.format(name, subj[name])) if subj.get(name) else None


django передать переменную из шаблона во views
никак не получается передать переменную(user.username) из шаблона во views, выбрал простой вариант передать через запрос, ошибок не выдает, но и переменная не приходит:
template:

    <form action="{% url 'cabinet' %}?user.username={{user.username}}" method="post">

  {% csrf_token %}
  {{ form.as_p }}

  <button type="submit" class="w-50 btn btn-primary btn-block">create search</button>
  </form>

фрагмент views:

def add_search(request):

    username = request.GET.get('user.username')

    if request.method == 'POST':

        form = AddSearch(request.POST)
        if form.is_valid():
Global_Users.objects.filter(name=username).update(**form.cleaned_data)
else:
    form = AddSearch()
return render(request, 'webface/add_search.html', {"form": form})

Если пользователь авторизированный его юзернэйм можешь получить через request.
<code>

def add_search(request):

    username = request.user.username

</code>


Открытие файла .py через pycharm
Пользуюсь pycharm уже сколько времени, а так и не научился открывать файл НОРМАЛЬНО. Дело всё в том, что во многих гайдах люди, пользующиеся другими редкаторами, спокойно открывают .py файлы в обычном их представлении: Консоль и/или графический интерфейс программы. Но у меня всё по другому, когда я нажимаю на этот файлик, оно открывается в редакторе Pycharm, а не запускается. Что делать? Подскажите

Правой кнопкой на файле - Свойства - Открыть с помощью - выбрать интерпретатор питона.


Как в setObjectName добавить последовательное число?
Я создаю
каждый раз при нажатии кнопки
groupbox

def new(self):

    self.groupBox_2 = QGroupBox(self.scrollAreaWidgetContents)
    self.groupBox_2.setMinimumSize(QSize(411, 251))
    self.groupBox_2.setMaximumSize(QSize(411, 251))
    self.groupBox_2.setCheckable(False)
    self.groupBox_2.setStyleSheet(
        "border: 2px solid #FDD2BF;"
        "border-radius: 10;")

    self.groupBox_2.setObjectName("groupBox_2")

Как мне в
setObjectName добавить переменную, которая будет увеличиваться на один?
Внизу написал как я себе это представляю, но как вы понимаете это не работает.

x += 1
...
self.groupBox_2.setObjectName("groupBox_{x}")

Если вам действительно нужна помощь - опубликуйте
минимально-воспроизводимый пример.
Я вижу, что вы не правильно реализуете какую-то свою идею.
Сделать можно все, но поймите, что в цикле или как вы
пишите

'каждый раз при нажатии кнопки'
не делают экземпляр
QGroupBox объектом класса

vvvv <--------------------- нет !!!
self.groupBox_2 = QGroupBox(self.scrollAreaWidgetContents)

я бы попробовал вам помочь, но вы почему-то упрямо не публикуете код.
А пока вот вам ответ на ваш вопрос,
но помните, что использовать где-то в логике так:

self.groupBox_2.оbjectName()

у вас не получится, потому что там будет всегда последнее значение.

...
class Window(QMainWindow):
    def __init__(self):
        super().__init__()

        self.x = 0
    ...

    def new(self):
        self.x += 1
        self.groupBox_2.setObjectName(f"groupBox_{self.x}")
...


заполнить матрицу вводом с консоли Python [закрыт]

Закрыт. Этот вопрос необходимо уточнить или дополнить подробностями. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Добавьте больше подробностей и уточните проблему, отредактировав это сообщение.

Закрыт 2 года назад.

                        Улучшить вопрос

Сломал голову уже, никак не могу понять как делать
Вывести матрицу 1
На вход программе подаются два натуральных числа nn и mm, каждое на отдельной строке — количество строк и столбцов в матрице. Далее вводятся сами элементы матрицы — слова, каждое на отдельной строке; подряд идут элементы сначала первой строки, затем второй, и т.д.
Напишите программу, которая сначала считывает элементы матрицы один за другим, затем выводит их в виде матрицы.
Формат входных данных
На вход программе подаются два числа nn и mm — количество строк и столбцов в матрице, далее идут n \times mn×m слов, каждое на отдельной строке.
Формат выходных данных
Программа должна вывести считанную матрицу, разделяя ее элементы одним пробелом.
Sample Input 1:

4
2
и
швец
и
жнец
и
на
дуде
игрец

Sample Output 1:

и швец
и жнец
и на
дуде игрец

n, m = int(input()), int(input())
matrix = []
for i in range(n):
   matrix = [input() for _ in range(m)]

print(matrix)

Чтобы заполнить и напечатать матрицу

Мы считываем и записываем размер матрицы в n, m

Инициализируем саму матрицу

Создаём цикл и записываем в матрицу строчки

Последний пункт - выводим матрицу на экран

Таким образом у нас получается следующий код:
<code>
n, m = int(input()), int(input())
matrix = []
for i in range(n):
    matrix += [[input() for _ in range(m)]]

for line in matrix:
    print(*line)
</code>


Для чего нужен Dropout в машинном обучении?
Для чего используют Dropout в машинном обучении? Как это влияет на скорость обучения, выходные данные?
Какие есть примеры практического применения Dropout? В каких случаях его нужно использовать?

Dropout - один из методов регуляризации (борьбы с переобучением модели). Суть
dropout в "забывании" части информации. Т.е. некоторый, заданный заранее процент нейронных связей, разрывается (забывается) на выходе из текущего слоя нейронной сети. Таким образом вместо того, чтобы идеально подобрать веса только лишь для обучающего набора данных, НС учится подбирать ответ для похожих данных, которые не встречались в обучающем наборе. Это может значительно улучшить точность сети для данных, которые не встречались в обучающем наборе.
При применении
dropout, обучение может длиться дольше.


Проблема с while и if-else
До def test() вроде все норм, но непосредственно в функции def tes() запуталась и не хватает знаний. И ещё. Можно ли вообще не использовать while и обойтись только if-else?! Хотела воспользоваться только ими, но все остальные использовали while и я решила, что тоже надо вставить.
<code>
def greet(bot_name, birth_year):
    print('Hello! My name is ' + bot_name + '.')
    print('I was created in ' + birth_year + '.')

def remind_name():
    print('Please, remind me your name.')
    name = input()
    print('What a great name you have, ' + name + '!')

def guess_age():
    print('Let me guess your age.')
    print('Enter remainders of dividing your age by 3, 5 and 7.')

    rem3 = int(input())
    rem5 = int(input())
    rem7 = int(input())
    age = (rem3 * 70 + rem5 * 21 + rem7 * 15) % 105

    print("Your age is " + str(age) + "; that's a good time to start programming!")

def count():
    print('Now I will prove to you that I can count to any number you want.')

    num = int(input())
    curr = 0
    while curr <= num:
        print(curr, '!')
        curr = curr + 1

def test():
    print("Let's test your programming knowledge.")
    # write your code here
    print("Why do we use methods?")
    print("1. To repeat a statement multiple times.")
    print("2. To decompose a program into several small subroutines.")
    print("3. To determine the execution time of a program.")
    print("4. To interrupt the execution of a program.")
    while true:
        answer = int(input())
        answer != 2
        print("Please, try again.")
    else:
        print('Completed, have a nice day!')

def end():
    print('Congratulations, have a nice day!')

greet('Aid', '2020')  # change it as you need
remind_name()
guess_age()
count()
# ...
end()
</code>

Вероятно в этом куске кода:

    while true:
        answer = int(input())
        answer != 2
        print("Please, try again.")
    else:
        print('Completed, have a nice day!')

вы пропустили
if. Предполагалось, я так думаю:

    while true:
        answer = int(input())
        if answer != 2:
            print("Please, try again.")
        else:
            print('Completed, have a nice day!')
            break


Почему не находит ключ в словаре?
У меня есть JSON файл со списком операций, в нём их около 100. У каждой операции есть время совершения, которое находится по ключу
date. Мне надо отсортировать эти операции по дате.
Я написал код, но почему-то он работает только, если операций около 60. На примерно 80 операциях появляется ошибка что такого ключа, как
date, не существует.

import json

with open("operations.json", 'r', encoding='utf-8') as f:
    operations_json = f.read()

operations = json.loads(operations_json)
sorted_operations = sorted(operations, key = lambda k: k['date'])

print(sorted_operations)

Файл JSON с операциями
В чём может быть проблема?

Элементарный способ проверки данных:

In [255]: [(i,x) for i,x in  enumerate(operations) if "date" not in x]
Out[255]: [(74, {})]

Т.е. элемент списка с индексом 74 - пустой словарь

исправленное решение:

sorted_operations = sorted(filter(None, operations), key = lambda k: k['date'])


Как использовать utcoffset временной зоны для конвертации времени?
Время на сервере установлено в UTC. У меня есть список объектов, для которых указан часовой пояс в таком формате:
+0300. Есть ли встроенные средства, которые позволят конвертировать время в локальное из UTC, не изобретая велосипед?

Конвертирование времени с временной зоной в другую заданую сторокой формата
+0300 стандартными средствами делается так:

from datetime import datetime, timezone

dt_to_convert = datetime.utcnow().replace(tzinfo=timezone.utc)

tz = datetime.strptime('+0300', '%z').tzinfo

dt_in_03_tz = dt_to_convert.astimezone(tz)


Как можно сделать запрос к сайту с фейкового айпи? [закрыт]

Закрыт. На этот вопрос невозможно дать объективный ответ. Ответы на него в данный момент не принимаются.

Хотите улучшить этот вопрос? Переформулируйте вопрос так, чтобы на него можно было дать ответ, основанный на фактах и цитатах.

Закрыт 2 года назад.

                        Улучшить вопрос

Делаю скрипт с использованием модуля socket. Мне необходимо сделать простой запрос к сайту ,но с фейкового айпи. Напишите пример того, как это сделать  в коде

Используйте прокси.

r = s.post(URL, data=data, headers=headers, proxies=proxies)

Где переменная
proxies - словарь.

proxies = {
'http': 'xxx.xx.xxx.xx:xxxx',
'https': 'xxx.xx.xxx.xx:xxxx'}

Заменяете User-Agent. По стандарту он 'python-requests' - многие сайты блокируют.

Если берете прокси из общего доступа, то он уже может быть заблокированным (на самом деле это довольно часто). Берите сразу большое кол-во прокси и пробуйте перебирать их примерно так:

proxies = []
for proxy in proxies:
response = requests.get(proxies=proxy)
if response.status_code == requests.codes['ok']:
break

response.text

Взято из взаимосвязанного вопроса