Hướng dẫn python input only allow numbers - đầu vào python chỉ cho phép số

Chỉ cho phép đầu vào người dùng số nguyên trong Python #

Chỉ cho phép đầu vào người dùng số nguyên:

  1. Sử dụng vòng lặp

    Copied!

    while True: try: num = int(input('Your favorite integer: ')) print(num) break except ValueError: print('Please enter an integer.')
    1 để lặp cho đến khi người dùng nhập số nguyên.
  2. Sử dụng lớp

    Copied!

    while True: try: num = int(input('Your favorite integer: ')) print(num) break except ValueError: print('Please enter an integer.')
    2 để cố gắng chuyển đổi giá trị người dùng đã nhập thành một số nguyên.
  3. Nếu người dùng nhập số nguyên, hãy sử dụng câu lệnh

    Copied!

    while True: try: num = int(input('Your favorite integer: ')) print(num) break except ValueError: print('Please enter an integer.')
    3 để thoát ra khỏi vòng lặp.

Copied!

while True: try: num = int(input('Your favorite integer: ')) print(num) break except ValueError: print('Please enter an integer.')

Hướng dẫn python input only allow numbers - đầu vào python chỉ cho phép số

Chúng tôi đã sử dụng vòng lặp

Copied!

while True: try: num = int(input('Your favorite integer: ')) print(num) break except ValueError: print('Please enter an integer.')
1 để lặp lại cho đến khi người dùng nhập giá trị số nguyên.

Hàm đầu vào có một đối số

Copied!

while True: try: num = int(input('Your favorite integer: ')) print(num) break except ValueError: print('Please enter an integer.')
5 tùy chọn và ghi nó vào đầu ra tiêu chuẩn mà không cần một dòng mới.

Hàm sau đó đọc dòng từ đầu vào, chuyển đổi nó thành một chuỗi và trả về kết quả.

Hàm

Copied!

while True: try: num = int(input('Your favorite integer: ')) print(num) break except ValueError: print('Please enter an integer.')
6 luôn trả về một chuỗi, ngay cả khi người dùng nhập số nguyên.

Chúng tôi đã sử dụng lớp

Copied!

while True: try: num = int(input('Your favorite integer: ')) print(num) break except ValueError: print('Please enter an integer.')
2 để cố gắng chuyển đổi giá trị mà người dùng đã nhập thành một số nguyên.

Copied!

while True: try: num = int(input('Your favorite integer: ')) print(num) break except ValueError: print('Please enter an integer.')

Nếu nỗ lực chuyển đổi giá trị không thành công, một

Copied!

while True: try: num = int(input('Your favorite integer: ')) print(num) break except ValueError: print('Please enter an integer.')
8 sẽ được nâng lên và khối

Copied!

while True: try: num = int(input('Your favorite integer: ')) print(num) break except ValueError: print('Please enter an integer.')
9 chạy.

Khối

Copied!

while True: try: num = int(input('Your favorite integer: ')) print(num) break except ValueError: print('Please enter an integer.')
9 in thông báo "Vui lòng nhập một số nguyên" và các vòng lặp lại vòng lặp.

Nếu người dùng nhập số nguyên, chúng tôi in số nguyên và

Copied!

while True: try: num = int(input('Your favorite integer: ')) print(num) break except ValueError: print('Please enter an integer.')
3 ra khỏi vòng lặp

Copied!

while True: try: num = int(input('Integer between 1 and 100: ')) print(num) if num < 1 or num > 100: raise ValueError break except ValueError: print('Please enter an integer between 1 and 100.')
2.

Tuyên bố phá vỡ thoát ra khỏi vòng lặp

Copied!

while True: try: num = int(input('Integer between 1 and 100: ')) print(num) if num < 1 or num > 100: raise ValueError break except ValueError: print('Please enter an integer between 1 and 100.')
3 hoặc

Copied!

while True: try: num = int(input('Integer between 1 and 100: ')) print(num) if num < 1 or num > 100: raise ValueError break except ValueError: print('Please enter an integer between 1 and 100.')
2.

Nếu bạn cần đảm bảo người dùng nhập một số nguyên trong một phạm vi nhất định, hãy sử dụng câu lệnh

Copied!

while True: try: num = int(input('Integer between 1 and 100: ')) print(num) if num < 1 or num > 100: raise ValueError break except ValueError: print('Please enter an integer between 1 and 100.')
5.

Copied!

while True: try: num = int(input('Integer between 1 and 100: ')) print(num) if num < 1 or num > 100: raise ValueError break except ValueError: print('Please enter an integer between 1 and 100.')

Hướng dẫn python input only allow numbers - đầu vào python chỉ cho phép số

Đoạn mã chỉ cho phép người dùng nhập số nguyên giữa

Copied!

while True: try: num = int(input('Integer between 1 and 100: ')) print(num) if num < 1 or num > 100: raise ValueError break except ValueError: print('Please enter an integer between 1 and 100.')
6 và

Copied!

while True: try: num = int(input('Integer between 1 and 100: ')) print(num) if num < 1 or num > 100: raise ValueError break except ValueError: print('Please enter an integer between 1 and 100.')
7.

Nếu giá trị không phải là số nguyên, nhỏ hơn

Copied!

while True: try: num = int(input('Integer between 1 and 100: ')) print(num) if num < 1 or num > 100: raise ValueError break except ValueError: print('Please enter an integer between 1 and 100.')
6 hoặc lớn hơn

Copied!

while True: try: num = int(input('Integer between 1 and 100: ')) print(num) if num < 1 or num > 100: raise ValueError break except ValueError: print('Please enter an integer between 1 and 100.')
7, thì

Copied!

while True: try: num = int(input('Your favorite integer: ')) print(num) break except ValueError: print('Please enter an integer.')
8 sẽ được tăng lên và các vòng lặp lại.

Khi người dùng nhập một số nguyên trong phạm vi được chỉ định, không có

Copied!

while True: try: num = int(input('Your favorite integer: ')) print(num) break except ValueError: print('Please enter an integer.')
8 nào được nâng lên và chúng tôi thoát ra khỏi vòng lặp

Copied!

while True: try: num = int(input('Integer between 1 and 100: ')) print(num) if num < 1 or num > 100: raise ValueError break except ValueError: print('Please enter an integer between 1 and 100.')
2.

mark= eval(raw_input("What is your mark?"))
try:
    int(mark)
except ValueError:
    try:
        float(mark)
    except ValueError:
        print "This is not a number"

Vì vậy, tôi cần tạo một chương trình Python nhìn vào dấu của bạn và cung cấp cho bạn các câu trả lời khác nhau tùy thuộc vào nó là gì.

Tuy nhiên, tôi cũng cần thêm một cách để dừng văn bản ngẫu nhiên mà không phải là số được nhập vào chương trình.

Tôi nghĩ rằng tôi đã tìm thấy một giải pháp cho việc này nhưng nó sẽ không vượt qua câu nói đầu tiên cho mã FailSafe có nghĩa là để bắt nó nếu nó là bất cứ điều gì ngoài số.

Vì vậy, khá nhiều điều xảy ra là nếu tôi nhập

mark= eval(raw_input("What is your mark?"))
try:
    int(mark)
except ValueError:
    try:
        float(mark)
    except ValueError:
        print "This is not a number"
3 thay vì một số nó thất bại ở dòng đầu tiên và cho tôi trở lại một lỗi có nghĩa là
mark= eval(raw_input("What is your mark?"))
try:
    int(mark)
except ValueError:
    try:
        float(mark)
    except ValueError:
        print "This is not a number"
4.

Làm thế nào tôi có thể thay đổi nó để nó có thể đưa nó vào mã cung cấp cho họ câu lệnh in rằng họ cần nhập một số?

Hỏi ngày 16 tháng 12 năm 2014 lúc 23:51Dec 16, 2014 at 23:51

Hướng dẫn python input only allow numbers - đầu vào python chỉ cho phép số

5

Xóa Eval và mã của bạn là chính xác:

mark = raw_input("What is your mark?")
try:
    int(mark)
except ValueError:
    try:
        float(mark)
    except ValueError:
        print("This is not a number")

Chỉ cần kiểm tra một chiếc phao sẽ hoạt động tốt:

try:
    float(mark)
except ValueError:
    print("This is not a number")

Hướng dẫn python input only allow numbers - đầu vào python chỉ cho phép số

Đã trả lời ngày 16 tháng 12 năm 2014 lúc 23:55Dec 16, 2014 at 23:55

Hướng dẫn python input only allow numbers - đầu vào python chỉ cho phép số

1

Có dễ dàng hơn để khai báo giá trị toàn cầu hơn là vượt qua một đối số, trong trường hợp của tôi, nó cũng gây ra lỗi.

def getInput():
    global value
    value = input()
    while not value.isnumeric():
        print("enter a number")
        value = input("enter again")
    return int(value)

getInput()
print(value)

#Không thể bình luận :)

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

Bạn chỉ có thể CAE đến

mark= eval(raw_input("What is your mark?"))
try:
    int(mark)
except ValueError:
    try:
        float(mark)
    except ValueError:
        print "This is not a number"
5 hoặc
mark= eval(raw_input("What is your mark?"))
try:
    int(mark)
except ValueError:
    try:
        float(mark)
    except ValueError:
        print "This is not a number"
6 và nắm bắt ngoại lệ (nếu có). Bạn đang sử dụng Eval được coi là kém và bạn thêm rất nhiều tuyên bố dự phòng.

try:
    mark= float(raw_input("What is your mark?"))
except ValueError:
    print "This is not a number"

"Tại sao không sử dụng eval?" Bạn hỏi, ... Hãy thử đầu vào này từ người dùng:

mark= eval(raw_input("What is your mark?"))
try:
    int(mark)
except ValueError:
    try:
        float(mark)
    except ValueError:
        print "This is not a number"
7

Đã trả lời ngày 16 tháng 12 năm 2014 lúc 23:55Dec 16, 2014 at 23:55

Hướng dẫn python input only allow numbers - đầu vào python chỉ cho phép số

Reut Sharabanireut SharabaniReut Sharabani

29,7k6 huy hiệu vàng69 Huy hiệu bạc86 Huy hiệu đồng6 gold badges69 silver badges86 bronze badges

Bạn có thể sử dụng phương thức đối tượng chuỗi được gọi là isnumeric. Nó hiệu quả hơn thử- ngoại trừ phương thức. Xem mã dưới đây.

def getInput(prompt):
    value = input(prompt)
    while not value.isnumeric():
        print("enter a number")
        value = input("enter again")
    return int(value)

Đã trả lời ngày 5 tháng 4 năm 2019 lúc 8:20Apr 5, 2019 at 8:20

import re

pattern = re.compile("^[0-9][0-9]\*\\.?[0-9]*")

status = re.search(pattern, raw_input("Enter the Mark : "))

if not status:

        print "Invalid Input"

Abdul Hadi

1.2091 Huy hiệu vàng11 Huy hiệu bạc19 Huy hiệu đồng1 gold badge11 silver badges19 bronze badges

Đã trả lời ngày 17 tháng 12 năm 2014 lúc 1:25Dec 17, 2014 at 1:25

Hướng dẫn python input only allow numbers - đầu vào python chỉ cho phép số

HarikharikhariK

2.50212 huy hiệu bạc16 Huy hiệu đồng12 silver badges16 bronze badges

Trên thực tế, nếu bạn sẽ sử dụng eval (), bạn phải xác định nhiều thứ hơn.

Copied!

while True: try: num = int(input('Your favorite integer: ')) print(num) break except ValueError: print('Please enter an integer.')
0

Đó là một cơ chế kiểm soát cơ bản cho eval ().

Đã trả lời ngày 16 tháng 12 năm 2014 lúc 23:59Dec 16, 2014 at 23:59

Hướng dẫn python input only allow numbers - đầu vào python chỉ cho phép số

GLHFGLHFGLHF

3.78510 Huy hiệu vàng36 Huy hiệu bạc81 Huy hiệu đồng10 gold badges36 silver badges81 bronze badges