Найти - Пользователи
Полная версия: Функция возвращает Input значение:
Начало » Python для новичков » Функция возвращает Input значение:
1
isd2020
Добрый день, есть задача написать скрипт который определяет число Простое или нет.
Скрипт работает:

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”)

Но при попытке создать функцию на основе - все перестает работать, компилятор разрешает ввести значение и просто его же возвращает…
Функция:

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”)

Подскажите что не так пожалуйста…. использую repl.it

py.user.next
Функцию нужно вызвать.
isd2020
Спасибо … а подскажите как на данном примере?
py.user.next
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
>>>
This is a "lo-fi" version of our main content. To view the full version with more information, formatting and images, please click here.
Powered by DjangoBB