如何将此代码转换为速记代码?它有可能吗?
我希望代码具有相同的目的,但可能的行数最少
inpt = input('Age: ')
age = int(inpt)
if age <= 10:
print('Kid')
elif age > 10 <= 20:
print('Teen')
elif age > 20:
print('Adult')
答案 0 :(得分:2)
让我们试试:
text = 'kid' if age <= 10 else 'teen' if age <= 20 else 'adult'
示例:
age = 4
text = 'kid' if age <= 10 else 'teen' if age <= 20 else 'adult'
print(text)
age = 12
text = 'kid' if age <= 10 else 'teen' if age <= 20 else 'adult'
print(text)
age = 25
text = 'kid' if age <= 10 else 'teen' if age <= 20 else 'adult'
print(text)
输出:
kid
teen
adult
答案 1 :(得分:1)
可以将其缩短为:
age = int(input('Age: '))
print('Kid' if age <= 10 else 'Teen' if age <= 20 else 'Adult')
那就是说,除非你为了好玩而做单行,否则在修复Teen
的测试后,我会坚持你的原始代码,只是让Adult
的情况变为普通{{} 1}}(无需重新测试else
,因为之前的案例消除了其他可能性。)
答案 2 :(得分:0)
这可能不是建议的,但您可以使用short circuiting
尝试一些内容。我个人认为这更具可读性(不适用于您的示例),但需要额外比较。
input = input('Age: ')
age = int(input)
age <= 10 and print('Kid')
age > 10 and age <= 20 and print('Teen')
age > 20 and print('Adult')
答案 3 :(得分:0)
怎么样:
age = int(input('Age: '))
print('Adult' if age > 20 else 'Kid' if age <= 10 else 'Teen')
在Python中你有一个三元运算符:
a if condition else b