首页 > 解决方案 > 如果用户在 Python 中输入相同的字符串两次,我如何打印特定的消息?

问题描述

我正在练习我的 Python 技能。我目前在第 4 周,坚持做一项特定的任务。如果用户在我的 self.songs 输入中两次输入相同的字符串,我想打印一条消息,说“您不能两次输入同一首歌曲。再试一次”。

我怎样才能做到这一点?另外,有没有一种方法让用户在输入他们最喜欢的歌曲时使用逗号而不是空格来分隔每个字符串?

  class User:
    def __init__(self):
        self.name = ''
        self.songs = ()
        self.movies = ()
        self.sports = ()

    def tops(self):
        self.name = input("What's you're full name?:")
        while True:
            self.songs = input('Hi ' + self.name + ', what is your top 5 favorite songs?:').split()
            if len(self.songs) > 5:
                print('You entered more than 5 songs. Try again')
            elif len(self.songs) < 5:
                print('You entered less than 5 songs. Try again')
            elif len(self.songs) == 5:
                for song in self.songs:
                    print(song)
                confirm_input = input('Do you confirm?')
                if confirm_input == 'Yes':
                    print(type(self.songs))
                    print(self.songs)
                    break
                elif confirm_input == 'No':
                    continue


quizUser = User()
quizUser.tops()

标签: pythonpython-3.x

解决方案


您可以使用 aset获取唯一元素,然后将其长度与答案长度进行比较

if len(set(self.songs)) != len(self.songs):
    print("You can't enter the same song twice. Try again")    
elif len(self.songs) > 5:
    print('You entered more than 5 songs. Try again')
elif len(self.songs) < 5:
    print('You entered less than 5 songs. Try again')
...

推荐阅读