我是编程的新手.有没有办法简化条件运算符
a = 50; b = 70; c = 60;
# Classification
if (a == b and b == c and c ==a):
print('Equilateral triangle')
elif (a == b or b == c or c == a):
print('Isosceles triangle')
elif (a!=b and b!=c and c!=a):
print('Scalene triangle')
Run Code Online (Sandbox Code Playgroud)
您可以and通过使用链式比较缩短使用的比较,并通过删除其中一个测试(它们是互斥的),使用else:
if a == b == c:
print('Equilateral triangle')
elif a != b != c != a:
print('Scalene triangle')
else:
print('Isosceles triangle')
Run Code Online (Sandbox Code Playgroud)
请注意,Python的if语法不需要围绕测试表达式的任何括号.
接下来,您可以将这些值看作一个集合,并测试集合中的元素数量:
unique_lengths = len({a, b, c})
if unique_lengths == 1:
print('Equilateral triangle')
elif unique_lengths == 2:
print('Isosceles triangle')
else:
print('Scalene triangle')
Run Code Online (Sandbox Code Playgroud)
然后可以变成列表查找,映射1,2并且3以三角形类名; 我None进入了这个0位置:
classes = [None, 'Equilateral', 'Isosceles', 'Scalene']
print(classes[len({a, b, c})], 'triangle')
Run Code Online (Sandbox Code Playgroud)