Python函数,用于检查信用卡号是否是使用for循环的有效数字

时间:2017-10-23 05:08:16

标签: python python-3.x for-loop

所以这是一个cs赋值,我编写的代码适用于9个测试用例中的2个(未知),但我不知道为什么它不会工作/通过任何其他那些。我明白我应该试着弄清楚如何自己做这件事,我已经尝试过,但我真的迷路了,需要帮助!

"写一个名为credit_card.py的文件,其中包含一个函数,check。 Check接受单个输入 - 正整数。如果整数表示有效的信用卡号,则返回True。与返回bool值的所有函数一样,如果它不返回True,则返回False。

信用卡号码具有所谓的校验位。这是检测卡号常见错误类型的简单方法。算法如下:

形成每个其他数字的总和,包括最右边的数字;所以5490123456789128(5490123456789128)总和为4 + 0 + 2 + 4 + 6 + 8 + 1 + 8 = 33。 将每个剩余数字加倍,然后将创建它的所有数字相加;在我们的示例(5490123456789128)中剩余的数字(5 9 1 3 5 7 9 2)加倍到10 18 2 6 10 14 18 4,其总和为1 + 0 + 1 + 8 + 2 + 6 + 1 + 0 + 1 +4 + 1 + 8 + 4 = 37 加上上面两个总和(33 + 37 = 70) 如果结果是10的倍数(即,它的最后一位数是0)那么它就是一个有效的信用卡号。"

def check(x):
    num1 = 0
    num2 = 0
    if x < 0:
        return False
    for i in str(x) [1::2]:
        num1 += int(i)
        return num1
    for i in str(x) [0::2]:
        num2 += int(int(i * 2) % 10) + int(int(i * 2) / 10)
        return num2
    check_digit = num1 + num2
    if check_digit % 10 == 0:
        return True
    else:
        return False

1 个答案:

答案 0 :(得分:0)

function Search_gridUser(strKey)
{
    var strData = strKey.value.toLowerCase().split(" ");
    var tblData = document.getElementById('<%=gridData.ClientID %>');
    var total = 0;

    for (var i = 1; i < tblData.rows.length; i++) 
    {
        rowData = tblData.rows[i].innerHTML;
        var styleDisplay = 'none';
        for (var j = 0; j < strData.length; j++) 
        {
            if (rowData.toLowerCase().indexOf(strData[j]) >= 0) {
                styleDisplay = '';
            }
            else {
                styleDisplay = 'none';
                total++;
                break;
            }
        }
        tblData.rows[i].style.display = styleDisplay;
    }
}