Как проверить, если целое число, которое я хочу внутри моего значения (если int не итеративный) - PullRequest
0 голосов
/ 15 марта 2019

Я пытаюсь запустить этот тестовый код:

def test(**kwargs):
    for key, value in kwargs.items():
        if 'sdk' in key:
            print value
            if 1 in value:
                print 'HelloWorld'    

test(sdk=1)

Но, конечно, это даст мне ошибку, так как целое число не повторяется, так как вы, ребята, проверяете, если целое число, которое вы хотите внутри значения?Спасибо

Ответы [ 2 ]

1 голос
/ 15 марта 2019

Вы должны использовать выражение if value == 1.

if 1 in value ожидает, что value является итеративным (например, массив или dict) и возвращает True, если 1 содержится в value, и False в противном случае.

Если value не является итеративным, вы получите исключение:

>>> arr = [1, 2, 3]
>>> 1 in arr
True
>>> 4 in arr
False
>>> not_arr = 1
>>> 1 in not_arr
Traceback (most recent call last):
  File "<stdin>", line 1, in <module>
TypeError: argument of type 'int' is not iterable
>>> not_arr == 1
True
>>> not_arr == 2
False
1 голос
/ 15 марта 2019

Использование and и сравнение '1' с типом str value:

def test(**kwargs):
    for key, value in kwargs.items():
        if 'sdk' in key and '1' in str(value): # True in case of test(sdk=19)
                print('HelloWorld')

test(sdk=1)

ИЛИ

, если вы это сделаетене хотите превращать 1 в str '1', == - это то, что вы могли бы использовать:

if 'sdk' in key and 1 == value: # False in case of test(sdk=19)

ВЫХОД :

HelloWorld
...