2024-09-26 04:56:42 发布
网友
我试图改变什么地图显示时,要求得到满足。我想在elif语句上使用一个范围来节省一些时间。你知道吗
curmov在0-31范围内每转一次都会改变
map1()、2、3是ASCII映射
def curmap(): global curmov if curmov <=9: mapNow = map1() elif curmov (10,24): mapNow = map2() elif curmov (25,30): mapNow = map3()
我不是100%确定curmov(10,24)应该是什么意思,但我怀疑是这样的:
curmov(10,24)
10 <= curmov < 24
……或者,相当于:
curmov in range(10, 24)
(对于使用Python2.x的未来读者,请注意:不要使用第二个。在Python2.x中,这将创建一个包含14个数字的列表,以便将它们与curmov逐一进行比较,这将是愚蠢的。在python3.x中,它创建了一个range对象,可以立即处理这个问题。)
curmov
range
注意,我使用的是10 <= curmov < 24。这就是所谓的“半开”范围,左半部分是“闭”的,因为10是范围的一部分,而右半部分是“开”的,因为24不是。在Python中,range(10, 24)检查相同的内容,因为Python中所有范围都是半开的。如果你想要一个“开放”的范围(既不是10也不是24作为它的一部分)或者一个“封闭”的范围(既有10又有24计数),第一个很容易改变,只要适当地改变<=或<;第二个,你必须在某处添加+1或-1。你知道吗
10
24
range(10, 24)
<=
<
+1
-1
但是,如果您的范围不应该重叠或有任何间隙,只需执行以下操作可能会更简单、可读性更强(甚至更健壮,因为不可能意外地被一个重叠和间隙关闭):
if curmov <= 9: blah elif curmov <= 24: bleh elif curmov <= 30: blih else: bluh
我不是100%确定
curmov(10,24)
应该是什么意思,但我怀疑是这样的:……或者,相当于:
(对于使用Python2.x的未来读者,请注意:不要使用第二个。在Python2.x中,这将创建一个包含14个数字的列表,以便将它们与
curmov
逐一进行比较,这将是愚蠢的。在python3.x中,它创建了一个range
对象,可以立即处理这个问题。)注意,我使用的是
10 <= curmov < 24
。这就是所谓的“半开”范围,左半部分是“闭”的,因为10
是范围的一部分,而右半部分是“开”的,因为24
不是。在Python中,range(10, 24)
检查相同的内容,因为Python中所有范围都是半开的。如果你想要一个“开放”的范围(既不是10
也不是24
作为它的一部分)或者一个“封闭”的范围(既有10
又有24
计数),第一个很容易改变,只要适当地改变<=
或<
;第二个,你必须在某处添加+1
或-1
。你知道吗但是,如果您的范围不应该重叠或有任何间隙,只需执行以下操作可能会更简单、可读性更强(甚至更健壮,因为不可能意外地被一个重叠和间隙关闭):
相关问题 更多 >
编程相关推荐