Уведомления

Группа в Telegram: @pythonsu
  • Начало
  • » Python для новичков
  • » Проверка вхождения элемента одного списка в другой список. Без учета регистров обоих списков [RSS Feed]

#1 Май 20, 2018 11:16:17

dddddd_2003
Зарегистрирован: 2018-05-20
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка вхождения элемента одного списка в другой список. Без учета регистров обоих списков

Профи Питона, нужна помощь
Как правильно сравнить два множества?
Задача такая:
Напишите бота для детской игры «Собери дни недели». В ходе игры сначала ведущий выдаёт игроку первое слово. Затем каждым следующим ходом участник может попросить ещё одно слово командой «ещё» или объявить, что его неделя собрана, командой «всё!» Игрок выигрывает, если остановил игру командой «всё!» ровно тогда, когда среди выданных ему слов впервые оказались все дни недели: понедельник, вторник, среда, четверг, пятница, суббота, воскресенье. Порядок получения названий дней и их повторы не учитываются.

Ваш бот не должен ошибаться: запрашивать и/или считывать слово, если все дни недели уже собраны, или объявлять «всё!» раньше времени.

Пример игрового процесса (В - ведущий, И - игрок):
В: воскресенье
И: ещё
В: выходной
И: ещё
В: завтра

В: среда
И: всё!

Формат ввода
Несколько слов в нижнем регистре, каждое на отдельной строке. Гарантируется, что всегда можно собрать все дни недели.
Формат вывода
Несколько строк с командами «ещё», по одной на строке, в последней строке команда «всё!»

Пишу код. Если ввод делаю по порядку дней недели, то правильно определяет, если в другом порядке - не работает.

 arr1=['понедельник','вторник','среда','четверг','пятница','суббота','воскресенье']
arr2=[]
day=input()
if day in arr1:
    arr2.append(day)
#arr1.sort()
#arr2.sort()
while arr1 not in arr2:
    print('ещё')
    #for i in arr2:
    #  print(i)
    #for i in arr1:
    #  print(i)
    day=input()
    if day in arr1:
        arr2.append(day)
    #arr2.sort()
		    #print(day)
print ('всё!')

Офлайн

#2 Июль 21, 2018 18:34:27

exart
Зарегистрирован: 2018-07-21
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка вхождения элемента одного списка в другой список. Без учета регистров обоих списков

dreamer1cc
Всё на самом деле очень просто. Вы неправильные списки создали, поэтому и не можете решить задачу.
По условию список current_users должен состоять из имён с заглавной буквы, например:

 current_users = ['Vasya', 'Petya', 'Vanya', 'John', 'Eric']
, а имя ‘JOHN’ по условию должно быть в списке new_users (его то пользователь и вводит в верхнем регистре как видно из условия), поэтому второй список будет выглядеть так:
 new_users = ['Krasavchik', 'Stalin', 'Vanya', 'JOHN', 'Popuas']
Следовательно, чтобы всё получилось необходимо добавить всего-то .title():
 if user.title() in current_users:

Офлайн

#3 Ноя. 29, 2020 22:47:22

Gureto
Зарегистрирован: 2020-11-29
Сообщения: 1
Репутация: +  0  -
Профиль   Отправить e-mail  

Проверка вхождения элемента одного списка в другой список. Без учета регистров обоих списков

Тоже занимаюсь по этой книге. Ничего лучше не нашел, чем это

 current_users = ['Andrew','JOHHNAS','AdMiN','FrenchPress','Dreamerlcc','XIII']
new_users = ["AnDrEw","Apple",'xiii','frenchpress', "NewUser", "CurrentUser",
            "NotCurrentUser"]
# подготовка списков для проверок списков без учета регистров
CheckNewUsers = []
CheckCurrentUsers = [] 
# проверка на наличие элементов в списке
if new_users:
    # добавление элементов из списка с регистром в список без регистра
    for new_user in new_users:
        CheckNewUsers.append(new_user.lower())
    for current_user in current_users:
        CheckCurrentUsers.append(current_user.lower())
  
    # проверка списков без регистра на наличие совпадений:
    for CheckNewUser in CheckNewUsers:
        if CheckNewUser in CheckCurrentUsers:
            # возврат к исходному имени старого пользователя
            for RnewUser in current_users:
                if RnewUser.lower() == CheckNewUser:
                    print("Ваше имя занято! Существует пользователь: "
                            + RnewUser+ ".")
        else:
            # возврат к исходному имени нового пользователя
            for RRnew_user in new_users:
                if RRnew_user.lower() == CheckNewUser:
                    print(RRnew_user + ", продолжим регистрацию!")
else:
    if current_users:
        print("We don't have new_users")
    else:
        print("You don't have any users")

Отредактировано Gureto (Ноя. 29, 2020 23:28:28)

Офлайн

  • Начало
  • » Python для новичков
  • » Проверка вхождения элемента одного списка в другой список. Без учета регистров обоих списков[RSS Feed]

Board footer

Модераторировать

Powered by DjangoBB

Lo-Fi Version