Как я могу исключить кавычки из моего вывода? - PullRequest
0 голосов
/ 11 октября 2019

Мне нужно написать функцию is_prime, чтобы определить, является ли n простым числом, а если нет, я должен показать факторы, начиная с наименьшего возможного фактора.

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

def is_prime(n):
    pass

    if n > 1:
       for i in range(2,n):
           if (n % i) == 0:
               return(n,'is not a prime number', '(', i,'*',n//i,'=', n, ')')

               break
       else:
           return(n,'is prime')

    else:
       return(n,'is not a prime number')

print(is_prime(12))

Ответы [ 2 ]

0 голосов
/ 11 октября 2019

Вместо использования запятой (,) в выражении возврата, замените его знаком плюс (+) и преобразуйте все свое числовое значение в строку, используя функцию str ().

def is_prime(n):
    pass

    if n > 1:
       for i in range(2,n):
           if (n % i) == 0:
               return(str(n) + ' is not a prime number ' + '(' + str(i) + '*' + 
str(n//i) + '=' + str(n) + ')')

               break
       else:
           return(n + 'is prime')

    else:
       return(n + 'is not a prime number')

print(is_prime(12))
0 голосов
/ 11 октября 2019

Ваша проблема в том, что вы возвращаете список, когда вам нужно вернуть строку, вы должны использовать str.format (), чтобы вернуть строку:

https://www.digitalocean.com/community/tutorials/how-to-use-string-formatters-in-python-3

Также вы этого не делаетевам нужны ваши 'break' или 'else', потому что когда вы выполняете оператор return, ваша функция завершается.

Таким образом, если вы нашли делитель n, вы попадаете в оператор return, а код после этого не выполняется.

def is_prime(n):
    if n > 1:
        for i in range(2, n):
            if (n % i) == 0:
                return('{n} is not a prime number ({i} * {q} = {n})'.format(n=n, i=i, q=n//i))
        return('{n} is prime'.format(n=n))
    return('{n} is not a prime number'.format(n=n))

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