2016-05-10 4 views
0

Возможно ли построить инструкцию if-then python, где равенство зависит как от переменной, так и от строки?Оператор Python If с переменной и строкой

Например, возможные значения могут быть «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
  1. Для этого сценария (и почему ваш синтаксис невозможно), переменная i имеет тип int, в то время как вы поместите его в строку, как часть строкового литерала.
    Попробуйте вместо if data[i] == "%sA" % (i + 4). Также код, который вы разместили здесь, не имеет отступов правильно, хотя это может быть вызвано копированием. Кроме того, если вы не похожи на сам язык и соглашения в python или некоторые базовые концепции программирования, помогите себе с Python Documentation. Я бы рекомендовал главы «Tutorial», «Reference Library» и «Python HOWTOS».

  2. Для более сложных сценариев, вы можете попробовать использовать регулярные выражения с re из питона стандартной библиотеки, как: for i in range(0, 9, 1): if re.match(pattern_A, data[i]): ... ...

Смежные вопросы