python - 如果用户在 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()
解决方案
您可以使用 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')
...
推荐阅读
- ios - 滚动回查看swift时如何停止收集触发代码
- mysql - #1064 - 第 7 行的 SQL 语法有错误
- python - 按字段过滤 SQLAlchemy 中的关系
- php - Wordpress 显示 $wp_query = new WP_Query 中的所有帖子
- excel - 如何从多个 Excel 工作表创建一个 Ms Access 数据库,每个工作表都有多行?
- vba - 为什么 Word (2007) 会在宏中弄乱这个 Unicode 字符?
- if-statement - Python Elif 语句未执行第四个条件
- python - 为什么我的区域提案网络 (RPN) 输出 4d 预测/分数数组,我如何解释输出?
- python - Dill/Marshal 反序列化后的 NameError
- java - 消息删除功能可删除文本、pdf、图像、mp3 文件消息等