如何同时检查两个值是否在范围内?能否用单行代码实现?
解决单行判断两个值是否在指定范围的问题
嘿,我懂你想简化代码的想法,但你现在的判断写法在Python里是行不通的——player_number, player_number2会被解析成一个元组,而range(0,2)里的元素是单个整数(0和1),元组肯定不在这个范围里,所以才会报错。
给你两种可行的单行写法:
方法1:用and分别判断(最直观)
直接明确检查两个变量都在目标范围内,可读性拉满:
while True: player_number = int(input('Determine first player Random(0) or AI(1):')) player_number2 = int(input('Determine second player Random (0) or AI (1):')) if player_number in range(0,2) and player_number2 in range(0,2): break else: print ('Out of range. Please choose a player')
方法2:用all()函数简化(适合多变量场景)
如果以后要检查更多变量,用all()可以让代码更简洁,不用写一堆and:
while True: player_number = int(input('Determine first player Random(0) or AI(1):')) player_number2 = int(input('Determine second player Random (0) or AI (1):')) if all(x in range(0,2) for x in [player_number, player_number2]): break else: print ('Out of range. Please choose a player')
两种写法都能实现你要的效果,选哪个看你自己的习惯啦~
内容的提问来源于stack exchange,提问作者Vural Erdogan
相关产品推荐
相关产品推荐

