是否可以构造一个python if-then语句,其中相等性取决于变量和字符串?
例如,可能的值可能是" 4"," 4A"或" 4B"。但是我在4-12的循环中运行(所以我可能有5A,6,7B等;总是4-12的整数,之后可能有也可能没有字符串。)
我试过了:
B_steps=np.zeros(8)
A_steps=np.zeros(8)
No_steps=np.zeros(8)
for i in range(0,9,1):
if data[i]=="i+4""A":
A_steps[i]=A_steps[i]+1
elif data[i]=="i+4B":
B_steps[i]=B_steps[i]+1
else:
No_Steps[i]=No_steps[i]+1
但这不起作用;我的语法不适合识别变量(i + 4)和可能的字母。有人可以建议在if / then语句中使用变量和字符串的正确语法是什么?
答案 0 :(得分:0)
对于这种情况(以及您的语法不正确的原因),变量i
的类型为int
,
而你把它作为字符串文字的一部分放在一个字符串中
请尝试使用if data[i] == "%sA" % (i + 4)
。
此处发布的代码也没有正确缩进,尽管它可能是由复制粘贴引起的。
除此之外,如果你不熟悉python中的语言本身和约定,或者一些基本的编程概念,请自助Python Documentation。我会推荐“Tutorial”,“Library Reference”和“Python HOWTOS”的章节。
对于更复杂的场景,您可以尝试在python标准库中使用带re
的正则表达式,如:
for i in range(0, 9, 1):
if re.match(pattern_A, data[i]):
...
...