Validasi Input dengan Python dengan batas rendah dan tinggi

Saya memerlukan bantuan untuk membuat fungsi untuk memastikan input pengguna valid untuk digunakan. Jika tidak valid, maka kita perlu meminta mereka memasukkan kembali informasi yang berbeda.

Kebutuhan fungsi pertama akan memiliki parameter, prompt, low, high, dimana prompt meminta input dari pengguna, low adalah batas bawah dan high adalah batas atas.

Inilah yang saya miliki sejauh ini:

def get_int(prompt,low,high):
 inputs= int(input(prompt))
while inputs<= low and inputs >=high:
   inputs= int(input(prompt))
return inputs

person Linda    schedule 13.10.2020    source sumber


Jawaban (3)


Anda memiliki kondisi Anda dalam urutan yang aneh.

Hal ini akan memastikan bahwa masukan berada di antara batas rendah dan tinggi. Jika ya, inputnya dikembalikan, jika tidak maka ditanyakan lagi. Saya menambahkan sedikit pesan opsional untuk memberi tahu pengguna tentang kisaran yang diharapkan.

def get_int(prompt, low, high):
    while True:
       inputs = int(input(prompt))
       if low <= inputs <= high:
           return inputs
#      else:
#          print(f"Please provide a number between {low} and {high}.")
person Guimoute    schedule 13.10.2020

Jika inputs <= low benar, maka inputs >= high tidak mungkin benar pada saat yang bersamaan. Jadi memeriksa apakah keduanya benar sekaligus melalui inputs <= low and inputs >= high tidak masuk akal dan akan selalu salah. Kode Anda akan berfungsi dengan baik jika Anda menggunakan or alih-alih and:

def get_int(prompt,low,high):
    inputs = int(input(prompt))
    while inputs <= low or inputs >= high:
        inputs = int(input(prompt))
    return inputs
person Random Davis    schedule 13.10.2020

Mungkin menggunakan rekursi? Seperti ini:

def user_input():
    value = input("Please enter input: ")
    if not low <= value <= high:
        user_input()
    return value

Recusion bekerja hanya sampai kedalaman tertentu, tapi ini mungkin ribuan masukan.

person MD98    schedule 13.10.2020