如果给出相同的输入,我想返回False:
first_answer = input("select square number 1: ")
second_answer = input("select square number 2: ")
third_answer = input("select square number 3: ")
if first_answer == second_answer or first_answer == third_answer or
second_answer == first_answer or second_answer == third_answer or
third_answer == first_answer or third_answer == second_answer:
print("don\'t repeat squares")
有更简单的方法吗?
答案 0 :(得分:0)
set_answers = set() set_answers.add(input("select square number 1: ")) set_answers.add(input("select square number 2: ")) set_answers.add(input("select square number 3: ")) if len(set_answers) < 3: print("don\'t repeat squares")
TRICK :set()
仅存储唯一元素,因此再次向set
添加相同的值不会更改其元素的数量。
答案 1 :(得分:0)
试试这个。
count = 3
answers = []
for i in range(0, count):
answers[i] = input("select square number " + str(i+1) + ": "
for i in range(0, count-1):
for j in range(i+1, count):
if answers[i] == answers[j]:
print("don\'t repeat squares")
通过使用循环和数组(或集合或元组)来抽象这种事情(而不是手动编程每个变量)总是(几乎)总是更容易。
answers
是一个列表,第一个循环将数据输入到数组中。请注意,您只需修改count
的初始值即可轻松更改所需的数据量 - 这将改变其他所有内容(包括输入消息!)。
第二个循环实际上是一对嵌套的for循环,以便生成要比较的所有(相关)数据项对。请注意,第一个循环停止最后一个元素的一个短路,第二个循环在第一个循环的值之后开始一个循环。这是为了避免错误地将元素与自身进行比较。
澄清:
[]
是一个空列表。 Python中的列表只是一个有序的元素列表,可以通过列表中的位置(索引)访问这些元素。索引从0开始。(有充分的理由)
通常,range
函数返回给定范围内的所有整数包含下限(左参数)而不包括上限(右边的参数)。 (这也有很好的理由)