Когда я использую код с генератором в нем - cmd зависает - PullRequest
0 голосов
/ 20 апреля 2020

Я пытаюсь закодировать валидатор пин-кода, и результат всегда «Ложь», хотя пин-код содержит только 4 цифры и не содержит букв (он должен содержать только 4 цифры и не содержит букв).

def numbergenerator():
    number=999
    while number<9999:
        number+=1   
        yield number

def validate_pin(pin):
    true="True"
    false="False"
    if str(pin) in numbergenerator():
        return true
    else:
        return false
print(validate_pin(1234))

1 Ответ

0 голосов
/ 20 апреля 2020

По предложению @yarnabrina. Вы можете просто сделать это:

def validate_pin(pin):
    return pin in range(1000, 10000)

print(validate_pin(1224)) # True

Проблема с вашим кодом заключается в том, что вы фактически преобразовываете пин-код в строку с str(pin), а затем проверяете, лежит ли он в диапазоне или Integer числах.

Если вы вместо этого хотите, чтобы работала ваша собственная версия, то это будет:

def numbergenerator():
    number=999
    while number<9999:
        number+=1   
        yield number

def validate_pin(pin):
    true="True"
    false="False"
    if pin in numbergenerator():
        return true
    else:
        return false

print(validate_pin(1224))

Я только что удалил str из вашего кода.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...