การตรวจสอบอินพุตใน Python ที่มีขอบเขตต่ำและสูง

ฉันต้องการความช่วยเหลือในการสร้างฟังก์ชันเพื่อให้แน่ใจว่าอินพุตของผู้ใช้นั้นถูกต้องสำหรับการใช้งาน หากไม่ถูกต้อง เราจำเป็นต้องขอให้พวกเขาป้อนข้อมูลอื่นอีกครั้ง

ความต้องการฟังก์ชันแรกจะมีพารามิเตอร์ prompt ต่ำ สูง โดย prompt ถามผู้ใช้อินพุต ต่ำคือขอบเขตล่าง และสูงคือขอบเขตบน

นี่คือสิ่งที่ฉันมี:

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 แหล่งที่มา


คำตอบ (3)


คุณมีเงื่อนไขของคุณตามลำดับที่แปลก

เพื่อให้แน่ใจว่าอินพุตอยู่ระหว่างขอบเขตต่ำและสูง หากเป็นเช่นนั้น ระบบจะส่งคืนอินพุต ไม่เช่นนั้นระบบจะถามอีกครั้ง ฉันเพิ่มข้อความเสริมเล็กน้อยเพื่อแจ้งให้ผู้ใช้ทราบถึงช่วงที่คาดหวัง

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

ถ้า inputs <= low เป็นจริง แสดงว่า inputs >= high ไม่สามารถเป็นจริงในเวลาเดียวกันได้ ดังนั้นการตรวจสอบว่าทั้งสองเป็นจริงพร้อมกันผ่าน inputs <= low and inputs >= high หรือไม่ จึงไม่สมเหตุสมผลและจะเป็นเท็จเสมอไป รหัสของคุณจะทำงานได้ดีหากคุณใช้ or แทน 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

อาจใช้การเรียกซ้ำ? แบบนี้:

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

การ Recusion จะทำงานจนถึงระดับความลึกที่กำหนดเท่านั้น แต่อาจมีอินพุตนับพันรายการ

person MD98    schedule 13.10.2020