我已经学习Python一周了,这是我第一次编写代码。
正如标题所说,我有这个问题。我为规则1和规则2写的东西还可以,但对规则3和规则4就行不通了。你知道吗
给出的标准是:
- if 1st digit =4 then passed or return 1 (violated 1st rule)
- if 4th dig > 5th dig then passed or return 2 (violated 2nd rule)
- The sum of all digits must be evenly divisible by 4 or return 3
- if you treat the first two digits as a two-digit number and the seventh and eighth digits as a two-digit number, their sum must be 100 or return 4
像这样:
def verify(number) : #
x= int(number[0]+number[1]+number[2]+number[3])
y= int(number[5]+number[6]+number[7]+number[8])
z= int(number[11]+number[12]+number[13]+number[10])
temp = int(x) + int(y) + int(z)
temp2 = int(number[1]+number[0])
temp3 = int(number[8]+number[7])
sum1 = int(number[0])+int(number[1])+int(number[2])+int(number[3])+int(number[5])+int(number[6])+int(number[7])+int(number[8])+int(number[11])+int(number[10])+int(number[12])+int(number[13])
sum2 = temp2 + temp3
if int(number[0]) != 4:
return 1
#rule1
elif int(number[3]) <= int(number[5]) and int(number[0]) == 4:
return 2
#rule2
elif sum1 % 4 != 0 and number[3] > number[5] and number[0] == 4:
return 3
#rule3
elif sum1 % 4 == 0 and number[3] > number[5] and number[0] == 4 and sum2 != 100:
return 4
#rule4
else:
return True
print("the entered credit number is","output")
input = "9000-0000-0000" #It can vary to test the code
output = verify(input)
对不起,我英语不好(我不是本地人)
不如为所有数字的总和要求创建一个单独的函数,前两个要求非常正确:
示例无效用法1:
输出:
示例无效用法2:
输出:
有效用法示例:
输出:
相关问题 更多 >
编程相关推荐