isd2020
а подскажите как на данном примере?
Прямо на этом примере без его исправления
def prime_number(a,k):
a = int(input("Enter the number: "))
k = 0
for i in range(2, a // 2+1):
if (a % i == 0):
k = k+1
if (k <= 0):
print("Prime Number")
else:
print("Not prime number")
prime_number(1, 1)
>>> def prime_number(a,k):
... a = int(input("Enter the number: "))
... k = 0
... for i in range(2, a // 2+1):
... if (a % i == 0):
... k = k+1
... if (k <= 0):
... print("Prime Number")
... else:
... print("Not prime number")
...
>>> prime_number(1, 1)
Enter the number: 13
Prime Number
>>> prime_number(1, 1)
Enter the number: 12
Not prime number
>>>
А так если смотреть, смысл в аргументах у функции, если ты их перезаписываешь внутри? Можно тогда вообще их убрать из функции и оставить только их ввод внутри функции. Получится процедура без аргументов.
Но лучше сделать так, чтобы в функцию подавались аргументы, она их брала и на их основе возвращала True или False. А уже снаружи функции аргументы сначала вводятся, потом подаются в функцию, а потом по True/False из функции также снаружи функции делается вывод.
Таким образом у тебя должно быть четыре функции: функция ввода аргументов; функция определения простоты числа; функция вывода на экран сообщения; и функция, которая связывает три перечисленные функции воедино.
Вот так это выглядит
>>> def input_number():
... number = int(input('Enter number: '))
... return number
...
>>> def is_prime_number(number):
... if number == 13:
... return True
... if number == 12:
... return False
...
>>> def print_number_result(number, is_prime):
... if is_prime:
... print("The number", number, "is prime")
... else:
... print("The number", number, "is not prime")
...
>>> def process_all():
... number = input_number()
... result = is_prime_number(number)
... print_number_result(number, result)
...
>>> process_all()
Enter number: 13
The number 13 is prime
>>> process_all()
Enter number: 12
The number 12 is not prime
>>>