Нет ответа в python - PullRequest
       1

Нет ответа в python

0 голосов
/ 05 августа 2020

Я написал простой код для: введите любое число и di git и посчитайте, сколько раз di git входит в число.

код, который я написал:

num= int(input("enter a number"))
n=num
digit = int(input("enter the digit"))
times=0
while n > 0 :
    d = n%10
    if d==digit :
        times += 1
        continue
    else:
        continue
    n=n//10
print ("no. of times digit gets repeated is ", times)

Когда я попробовал этот код, он мне почему-то ничего не дал

Ответы [ 4 ]

2 голосов
/ 05 августа 2020

Удалите операторы else и continue, потому что l oop всегда попадает в continue и никогда не попадает в n=n//10

num= int(input("enter a number"))
n=num
digit = int(input("enter the digit"))
times=0
while n > 0 :
    d = n%10
    if d==digit :
        times += 1
    n=n//10
print ("no. of times digit gets repeated is ", times)

Вывод:

enter a number1111222233344567433232222222
enter the digit2
no. of times digit gets repeated is  12
2 голосов
/ 05 августа 2020
if d==digit :
    times += 1
    continue
else:
    continue
n=n//10

Существует нет способа добраться до строки кода выше, которая делит n на десять, потому что и истинная, и ложная ветки перезапускают l oop с continue, следовательно, n не будет никогда не изменит значение, и вы oop навсегда (для ввода ненулевого числа).

Вам следует удалить continue из обеих ветвей и, на самом деле, вам не нужна часть else, поскольку она ничего не делает:

if d == digit:
    times += 1
n = n // 10
1 голос
/ 05 августа 2020

Другие ответы указывают на ваше неправильное использование continue, но есть пара Pythoni c способов сделать это.

divmod() аккуратно выполняет деление и модуль в одна операция:

num = int(input("enter a number"))
digit = int(input("enter the digit"))
times = 0
while num > 0:
    num, d = divmod(num, 10)
    if d == digit:
        times += 1

print("no. of times digit gets repeated is ", times)

Вы также можете просто не делать ничего с числами, а со строками, а использовать str.count:

num = input("enter a number")
digit = input("enter the digit")
print("no. of times digit gets repeated is ", num.count(digit))
1 голос
/ 05 августа 2020

Строка n=n//10 никогда не выполняется из-за continue перед ней. Вам не нужно продолжать, если вы не собираетесь пропускать оставшуюся часть этой l oop итерации.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...