Überprüfen Sie, ob jede Zahl im 4-stelligen Code zwischen diesen beiden Werten liegt. Aber jede Zahl liegt im Bereich 0-9, daher wird dies nicht wahr sein. Nun, nicht zwischen diesen beiden Werten persay Ihre erste, wenn Bedingung if x > max
ist einfach zu prüfen, ob die Zahl größer als 9999
und dann True zurückgibt. Sie müssen Ihre Bedingungen verschachteln, indem Sie und/oder> Operatoren verwenden, um nach einer Zahl zwischen diesem Bereich zu suchen.
Sie sollten Ihre zwei Variablen min
und max
nicht benennen, da sie in Python integriert sind und Sie die Funktionalität überschreiben. Sie können auch Ihren Zustand kombinieren. Wenn Sie nicht Ihre Auswahl an akzeptierten Werten wollen inklusiv sein nehmen nur der =
in <=
in der unter Bedingung 9999
und 1000
Sie ausschließen können die zusätzlichen is True
in Ihrer ursprünglichen fallen, wenn da Bedingung nur if (expression)
tun wird werte es als Wahrheitswert oder "Wahrhaftigkeit" aus.
Ich habe eine while-Schleife hinzugefügt, die den Benutzer kontinuierlich auffordert, 4-stellige Codes einzugeben, bis sie tatsächlich die Länge 4 und gültige Ziffern haben, um Fehler in der anderen Funktion zu verhindern und die Eingabe zu validieren.
Sie brauchen eigentlich nicht einmal die else: return False
da nichts zurückzukehr None
zurückkehren und als nicht in Ihrer wenn die Bedingung wahr ist, ausgewertet werden, aber ich habe das es eher das Original zu halten. Sie könnten min und max als global deklarieren (oder lokal in Ihrer main()) -Funktion, und verwenden Sie einfach if _min <= int(digitCode) <= _max
, wenn Sie kurz und bündig sein möchten.
def choiceTwo(digitCode):
_max = 9999
_min = 1000
if _min <= digitCode <= _max:
return True
else:
return False
def main():
digitCode = input("Please enter a 4 digit code: ")
while not (digitCode.isdigit() and len(digitCode) == 4):
digitCode = input("Please enter a 4 digit code: ")
if choiceTwo(int(digitCode)):
print("Number is verified!")
else:
print("ERROR not a valid ")
main()