функция программирования в python - PullRequest
0 голосов
/ 31 января 2020

Я пытаюсь создать функцию, которая принимает два параметра: D = di git (0-9) и n = положительное число.

Если D - число четности, функция должна дать мне 0, но, если D - нечетное число, функция должна считать числа нечетного числа, которое у меня есть в n.

Существует проблема с этим кодом, но я не знаю, что:

def testD(D,n):
    if D % 2 == 0:
        return 0
    count = 0
    while n > 0:
        if(n%10) %2==1:
            count +=1
        n=n/10
    return count

1 Ответ

1 голос
/ 31 января 2020

Я изменил 2 вещи:

  • while n > 1: вместо while n > 0: в противном случае ваш l oop никогда не останавливается
  • n=n//10 вместо n=n/10, где // - это евклидово деление, вот что вам нужно здесь

Вы должны попробовать это:

def testD(D,n):
    if D % 2 == 0:
        return 0
    count = 0
    while n > 1:
        if(n%10) %2==1:
            count +=1
        n=n//10
    return count

print(testD(7, 555))
# output : 3 (because 7 is odd, and there is 3 odd digits in 555)
...