Ответы пользователя по тегу Python
  • Как перебрать словарь и изменить значение ключей?

    @Span4ev Автор вопроса
    Надеюсь это не дурной тон - найдя решение, опубликовать собственный ответ. Но может кому-то поможет. Больше 5 часов сидел над этой проблемой

    Во-первых, сам перебор должен быть таким:

    for key in dic.keys():
                if key == name:
                    dic[key] = 1
                else:
                    dic[key] = 0


    Во-вторых, моя ошибка в том, что вызывая функцию и передавая в неё аргумент, я передал переменную "anna_info" без кавычек (но я видел в чужом примере, как значение передавали без кавычек. Именно поэтому решил, что синтаксис именно таков).
    action Function(change_bool_dict, stats_info_all_names, 'anna_info')

    Икс и игрек убрал. Помогло то, что начал экспериментировать с перебором только в онлайн python IDE
    Ну вот и методом тыка набрёл на результат.
    Ответ написан
  • Почему игра на pygame тормозит?

    @Span4ev Автор вопроса
    Разобрадся. Для тех, кто столкнётся с той же ситуацией, вот пояснение:

    Медленный здесь только я, потому что функцию создания пришельцев
    engine.create_aliens_army(settings, screen, ship, aliens) я запускал в основном цикле While, из-за чего все остальные циклы выполнялись каждую наносекунду. Я перенёс вызов создания армии из основного цикла и всё стало хорошо.
    Следите за тем, где вы вызываете методы.
    Ответ написан
    3 комментария
  • Как проверить наличие всех элементов в массиве Python?

    @Span4ev
    Вам нужно, чтобы условие выполнилось, если все эти люди находятся в массиве (в Python - это список)
    Значит у вас уже есть список с этими именами.
    Значит вам нужен другой список, на основании которого будет производиться сравнение, верно?
    Такой список, который вы будете создавать во время переклички

    students = ["Вася", "Петя", "Ваня", "Света"] # Должно быть так
    students = ["Петя", "Ваня", "Света"] # А не так или как-то иначе


    Списки должны совпасть.

    Значит в момент переклички создаёте ещё один список, куда помещаете присутствующих,
    иначе какой смысл в перекличке, если не с чем сравнивать.

    Поэтому:

    all_students = ["Вася", "Петя", "Ваня", "Света"]
    
    current_students = [] # сюда помещаете имена людей в момент переклички
    
    current_students.append('Вася') # добавляете имена в момент переклички в пустой список
    current_students.append('Петя')
    current_students.append('Ваня')
    current_students.append('Света')
    
    if all_students == current_students:
    	print ('Все студенты на месте. Начинаем занятие!')
    else:
    	for name in all_students:
    		if name not in current_students:		
    			print ('Занятие отменяется из-за отсутствия ' + name.title())
    
    #  Результат: 
    # ---> Все студенты на месте. Начинаем занятие!


    Если кто-то не пришёл и не попал в список создаваемый во время переклички, то:

    all_students = ["Вася", "Петя", "Ваня", "Света"]
    current_students = []
    current_students.append('Вася')
    # current_students.append('Петя') # не явился
    current_students.append('Ваня')
    current_students.append('Света')
    
    if all_students == current_students:
    	print ('Все студенты на месте. Начинаем занятие!')
    else:
    	for name in all_students:
    		if name not in current_students:		
    			print ('Занятие отменяется из-за отсутствия ' + name.title())
    
    #  Результат: 
    # ---> Занятие отменяется из-за отсутствии Петя!

    Ответ написан
    2 комментария