>>> def total(a=5, *b):
       return(a, b)
>>> total_first_fixed = partial(total, 5)
>>> a, b = total_first_fixed(6)
>>> a
5
>>> b
(6,)
>>> a, b = total_first_fixed(1, 2, 3)
>>> a
5
>>> b
(1, 2, 3)inspect. Но, если до такого дошло в прикладном коде, значит дела идут не важно и не туда.import inspect
def get_default_args(func):
    signature = inspect.signature(func)
    return {
        k: v.default
        for k, v in signature.parameters.items()
        if v.default is not inspect.Parameter.empty}
def f1(a=5, *b):
    print(a)
    print(b)
if __name__ == '__main__':
    f1(1, 2, 3)
    f1(*get_default_args(f1).values(), 1, 2, 3) 
  
  urllib3.util.connection.create_connection(), ответственную за установку TCP соединения. Соответственно, можно попробовать подменить эту функцию на свою реализацию, и использовать пакет dnspython для запросов.from urllib3.util import connection
import dns.resolver
def your_dns_resolver(hostname: str) -> str:
    """Получает на вход доменное имя, возвращает IP адрес в виде строки."""
    resolver = dns.resolver.Resolver(configure=False)
    resolver.nameservers = ["8.8.8.8"]  # список используемых DNS серверов.
    answer = resolver.resolve(hostname, "A")  # A-запись для IPv4 адреса, AAAA-запись для IPv6 адреса
    if len(answer) == 0:
        raise Exception("No A record found")
    return str(answer[0])
_orig_create_connection = connection.create_connection
def patched_create_connection(address, *args, **kwargs):
    """Wrap urllib3's create_connection to resolve the name elsewhere"""
    host, port = address  # оригинальный адрес для запроса
    hostname = your_dns_resolver(host)  # сами определяем IP по имени
    return _orig_create_connection((hostname, port), *args, **kwargs)  # дёргаем оригинальную функцию, чтобы создать соединение
connection.create_connection = patched_create_connection 
  
  Ведь, максимумом является 255 IP-адресов в одной сетиКто вам такое сказал?
if player1 == 0:                 #ошибка синтаксиса в этой строке
IndentationError: expected an indented block after 'while' statement on line 61def my_generator(number):
    while number > 0:
        yield number
        number -= 1
        
gen = my_generator(5)  # теперь в gen генератор от 1 до 5
my_list = [0, 1, 3, 5]
print(type(gen))
set_gen = set(gen) # разворачиваем генератор в множество (если, конечно, влезет)
set_my_list = set(my_list)
print(f'gen {set_gen}')
print(f'list{set_my_list}')
print(set_gen - set_my_list)
print(set_my_list - set_gen)
print(set_gen & set_my_list)
print(set_my_list & set_gen)
print(set_gen | set_my_list)
print(set_my_list | set_gen)Если вы дадите какие-то совесть по оформлению или синтаксу кода, я буду вам нереально благодарен.
я тот же sqlite выучил за 1 день
cursor.execute(f"INSERT INTO {table}({columns}) VALUES ({values})")