我是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
答案 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)
可以对字符串进行索引(下标),第一个字符具有 索引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