如何限制输入的位数?

问题描述 投票:-3回答:4

我要求别人告诉我一个要求用户只输入9位数的程序。编号0不是在开始但有9位数。

如何限制位数?

例如:

Num=int(input('please Enter a Number'))
if num?! 

请尽快帮帮我

python
4个回答
1
投票

如果我做对了这应该工作:

a=input()
if len(a)==9 and a[0] != '0' and a.isdigit():
  #if you want it to be integer
  a=int(a)
  do something

希望能帮助到你。


1
投票

好吧,如果我理解正确,你需要一个程序,要求用户输入正好9位数。在那种情况下,它非常简单。

i = input("Enter a nine digit number: ")

if len(i) != 9:
    print("You must enter 9 digits!")
    quit()

if not i.isdigit():
    print("Your input must be a number!")
    quit()

# num is a 9 digit integer
# i is a 9 digit string
num = int(i)

0
投票

你可以这样做。

num = input('Please enter a number')

if not num[0] == "0" and len(num) == 9 and num.isdigit():
        # You can print a message or cast the num into an integer here
        # like this: input_number = int(num)
        print(True)
    else:
        print(False)

所以这里发生的是程序将接受用户输入并评估第一个数字是否为0并且长度恰好是9个字符。


-1
投票

在转换为int之前,您可以使用数字的字符串版本来测试其长度。这当然假设您信任用户只输入数字,因为如果接收到任何其他(有几个例外)作为输入,尝试转换为int将抛出错误。

它应该看起来像这样:

input_number = raw_input("Please enter a number: ")

while len(input_number) > 9:
    input_number = raw_input("That number was more than 9 digits. Please try again: ")

input_number = int(input_number)

通过等待转换为int,您可以继续检查长度,直到它小于或等于9。

编辑:

此示例将键入check,因此如果用户输入非数字,它将避免结束程序。

input_number = raw_input("Please enter a number: ")

while (True):
    if len(input_number) > 9:
        input_number = raw_input("That number was more than 9 digits. Please try again: ")
    else:
        try:
            input_number = int(input_number)
            break
        except:
            input_number = raw_input("That wasn't a number! Try again: ")
© www.soinside.com 2019 - 2024. All rights reserved.