2016-10-20 3 views
-4

Я пытаюсь проверить, есть ли определенная цифра внутри моего кортежа, используя инструкцию if, но это трудно. Что здесь не так?Проверка наличия элемента в кортеже, если условие

def racaman(x): 
    y = x 
    w = (0,) 
    for i in range(y): 
     k = w[i]-x[i] 
     if k == i in w: 
      w = w + ((w[i]+x[i]),) 
     else: 
      w = w + ((w[i]-x[i]),) 
+3

Отклоните свой код ... это невозможно прочитать – Glostas

+1

Это просто элемент в кортеже. Я не уверен, почему у вас есть заявление о равном –

+1

И, пожалуйста, задайте более конкретный вопрос и объясните, что вы пробовали, и какие у вас проблемы. –

ответ

0

Вы можете заменить 3 в состоянии, если найти конкретную цифру

def raceman(x): 
    #assuming x is tuple 
    if 3 in x: 
     print("found") 
    else: 
     print("not found") 
raceman((1,2,3,4)) 
0

Пожалуйста, исправьте ваш вопрос, код вставки правильно. Я не уверен, что вы просите, но, я думаю:

tupl = (1,2,3,4,5) 
    if 1 in tupl: 
     print('y') 
    else: 
     print('n') 
0

Я бы рекомендовал список вместо

def racaman(x): 
    w = [0] 
    for i in range(x): 
     k = w[i]-x[i] 
     if k in w: # fix this 
      w.append(w[i]+x[i]) 
     else: 
      w.append(k) # already calculated 
    return w # did you want to return that? 
0

Это может быть просто вопрос проверки так:

>>>n in t 

где п является цифрой и т является кортежем, например:

>>>2 in (1,2,3) 
True 

Однако это не достаточно, если вы ищете цифры и элементы являются строками:

>>>2 in ('a1','a2','a3') #won't return desired output since digit '2' is part of a string 
False 

Если так, вам нужно будет прибегнуть к более адаптивному методу, итерацию над элементы кортежа и тестирование каждого из них с подходящим регулярным выражением (import re).

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