evi*_*as 2 python string integer join range
x = WAIT100MS
subroutines = ["WAIT"+str(range(1,256))+"MS"]
if x in subroutines:
print "success"
else:
print "invalid"
Run Code Online (Sandbox Code Playgroud)
我正在尝试创建一段代码,其中 ifWAITXMS位于1和 之间255,它将被接受,否则不会。range() 函数只是生成一个列表,所以我想我可以使用
" ".join("WAIT"+str(range(1,256))+"MS"),
以类似 的字符串结束x。然而,使用该join()函数range()似乎并不像我期望的那样工作,而是给了我一个正常的列表,如"WAIT[1,2,3,4,...]MS". 我应该怎么办?
我想你想要这样的东西:
''.join("WAIT%dMS"%i for i in range(1,256))
Run Code Online (Sandbox Code Playgroud)
这是我认为更好的方法:
def accept_string(s):
try:
i = int(s[4:-2])
except ValueError:
return False
return s.startswith('WAIT') and s.endswith('MS') and (1 <= i < 256)
Run Code Online (Sandbox Code Playgroud)