Hướng dẫn python only allow certain input - python chỉ cho phép một số đầu vào nhất định

Tôi đang cố gắng chỉ cho phép một số đầu vào trong Python bằng cách sử dụng mã sau

while True:
    age=input['Are you 1,2 OR 3']
    if age== ['1' or '2' or '3']:
        break
    else:
        print['df']

Khi tôi nhập 1, không có lỗi nào xuất hiện và nó tiếp tục phần còn lại của chương trình, tuy nhiên khi tôi nhập 2 hoặc 3, nó sẽ xuất hiện với lỗi khác: lỗi. Tôi đã thử thay đổi nó một chút và có vẻ như nó chỉ chấp nhận số đầu tiên từ các lựa chọn [1]. Có lẽ là một sửa chữa rất đơn giản. Cảm ơn vì bất kì sự giúp đỡ.

Đã hỏi ngày 22 tháng 3 năm 2015 lúc 23:06Mar 22, 2015 at 23:06

1

Bạn cần thay đổi

if age in ['1', '2', '3']:
0 Kiểm tra với:

if age in ['1', '2', '3']:

if age in ['1', '2', '3']:
1 là một biểu thức boolean trả về chuỗi không trống đầu tiên. Và trong trường hợp này, chuỗi là
if age in ['1', '2', '3']:
2.

Ví dụ:

>>> '1' or '2' or '3'
'1'
>>> '' or '2' or '3'
'2'

Đã trả lời ngày 22 tháng 3 năm 2015 lúc 23:08Mar 22, 2015 at 23:08

JuniorCompressorJuniorCompressorJuniorCompressor

Huy hiệu vàng 19.3k44 gold badges28 silver badges57 bronze badges

2

Bạn không thể tham gia so sánh như thế. Bạn có thể:

if age == '1' or age == '2' or age == '3':

hoặc sử dụng toán tử

if age in ['1', '2', '3']:
3 như JuniorCompressor đề xuất.

Đã trả lời ngày 22 tháng 3 năm 2015 lúc 23:08Mar 22, 2015 at 23:08

JuniorCompressorJuniorCompressorSelcuk

Huy hiệu vàng 19.3k412 gold badges95 silver badges100 bronze badges

Chỉ chấp nhận số làm đầu vào người dùng trong Python #

Chỉ chấp nhận số làm đầu vào người dùng:

  1. Sử dụng vòng lặp
    if age in ['1', '2', '3']:
    
    4 để lặp cho đến khi người dùng nhập một số.
  2. Sử dụng lớp
    if age in ['1', '2', '3']:
    
    5 để cố gắng chuyển đổi giá trị thành số dấu phẩy động.
  3. Nếu người dùng nhập một số, hãy sử dụng câu lệnh
    if age in ['1', '2', '3']:
    
    6 để thoát khỏi vòng lặp.

Copied!

while True: try: # 👇️ use int[] instead of float # if you only accept integers num = float[input['Your favorite number: ']] print[num] break except ValueError: print['Please enter a number.']

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

if age in ['1', '2', '3']:
4 để 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ố

if age in ['1', '2', '3']:
8 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

if age in ['1', '2', '3']:
9 luôn trả về một chuỗi, ngay cả khi người dùng nhập một số.

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

if age in ['1', '2', '3']:
5 để cố gắng chuyển đổi giá trị mà người dùng đã nhập thành số dấu phẩy động.

Copied!

while True: try: # 👇️ use int[] instead of float # if you only accept integers num = float[input['Your favorite number: ']] print[num] break except ValueError: print['Please enter a number.']

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

>>> '1' or '2' or '3'
'1'
>>> '' or '2' or '3'
'2'
1 sẽ được nâng lên và khối
>>> '1' or '2' or '3'
'1'
>>> '' or '2' or '3'
'2'
2 chạy.

Khối

>>> '1' or '2' or '3'
'1'
>>> '' or '2' or '3'
'2'
2 in thông báo "Vui lòng nhập một số" và các vòng lặp lại.

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

if age in ['1', '2', '3']:
6 ra khỏi vòng lặp
>>> '1' or '2' or '3'
'1'
>>> '' or '2' or '3'
'2'
5.

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

>>> '1' or '2' or '3'
'1'
>>> '' or '2' or '3'
'2'
6 hoặc
>>> '1' or '2' or '3'
'1'
>>> '' or '2' or '3'
'2'
5.

Nếu bạn chỉ chấp nhận các giá trị số nguyên, hãy sử dụng lớp

>>> '1' or '2' or '3'
'1'
>>> '' or '2' or '3'
'2'
8 thay thế.

Copied!

while True: try: # 👇️ use int[] instead of float # if you only accept integers num = int[input['Your favorite number: ']] print[num] break except ValueError: print['Please enter a number.']

Lưu ý rằng nếu bạn sử dụng lớp

>>> '1' or '2' or '3'
'1'
>>> '' or '2' or '3'
'2'
8 để cố gắng chuyển đổi một chuỗi lưu trữ số điểm nổi thành số nguyên, một
>>> '1' or '2' or '3'
'1'
>>> '' or '2' or '3'
'2'
1 sẽ được nâng lên.

Copied!

# ⛔️ ValueError: invalid literal for int[] with base 10: '5.5' print[int['5.5']] # ✅ works print[int[5.5]] # 👉️ 5.5

Lớp

if age in ['1', '2', '3']:
5 dễ tha thứ hơn nhiều.

Copied!

print[float['5.5']] # 👉️ 5.5 print[float['5']] # 👉️ 5.0

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

if age == '1' or age == '2' or age == '3':
2.

Copied!

while True: try: num = float[input['Enter a number between 1 and 5: ']] print[num] if num 5: raise ValueError break except ValueError: print['Please enter a number between 1 and 5.']

Đoạn mã chỉ cho phép người dùng nhập một số từ

if age == '1' or age == '2' or age == '3':
3 và
if age == '1' or age == '2' or age == '3':
4.

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

if age == '1' or age == '2' or age == '3':
3 hoặc lớn hơn
if age == '1' or age == '2' or age == '3':
4, A
>>> '1' or '2' or '3'
'1'
>>> '' or '2' or '3'
'2'
1 được tăng lên và các vòng lặp lại chạy lại.

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

>>> '1' or '2' or '3'
'1'
>>> '' or '2' or '3'
'2'
1 nào được nâng lên và chúng tôi thoát ra khỏi vòng lặp
>>> '1' or '2' or '3'
'1'
>>> '' or '2' or '3'
'2'
5.

Làm thế nào để tôi chỉ cho phép một số đầu vào nhất định trong Python?

Để chỉ chấp nhận số làm đầu vào người dùng: Sử dụng vòng lặp thực sự để lặp cho đến khi người dùng nhập một số. Sử dụng lớp float [] để cố gắng chuyển đổi giá trị thành số điểm nổi. Nếu người dùng nhập một số, 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 a number. Use the float[] class to attempt to convert the value to a floating-point number. If the user entered a number, use the break statement to break out of the loop.

Làm cách nào để hạn chế đầu vào int trong Python?

Làm thế nào để chỉ lấy đầu vào số nguyên trong câu trả lời của mã Python..
# Để nhắc người dùng nhập một số nguyên, chúng tôi thực hiện như sau:.
hợp lệ = sai ..
Mặc dù không hợp lệ: #Loop cho đến khi người dùng nhập int hợp lệ ..
x = int [đầu vào ['nhập một số nguyên:']].
hợp lệ = true #Nếu đạt được điểm này, x là một int hợp lệ ..
ngoại trừ valueError:.

Làm thế nào để bạn giới hạn một đầu vào chuỗi trong Python?

Để hạn chế độ dài đầu vào của người dùng: Sử dụng vòng lặp thời gian để lặp lại cho đến khi người dùng nhập một chuỗi có độ dài được chỉ định.Kiểm tra xem người dùng có nhập thông báo về độ dài đã cho không.Use a while loop to iterate until the user enters a string of the specified length. Check if the user entered a message of the given length.

Làm thế nào để bạn hạn chế loại dữ liệu trong Python?

Python hạn chế loại tham số chức năng..
Def ADD [A: Int, B: Int, C: Int = 0] -> Int:.
"" "Thêm 2 hoặc 3 số nguyên và trả về kết quả số nguyên ..
cho var trong [a, b, c]:.
Nếu không isinstance [var, int]:.
Tăng TypeError ['Vui lòng đảm bảo tất cả các đầu vào là số nguyên'].
Kết quả = A + B + C ..
Kết quả trở lại ..

Bài Viết Liên Quan

Chủ Đề