• Как в PyQT5 сделать скрываемый список?

    hottabxp
    @hottabxp
    Сначала мы жили бедно, а потом нас обокрали..
    SO - How to make an expandable/collapsable section widg... - пусть C++ вас не смущает, там есть и pyqt5.
    Create something like the Widget Box as in the Qt ... - здесь конечно C++, ну думаю можно портануть и на python.
    Ответ написан
  • Зачем нужен return, когда есть print?

    SoreMix
    @SoreMix Куратор тега Python
    yellow
    Если нужно просто вывести на экран результат - разницы нет, в данном примере. Если нужно в дальнейшем использовать значение, возвращенное функцией, то, конечно, нужен return. Допустим, как тут, если нужно сравнить два числа, и вернуть из них большее, чтобы затем работать с ним дальше, можем сделать так:
    def func(x, y):
        if x > y:
            return x
        elif x == y:
            return 'Числа равны.'
        else:
            return y
    
    max_num = func(3,4)

    И в результате в переменной max_num будет наше наибольшее число (ну, либо текст). В данном примере несовсем понятно, конечно.

    Ну вот допустим у нас есть встроенная функция max, которая возвращает максимальное значение из переданных параметров, нечто похожее на то, что сделали вы. Для более наглядного примера я бы рассмотрел random.choice()

    Предположим, у нас есть список элементов и нам надо из него выбрать случайный элемент и работать с ним дальше. Мы вызываем random.choice(), который через return вернет нам этот случайный элемент и мы будем с ним работать дальше. Например, использовать его как часть текста.
    greetings = ['Привет', 'Hello', 'Здравствуйте']
    
    greeting = random.choice(greetings)
    
    print(f'{greeting}, master')


    В итоге при каждом запуске кода мы будем получать случайный элемент списка в переменную, и все это благодаря наличию return в методе choice. Если бы там было не возвращение элемента через return, а просто print. то тогда наш случайный элемент печатался в консоль и на этом все. Ну, надеюсь понятно.

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

    Если надо будет найти максимальный элемент и использовать его в дальнейшей работе, то с таким кодом -
    def func(x, y):
        if x > y:
            print(x)
        elif x == y:
            print('Числа равны.')
        else:
            print(y)
    
    max_num = func(3,4)
    print('Максимальное число -', max_num)

    получите None в ответе.
    Ответ написан
    2 комментария
  • Зачем нужен return, когда есть print?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Зачем нужен return, когда есть print?

    Странный вопрос, вообще странный.
    Есть функция. Вы передаете в нее параметры, функция с ними что-то делает и возвращает результат с помощью return. Далее вы результат этой функции можете передать в качестве параметра к другой функции.
    Ответ написан
    1 комментарий
  • Как убрать из "http://192.168.0.100/mydomain" "192.168.0.100/"?

    @Drno
    пропишите в DNS сервер, который использует второй пк - 192.168.0.100 = mydomain... чтоб ПК мог сопоставить доменное имя и IP
    на винде можно в файл host

    Ну и на сервере надо выставить чтобы корневая папка была та, где лежит Ваш сайт, чтобы не приходилось заходить в поддерикторию
    Ответ написан
    1 комментарий
  • Почему компьютер не видит другой в локальной сети?

    @Drno
    Проверяйте службы сетевые, запущены ли.
    Службу сет окружения
    Отключите оба брендмауэра и выставьте подключение как «частное»
    Ответ написан
    1 комментарий
  • Ошибка в Pygame: AttributeError: 'str' object has no attribute 'image'. Что делать?

    Ternick
    @Ternick
    Ошибка возникает в методе create класса Wall:
    class Wall(pygame.sprite.Sprite):
        def init(self):
            pygame.sprite.Sprite.__init__(self)
            self.fill(BLACK)
            self.rect = self.image.get_rect()
            self.rect.center = (WIDTH / 2, HEIGHT / 2)
        def create(self,colour,x,y):
            self.image.fill(colour) #Тута
            self.rect.y = y
            self.rect.x = x   
            self.rect.width = 10
            self.rect.height = 10

    Из-за этого вызова:
    Wall.create("",GREEN,0,0)
    Потому, что кто-то полез туда, где ничего не понимает.
    self это не просто параметр, а куда более важнее, его не нужно передавать из вне. {self нужен для работы с внутренними переменными класса}

    Какие дальше ошибки посыплются - не знаю, я не ванга, а обычный человек.
    Решение:
    Идти глянуть хотя бы что-такое self и зачем он нужен.
    Заменить вызов метода create класса Wall, на этот Wall.create(GREEN,0,0).
    Ответ написан
    Комментировать
  • Как очистить консоль python?

    hottabxp
    @hottabxp Куратор тега Python
    Сначала мы жили бедно, а потом нас обокрали..
    Вот такое в Linux работает:
    import os
    
    print('Hello')
    input()
    os.system('cls||clear')
    print("Привет")
    input()

    У вас наверное windows. И пробовать нужно в консоли ОС, а не в консоли PyCharm. Ведь странно было бы, если бы для запуска программы(или игру) нужно было бы устанавливать среду разработки)
    Ответ написан
    4 комментария
  • Как написать обработку словаря в вк?

    npanuhin
    @npanuhin
    Вот один из вариантов:
    import random
    
    f = open('rad.txt', 'r', encoding='utf-8')
    
    d = {}
    for line in f:
        keys = line[:line.index('==') - 1].split('\\')
        values = line[3 + line.index('=='):].split('\\')
        for key in keys:
            d[key] = values
    
    f.close()
    
    response = "привет"
    for key in d.keys():
        if key in response.lower():
            lep = random.choice(d[key])
    
    print(lep)

    1. Получаем все ключи
    2. Получаем все значения
    3. Для каждого ключа создаём пункт в d равный массиву со всеми значениями

    Если важно потребление памяти, то лучше сделать, например, такую структуру:
    spoiler
    [
    	[
    		["привет", "хай", "здравствуй"], ["Привет", "Здравствуй", "Привет"]
    	],
    	[
    		Другая фраза
    	]
    ]

    А затем делать:
    For по фразам:
        For по ключам:
            Random по значениям

    Ответ написан
    5 комментариев
  • Бот в вконтакте для своей страницы?

    Pigeon1235
    @Pigeon1235
    Можно конечно делать у себя на странице, но крайне не рекомендуется т.к. там есть пара минусов:
    1. Может прилететь капча при большом кол-во ответов на сообщения
    2. ВК не одобряет ботов на странице и может за это забанить
    Ответ написан
    2 комментария