Hướng dẫn how to limit integer input in python - cách giới hạn đầu vào số nguyên trong python

Tôi đang cố gắng thực hiện một cuộc khảo sát trắc nghiệm cho phép người dùng chọn từ Tùy chọn 1-X. Làm thế nào tôi có thể làm cho nó để nếu người dùng nhập bất kỳ ký tự nào ngoài các số, hãy trả lại một cái gì đó như "đó là một câu trả lời không hợp lệ"

def Survey[]:
    print['1] Blue']
    print['2] Red']
    print['3] Yellow']
    question = int[input['Out of these options\[1,2,3], which is your favourite?']]
    if question == 1:
        print['Nice!']
    elif question == 2:
        print['Cool']
    elif question == 3:
        print['Awesome!']
    else:
        print['That\'s not an option!']

Gino Mempin

21.5K25 Huy hiệu vàng87 Huy hiệu bạc116 Huy hiệu đồng25 gold badges87 silver badges116 bronze badges

Hỏi ngày 27 tháng 4 năm 2014 lúc 16:43Apr 27, 2014 at 16:43

1

Mã của bạn sẽ trở thành:

def Survey[]:

    print['1] Blue']
    print['2] Red']
    print['3] Yellow']

    while True:
        try:
            question = int[input['Out of these options\[1,2,3], which is your favourite?']]
            break
        except:
            print["That's not a valid option!"]

    if question == 1:
        print['Nice!']
    elif question == 2:
        print['Cool']
    elif question == 3:
        print['Awesome!']
    else:
        print['That\'s not an option!']

Cách thức hoạt động này là nó tạo ra một vòng lặp sẽ lặp lại vô hạn cho đến khi chỉ có số được đưa vào. Vì vậy, tôi nói rằng tôi đặt '1', nó sẽ phá vỡ vòng lặp. Nhưng nếu tôi đặt 'Fooey!' Lỗi đã được nêu ra bị bắt bởi tuyên bố except và nó lặp lại vì nó chưa bị phá vỡ.

Đã trả lời ngày 27 tháng 4 năm 2014 lúc 16:54Apr 27, 2014 at 16:54

HarrycburnharrycburnHarryCBurn

7451 Huy hiệu vàng7 Huy hiệu bạc17 Huy hiệu đồng1 gold badge7 silver badges17 bronze badges

0

Cách tốt nhất sẽ là sử dụng hàm trợ giúp có thể chấp nhận một loại biến cùng với thông báo để thực hiện đầu vào.

def _input[message, input_type=str]:
    while True:
      try:
        return input_type [input[message]]
    except:pass

if __name__ == '__main__':
    _input["Only accepting integer : ", int]
    _input["Only accepting float : ", float]
    _input["Accepting anything as string : "]

Vì vậy, khi bạn muốn một số nguyên, bạn có thể vượt qua nó mà tôi chỉ muốn số nguyên, chỉ trong trường hợp bạn có thể chấp nhận số nổi, bạn vượt qua phao làm tham số. Nó sẽ làm cho mã của bạn thực sự mỏng vì vậy nếu bạn phải nhập 10 lần, bạn không muốn viết thử Catch Blocks mười lần.

Đã trả lời ngày 26 tháng 9 năm 2019 lúc 7:49Sep 26, 2019 at 7:49

Ahsan Royahsan RoyAhsan Roy

6405 Huy hiệu bạc13 Huy hiệu Đồng5 silver badges13 bronze badges

1

def func[]:
    choice = "Wrong"
    
    while choice.isdigit[]==False :
        choice = input["Enter a number: "]
        
        if choice.isdigit[]==False:
            print["Wrongly entered: "]
        else:
            return int[choice]

OCRDU

2.0976 Huy hiệu vàng13 Huy hiệu bạc21 Huy hiệu đồng6 gold badges13 silver badges21 bronze badges

Đã trả lời ngày 2 tháng 1 năm 2021 lúc 12:15Jan 2, 2021 at 12:15

VarunvarunVarun

Phù hiệu đồng 4144 bronze badges

Một giải pháp trong số những người khác: Sử dụng hàm

def Survey[]:

    print['1] Blue']
    print['2] Red']
    print['3] Yellow']

    while True:
        try:
            question = int[input['Out of these options\[1,2,3], which is your favourite?']]
            break
        except:
            print["That's not a valid option!"]

    if question == 1:
        print['Nice!']
    elif question == 2:
        print['Cool']
    elif question == 3:
        print['Awesome!']
    else:
        print['That\'s not an option!']
0 hoặc hàm
def Survey[]:

    print['1] Blue']
    print['2] Red']
    print['3] Yellow']

    while True:
        try:
            question = int[input['Out of these options\[1,2,3], which is your favourite?']]
            break
        except:
            print["That's not a valid option!"]

    if question == 1:
        print['Nice!']
    elif question == 2:
        print['Cool']
    elif question == 3:
        print['Awesome!']
    else:
        print['That\'s not an option!']
1 để kiểm tra xem bạn có ̀ ________ 12 hoặc
def Survey[]:

    print['1] Blue']
    print['2] Red']
    print['3] Yellow']

    while True:
        try:
            question = int[input['Out of these options\[1,2,3], which is your favourite?']]
            break
        except:
            print["That's not a valid option!"]

    if question == 1:
        print['Nice!']
    elif question == 2:
        print['Cool']
    elif question == 3:
        print['Awesome!']
    else:
        print['That\'s not an option!']
3 hoặc một số loại khác

>>> type[1]


>>> type[1.5]


>>> isinstance[1.5, int]
False

>>> isinstance[1.5, [int, float]]
True   

Đã trả lời ngày 27 tháng 4 năm 2014 lúc 16:50Apr 27, 2014 at 16:50

CyrillecyrilleCyrille

13.4K2 Huy hiệu vàng18 Huy hiệu bạc40 Huy hiệu đồng2 gold badges18 silver badges40 bronze badges

2

Tôi sẽ bắt đầu tiên là ngoại lệ

def Survey[]:

    print['1] Blue']
    print['2] Red']
    print['3] Yellow']

    while True:
        try:
            question = int[input['Out of these options\[1,2,3], which is your favourite?']]
            break
        except:
            print["That's not a valid option!"]

    if question == 1:
        print['Nice!']
    elif question == 2:
        print['Cool']
    elif question == 3:
        print['Awesome!']
    else:
        print['That\'s not an option!']
4 [không phải số nguyên] và kiểm tra xem câu trả lời có được chấp nhận không [trong vòng 1, 2, 3] hoặc tăng ngoại lệ
def Survey[]:

    print['1] Blue']
    print['2] Red']
    print['3] Yellow']

    while True:
        try:
            question = int[input['Out of these options\[1,2,3], which is your favourite?']]
            break
        except:
            print["That's not a valid option!"]

    if question == 1:
        print['Nice!']
    elif question == 2:
        print['Cool']
    elif question == 3:
        print['Awesome!']
    else:
        print['That\'s not an option!']
4 khác

def survey[]:
    print['1] Blue']
    print['2] Red']
    print['3] Yellow']

    ans = 0
    while not ans:
        try:
            ans = int[input['Out of these options\[1, 2, 3], which is your favourite?']]
            if ans not in [1, 2, 3]:
                raise ValueError
        except ValueError:
            ans = 0
            print["That's not an option!"]

    if ans == 1:
        print['Nice!']
    elif ans == 2:
        print['Cool']
    elif ans == 3:
        print['Awesome!']
    return None

Lipis

21K19 Huy hiệu vàng93 Huy hiệu bạc118 Huy hiệu đồng19 gold badges93 silver badges118 bronze badges

Đã trả lời ngày 27 tháng 4 năm 2014 lúc 17:31Apr 27, 2014 at 17:31

Georsfegeorstefgeorstef

1.3683 huy hiệu vàng12 Huy hiệu bạc18 Huy hiệu đồng3 gold badges12 silver badges18 bronze badges

1

Tôi đã thực hiện một mô -đun cho các trường hợp như thế này được gọi là hạn chế_input kiểm tra đầu vào trong thời gian thực. Ở đây, vì bạn chỉ cần đầu vào từ 1-3, điều này sẽ làm

from restricted_input import r_input
num = int[r_input["Out of these options\[1,2,3], which is your favourite? ", input_type="nothing", allow="123", maxlength=1]]

Nó sử dụng msvcrt.getch/termios để nhận đầu vào không chặn, do đó, nó kiểm tra nó trong thời gian thực và chỉ cho phép các ký tự được chỉ định. Lưu ý: Điều này sẽ không hoạt động trong Idles như Spyder, Jupyter, v.v.
Note: This will not work in IDLEs like Spyder, Jupyter etc.

Đã trả lời ngày 2 tháng 2 năm 2021 lúc 12:13Feb 2, 2021 at 12:13

FgoofgooFGoo

812 Huy hiệu bạc3 Huy hiệu đồng2 silver badges3 bronze badges

0

Bạn có thể sử dụng một mô -đun có tên PyInputPlus.

Installation:

pip install PyInputPlus

Bạn có thể sử dụng cái này như

def Survey[]:
    print['1] Blue']
    print['2] Red']
    print['3] Yellow']
    question = int[input['Out of these options\[1,2,3], which is your favourite?']]
    if question == 1:
        print['Nice!']
    elif question == 2:
        print['Cool']
    elif question == 3:
        print['Awesome!']
    else:
        print['That\'s not an option!']

mkrieger1

Huy hiệu vàng 16K449 Huy hiệu bạc58 Huy hiệu đồng4 gold badges49 silver badges58 bronze badges

Đã trả lời ngày 12 tháng 2 năm 2021 lúc 6:47Feb 12, 2021 at 6:47

Làm thế nào để bạn giới hạn số nguyên trong Python?

Giới hạn số.py def Giới hạn [num, tối thiểu = 1, tối đa = 255]: "" "Giới hạn đầu vào 'num' giữa giá trị tối thiểu và tối đa. Giá trị tối thiểu mặc định là 1 và giá trị tối đa là 255." ""def limit[num, minimum=1, maximum=255]: """Limits input 'num' between minimum and maximum values. Default minimum value is 1 and maximum value is 255. """

Làm thế nào để bạn giới hạn đầu vào chỉ các số nguyên trong Python?

Để chỉ cho phép đầu vào người dùng số nguyên: Sử dụng vòng lặp thực sự để lặp cho đến khi người dùng nhập số nguyên.Sử dụng lớp int [] để cố gắng chuyển đổi giá trị người dùng đã nhập thành một số nguyên.Nếu người dùng nhập một số nguyên, hãy sử dụng câu lệnh break để thoát ra khỏi vòng lặp.Use a while True loop to loop until the user enters an integer. Use the int[] class to attempt to convert the value the user entered to an integer. If the user entered an integer, use the break statement to break out of the loop.

Làm thế nào để bạn đặt một phạm vi đầu vào trong Python?

Các bước để sử dụng hàm phạm vi []..
Truyền các giá trị bắt đầu và dừng đến phạm vi [] ví dụ, phạm vi [0, 6].Ở đây, bắt đầu = 0 và dừng = 6.....
Chuyển giá trị bước cho phạm vi [] Bước chỉ định mức tăng.....
Sử dụng cho vòng lặp để truy cập từng số.Sử dụng cho vòng lặp để lặp và truy cập một chuỗi các số được trả về bởi một phạm vi [] ..

Làm thế nào để bạn giới hạn độ dài của một số loại đầu vào trong Python?

Để đặt giới hạn ký tự tối đa trong trường đầu vào, chúng tôi sử dụng thuộc tính MAXLEPT.Thuộc tính này được sử dụng để chỉ định số lượng ký tự tối đa nhập vào phần tử.Để đặt giới hạn ký tự tối thiểu trong trường đầu vào, chúng tôi sử dụng thuộc tính minlength. maxlength attribute. This attribute is used to specify the maximum number of characters enters into the element. To set the minimum character limit in input field, we use minlength attribute.

Bài Viết Liên Quan

Chủ Đề