Python 我如何将其拆分为2或3个函数?

Python 我如何将其拆分为2或3个函数?,python,python-3.x,Python,Python 3.x,我只是想知道如何把它分成不同的函数,比如说2或3个函数?我还不太擅长用函数传递参数。你会建议这样做,还是我应该保持它在一个函数中的方式,因为它是一个while循环?顺便说一句,这是一门初级编程课,所以它很长 def sumOfDoublePlace(userChoice): lenChecker = len(str(userChoice)) counter = 0 sumNumber = 0 userChoice = int(userChoice) whi

我只是想知道如何把它分成不同的函数,比如说2或3个函数?我还不太擅长用函数传递参数。你会建议这样做,还是我应该保持它在一个函数中的方式,因为它是一个while循环?顺便说一句,这是一门初级编程课,所以它很长

def sumOfDoublePlace(userChoice):
    lenChecker = len(str(userChoice))
    counter = 0
    sumNumber = 0
    userChoice = int(userChoice)
    while counter < lenChecker-1:
        counter += 1
        endDigit, userChoice = divmod(userChoice, 10)

        if counter % 2 == 0:
            evenNumber = endDigit * 2

            if evenNumber < 10:
                sumNumber = sumNumber + evenNumber

            else:
                oddDigit = endDigit % 10
                firstDigit = endDigit // 10
                oddSum = oddDigit + firstDigit
                sumNumber = sumNumber + oddSum
        else:
            sumNumber = sumNumber + endDigit

    if sumNumber % 10 == 0:
        print('This card is valid')
    else:
        print('This card is invalid')
def sumOfDoublePlace(用户选择):
lenChecker=len(str(userChoice))
计数器=0
sumNumber=0
userChoice=int(userChoice)
当计数器<1时:
计数器+=1
endDigit,userChoice=divmod(userChoice,10)
如果计数器%2==0:
偶数=尾数*2
如果偶数小于10:
sumNumber=sumNumber+evenNumber
其他:
oddDigit=结束位%10
firstDigit=endDigit//10
oddSum=oddDigit+firstDigit
sumNumber=sumNumber+oddSum
其他:
sumNumber=sumNumber+endDigit
如果sumNumber%10==0:
打印('此卡有效')
其他:
打印('此卡无效')

总的来说,我认为这应该是一个单一的例程。然而,您正在走一条有点曲折的道路来解决问题。当原始文本中的数字完全可以访问时,您需要做大量的工作来从卡号的整数版本中提取数字

以下是访问所需字符串位置的开始:

def isValidCardNumber(cardNumber):
    num_len = len(cardNumber)
    last  = int(cardNumber[-1])  # grab the last digit; convert to integer
    odds  = cardNumber[0:-1:2]   # positions 0, 2, 4, ... last-1
    evens = cardNumber[1:-1:2]   # positions 1, 3, 5, ... last-1

    # For each list of digits, make a list of their integer equivalents.
    #     ... and immediately take the sum of those integers.
    odd_sum  = sum([int(digit) for digit in odds])
    even_sum = sum([int(digit) for digit in evens])

剩下的就留给你了。:-)

总的来说,我认为这应该是一个单一的常规。然而,您正在走一条有点曲折的道路来解决问题。当原始文本中的数字完全可以访问时,您需要做大量的工作来从卡号的整数版本中提取数字

以下是访问所需字符串位置的开始:

def isValidCardNumber(cardNumber):
    num_len = len(cardNumber)
    last  = int(cardNumber[-1])  # grab the last digit; convert to integer
    odds  = cardNumber[0:-1:2]   # positions 0, 2, 4, ... last-1
    evens = cardNumber[1:-1:2]   # positions 1, 3, 5, ... last-1

    # For each list of digits, make a list of their integer equivalents.
    #     ... and immediately take the sum of those integers.
    odd_sum  = sum([int(digit) for digit in odds])
    even_sum = sum([int(digit) for digit in evens])

剩下的就留给你了。:-)

传递的是什么?该函数的目的是什么?该函数基本上获取userinput(在本例中是一个13-16位的信用卡号,该函数执行算法来验证它是否为有效的信用卡号)。userChoice是用户输入的存储位置…以及什么构成“有效”?这似乎是古代的奇偶校验和算法;你认为哪些子函数有意义?此外,你还没有费心使用lenChecker值。你可能想完成这部分作业。这是一个编程入门课程,所以到目前为止一切都很基本,我还没有学到很多类似的comp复杂的函数或术语,除此之外,我在while循环中使用了lenChecker。传递的是什么?这个函数的目的是什么?这个函数基本上得到了用户输入(在本例中,它是一个13-16位的信用卡号,此函数执行算法以验证它是否是有效的信用卡号。userChoice是存储用户输入的位置…以及什么构成“有效”?这似乎是古代的奇偶校验和算法;你认为哪些子函数有意义?此外,你还没有费心使用lenChecker值。你可能想完成这部分作业。这是一个编程入门课程,所以到目前为止一切都很基本,我还没有学到很多类似的comp复杂的函数或术语,除此之外,我在while循环中使用了lenChecker,这就是我一直在尝试的输入!哈哈,我只是不知道如何将它们转换为字符串中的整数,但我最初的想法只是不知道如何扩展它,因为我们在2个类之前才开始讨论字符串但非常感谢您!+1了解原始代码的行为。我无法理解问题中提到的原始代码在做什么。@匿名:教授编程的优点之一…:-)这就是我一直试图对输入做的!哈哈,我只是不知道如何将它们转换成字符串中的整数,但我最初的想法只是不知道如何扩展它,因为我们在2个类之前才开始讨论字符串,但非常感谢你!+1了解原始代码的行为。我无法理解掌握问题中提到的原始代码在做什么。@anonymous:教授编程的优点之一…:-)