others - python - 验证输入的第一个数字是否为4

124 3

我有一个字符串,我必须创建一个函数,验证字符串中第一个数字是否等于4 。

 

def verify(number) : 


 int (input[0],10)


 for number in input:


 if input [0] == 4:


 return True


 elif input [0]!= 4:


 return False



input = "5000-0000-0000" 



结果应该是false,但是,如果我将输入更改为4000-0000-0000,应该打印 true

时间: 原作者:

135 0

循环输入中的数字,这样就不需要指定要检查的对象的索引,但是你不想再循环了,更改为:

 

def verify(number) : 


 if input[0] == '4':


 return True


 return False



这应该可以工作。

原作者:
62 1

你应该与字符串"4"进行比较,此外,比较的结果仍然返回布尔值,因此你可以删除if语句:

 

def verify(number):


 if not number:


 return False


 return number[0] == "4" 



注意,应该使用not number检查字符串的长度,以避免在传递空字符串时出现错误,另一个选项是startswith:

 

def verify(number):


 return number.startswith(" 4" )



在这种情况下,不需要检查,然而,这种方法往往比简单的比较更复杂一些,因为startswith是一个比较复杂的操作。

原作者:
132 2

这应该可以工作:

 

def verify(number):


 number = str(number)


 if number.startswith(" 4" ):


 return True


 else:


 return False



它采用var数字,转换为字符串,检查是否以"4"开头,否则返回true,否则返回 false 。

 

def verify(number):


 number = str(number) #convert number to string


 if number.startswith(" 4" ): #check if it starts with 4


 return True # return True if it does


 else:


 return False #otherwise return false



编辑:

就像@melpomene所建议的,可以进一步简化此代码:

 

def verify(number):


 return str(number).startswith(" 4" )



原作者:
104 2

如果需要验证精确模式,但是,从4开始,则需要执行以下操作:

 

def verify(s) :


 from re import match


 if match('^4[0-9]{3}-[0-9]{4}-[0-9]{4}$',s): return True


 return False



print(verify(" 5000-0000-0000" ))


print(verify(" 4000-0000-0000" ))



或者就像在评论中指出的:

if match('^4d{3}-d{4}-d{4}$',s): return True

原作者:
...