Kontrola poprawności podawanych przez użytkownika wartości

0

Witam. Mam proste zadanie, ale jako że tylko rozpoczęłam programować i uczę się, nie wiem, jak to napisać.

Program prosi użytkownika wprowadzić ID, ale jeśłi jest on nierówny 4001, prosi zrobić to ponownie, aż dopóki użytkownik nie wpisze 4001.

port_ID = int(input("Wprowadz ID: "))
if port_ID != 4001:

dalej chcę, aby program prosił ponownie wprowadzić ID aż dopóki nie będzie on równy 4001.

1

while True:
    port_ID = int(input("Wprowadz ID: "))
    if port_ID == 4001:
        break

Można na przyklad w taki sposob to zrobić.

1

No to po co ma wpisać w pętli, skoro wiesz, że to ID to ma być dokładnie równe 4001?

1
Beata Griškevič napisał(a):

Witam. Mam proste zadanie, ale jako że tylko rozpoczęłam programować i uczę się, nie wiem, jak to napisać.

Program prosi użytkownika wprowadzić ID, ale jeśłi jest on nierówny 4001, prosi zrobić to ponownie, aż dopóki użytkownik nie wpisze 4001.

port_ID = int(input("Wprowadz ID: "))
if port_ID != 4001:

dalej chcę, aby program prosił ponownie wprowadzić ID aż dopóki nie będzie on równy 4001.

Oprócz tego, co mówili Koledzy, jeśli ten ID nie ma być (logicznie) liczbą, to lepiej darować sobie int i napisać:

while True:
    port_ID = input("Wprowadz ID: ")
    if port_ID == "4001":
        break

Dzięki temu nie masz problemu, gdy ktoś napisze blabla zamiast liczby...

1

albo:

port_ID = ""
while port_ID!="4001":
    port_ID = input("Wprowadz ID: ")

lub nawet

while input("wprowadz id:")!="4001":
    ()

Ale to oczywiście tylko warianty tego samego. Jeżeli zależy Ci użytkownik wiedział, że może tylko wprowadzać int możesz zrobić:


while True:
    try:
        port_ID = int(input("Wprowadz ID: "))
        if port_ID == 4001:
           break
    except ValueError:
        print("Wprowadzaj tylko liczby")
        continue

1 użytkowników online, w tym zalogowanych: 0, gości: 1