Python检查4位数字

Python检查4位数字,python,Python,因此,在这个函数中,我指定数字必须是4位,字符串必须有数字。即使我输入1234,它也会打印错误。字符串。数字是字符串,“0123456789”string.digits==True是无意义的,并且保证总是返回False 如果要确保输入的所有字符都是数字,请执行以下操作: import string import math def fourDigit(): num = raw_input("Enter a 4 digit number: ") if (len(num) == 4 a

因此,在这个函数中,我指定数字必须是4位,字符串必须有数字。即使我输入1234,它也会打印错误。

字符串。数字是字符串,
“0123456789”
string.digits==True
是无意义的,并且保证总是返回
False

如果要确保输入的所有字符都是数字,请执行以下操作:

import string
import math
def fourDigit():
    num = raw_input("Enter a 4 digit number: ")
    if (len(num) == 4 and string.digits == True):
        some = int(int(val[1]) + int(val[3]))
        print("The sum of the 1st and second term is: ")
    else:
       print("Error!")
如果出于任何原因确实想使用
string.digits
,正确使用它的较慢方法是:

if len(num) == 4 and num.isdigit():

首先,变量
val
是什么?另外,如果您添加两个
int
s,结果将是一个int。使用定义错误的变量
some=int(int(val[1])+int(val[3])
的行将一个int强制转换为一个冗余且不必要的int。通过禁用测试,仍然会出现错误。您可能想重新检查您的输入
print(repr(num))
应该让您知道您是否真的有四位数字,或者
str
中是否缺少其他内容。
if len(num) == 4 and all(c in string.digits for c in num):