簡體   English   中英

將用戶輸入限制為3個整數

[英]Limit user input to 3 integers

我想更改輸入數字的要求,以僅允許三位數字。

shootnum = None
while True:
    try:
        shootnum = int(input("Enter today's shoot number > "))
        break
    except ValueError:
        print("Invalid number, please try again.")

我需要更改什么以適應ValueError?

說啊:

if x <= 999 and x >= 100:
    print("Yes")
else:
    print("No.")

1個正則表達式(由MaartenFabré啟發)

import re

while True:
    try:
        shoot = raw_input("Enter today's shoot number > ") # I use python 2.7
        shootnum = int(shoot)
        if not re.match(r'\d{3}$', shoot):
            raise ValueError # can be caught by except
        print shootnum
    except ValueError:
        print("Invalid number, please try again.")

2只需檢查拍攝是否為三位數

while True:
    try:
        shoot = raw_input("Enter today's shoot number > ") # I use python 2.7
        shootnum = int(shoot)
        if len(shoot) != 3 or shoot[0] == '-':
             raise ValueError # can be caught by except
        print shootnum
    except ValueError:
        print("Invalid number, please try again.")

結果如下

Enter today's shoot number > qwer
Invalid number, please try again.
Enter today's shoot number > -12
Invalid number, please try again.
Enter today's shoot number > 123
123
Enter today's shoot number > 1222
Invalid number, please try again.
Enter today's shoot number > 012
12
Enter today's shoot number > 0122
Invalid number, please try again.
Enter today's shoot number > 0
Invalid number, please try again.
Enter today's shoot number > 00
Invalid number, please try again.
Enter today's shoot number > 000
0
Enter today's shoot number > 0000
Invalid number, please try again.

您為什么不簡單地將輸入限制為3位數字:

shootnum = int(input("Enter today's shoot number > ")[:3])
print(shootnum)

如果您對以0開頭的數字有疑問,可以改用以下方法:

shootnum = (int(input("Enter today's shoot number > ")))
shootnum = (str(shootnum))
shootnum = int(shootnum[:3])
print((shootnum))

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM