验证字符串python中的第一位数字

时间:2018-11-08 20:54:07

标签: python string

我是python的新手,已经在python上搜索了该网站,但仍然无法弄清楚。

用于家庭作业,所以不寻找答案,但我无法弄清楚自己在做什么错并得到语法错误(我坚持第一条规则...)

作业: 我们将假设信用卡号是一个由14个字符组成的字符串,格式为####-####-####,包括破折号,其中'#'表示介于0之间的数字-9,因此总共有12位数字。 1.第一个数字必须是4。 2.第四位必须比第五位大一位;请记住,由于格式为####-####-####,所以它们之间用短划线隔开。 3.所有数字的总和必须被4整除。 4.如果将前两位数字视为两位数字,并将第七位和第八位视为两位数字,则它们的总和必须为100。

到目前为止,这是我的代码。我读过您不能将字符与数字进行比较,但是我尝试过的任何方法都没有用。任何帮助/指导将不胜感激!

def verify(number) : 

if input ['0'] == '4'
  return True
if input ['0'] != '4'
  return "violates rule #1"

input = "4000-0000-0000" # change this as you test your function
output = verify(input) # invoke the method using a test input
print(output) # prints the output of the function

3 个答案:

答案 0 :(得分:0)

您的代码很好,但是有几个问题

def verify(number) : 

   if input [0] == '4':
     return True
   if input [0] != '4':
     return "violates rule #1"

input = "4000-0000-0000" # change this as you test your function
output = verify(input) # invoke the method using a test input
print(output) # prints the output of the function

首先,缩进在python中很重要,应该定义属于函数定义的所有内容。

秒,如果if语句后应加上:。就是这样

答案 1 :(得分:0)

您的代码不正确:

def verify(number): 
# incorrect indent here
if input ['0'] == '4' # missing : and undeclared input variable, index should be int
   return True
if input ['0'] != '4'   # missing : and undeclared input variable, index should be int
  return "violates rule #1"

固定代码:

def verify(number):
    if number[0] != '4'
        return "violates rule #1"
    # other checks here
    return True

我也建议从此函数返回False而不是错误字符串。如果要返回错误的字符串,请考虑使用(is_successful, error)之类的元组或自定义对象。

答案 2 :(得分:0)

看看string indexing

  

可以对字符串进行索引(下标),第一个字符具有   索引0。没有单独的字符类型;一个字符只是一个   大小为一的字符串:

>>> word = 'Python'
>>> word[0]  # character in position 0 'P'
>>> word[5]  # character in position 5 'n'

然后阅读有关if-statements的信息-您的代码缺少:,第二个if可以用else子句代替。

您可能还需要检查函数的参数,而不是全局变量input(这是一个不好的名字,因为它隐藏了内置的input()

建议的解决方法:

def verify(number) : 
    if number[0] == '4':
        return True
    else:
        return "violates rule #1"

testinput = "4000-0000-0000" # change this as you test your function
output = verify(testinput) # invoke the method using a test input
print(output) # prints the output of the function