p.i.n.k.u Ответов: 3

Не могли бы вы объяснить мне использование переменной k в следующей программе


num = int(input("enter a number")

i=2
k=0

while num>i:
    if num%i==0:
       k=1
       print("Number is not a prime number")
       i+=1
       break
if k==0:
   print("number is a prime number")


Что я уже пробовал:

я хочу знать, почему мы используем k в этом коде.

3 Ответов

Рейтинг:
7

CPallini

Даже если правильно отступить (спасибо Грифф), ваш код нарушен. Попробуйте вместо этого

num = int(input("enter a number "))
i = 2
prime = True

while num > i:
  if num % i == 0:
    prime = False
    break
  i += 1

if prime == True:
  print("number is a prime number")
else:
  print("Number is not a prime number")
Обратите внимание, что это особенно неэффективный способ установить, является ли число простым.


[Обновление]
Как 0x01AA мягко :-) подсказывает, что вы тоже можете написать
if prime:
  print("number is a prime number")
else:
  print("Number is not a prime number")

[/Обновление]


0x01AA

if prime == True: у меня болят глаза :) В противном случае 5

CPallini

У тебя есть моя симпатия :-D

Спасибо!

p.i.n.k.u

можно ли использовать break в этом коде вместо логического значения?
num = int(input("введите номер"))

i = 2

в то время как я < num:

если num % i == 0:
print("введенное число не является простым числом")
i += 1
перерыв
еще:
print("введенное число-простое число")
перерыв

CPallini

Таким образом, это не нормально (это может быть нормально, если правильно реализовано)

Рейтинг:
27

OriginalGriff

Отступы очень важны в Python, поэтому очень важно, чтобы вы форматировали свой код, когда публикуете его здесь - плоский влево не будет работать в Python! Я добавил теги для вас - используйте виджет "улучшить вопрос", чтобы увидеть, что я сделал.

Он используется как логическое значение: 0 означает "Я не нашел его, поэтому оно простое", а 1 означает "я нашел число, которое делится на него, поэтому оно не простое".
Он начинается как "простой" по умолчанию и изменяется, если доказано, что он не является простым.


Рейтинг:
19

Patrice T

Прежде всего, есть ошибка, попробуйте с вводом 5 или 7.

Цитата:
я хочу знать, почему мы используем k в этом коде.

Ваш код ведет себя не так, как вы ожидаете, или вы не понимаете, почему !

Существует почти универсальное решение: запускайте свой код на отладчике шаг за шагом, проверяйте переменные.
Отладчик здесь, чтобы показать вам, что делает ваш код, и ваша задача-сравнить с тем, что он должен делать.
В отладчике нет никакой магии, он не знает, что должен делать ваш код, он не находит ошибок, он просто помогает вам, показывая, что происходит. Когда код не делает того, что ожидается, вы близки к ошибке.
Чтобы увидеть, что делает ваш код: просто установите точку останова и посмотрите, как работает ваш код, отладчик позволит вам выполнять строки 1 на 1 и проверять переменные по мере их выполнения.

Отладчик - Википедия, свободная энциклопедия[^]

Освоение отладки в Visual Studio 2010 - руководство для начинающих[^]
Базовая отладка с помощью Visual Studio 2010 - YouTube[^]

27.3. ПДБ — отладчика Python — питон 3.6.1 документации[^]
Отладка в Python | Python покоряет Вселенную[^]
pdb – интерактивный отладчик - Python модуль недели[^]

Отладчик здесь только для того, чтобы показать вам, что делает ваш код, и ваша задача-сравнить его с тем, что он должен делать.