Como resolver Python “SyntaxError não pode atribuir para a chamada de função”

Como resolver Python “SyntaxError não pode atribuir para a chamada de função”

Python depende quase inteiramente das chamadas de função e declarações variáveis. Eles tornam possível reutilizar o código -fonte muitas vezes. Os argumentos são usados ​​para ativar funções dinamicamente e chamar funções relativamente semelhantes enquanto modificam certos valores, levando a um resultado ou fluxo diferente de instruções. Teremos um SyntaxError se a utilizarmos indevidamente.

Um SyntaxError é um erro da linguagem de programação Python que acontece quando um programa não segue as regras predefinidas do idioma. É um aspecto relativamente típico do erro humano que ocorre durante a digitação e também no uso dos sistemas. Sempre que essa forma de erro aparece, o intérprete Python fornece dados úteis, tornando a maioria dos erros de sintaxe simples de resolver.

Neste tutorial, veremos por que o erro “SyntaxError: não é possível atribuir para a chamada de função” surge em códigos python e como corrigi -lo. Para avaliar a adequação desse erro, examinaremos diferentes exemplos que o ilustram.

Obtendo a raiz quadrada da matriz

Devido a um parêntese perdido ou declaração variável inadequada, o “SyntaxError: não pode atribuir a chamada para a função” acontece sempre que o programa termina inesperadamente sem concluir parte do código. Vamos executar um código que itera em todos os valores da matriz, calculando a raiz quadrada dessas matrizes e retornando uma matriz que contém a raiz quadrada dos números definidos:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
importar numpy como np
importar matplotlib.pyplot como plt
sq_num = [25, 81, 100, 121, 144, 169]
def sq_root (num):
sq_roots = []
para n em números:
n_sqrt = n ** 1.5
sq_roots.Anexar (N_SQRT)
Retorne sq_roots
sq_root (sq_num) = sq_roots
Imprimir (sq_roots)

Aqui, apresentamos as bibliotecas Numpy como "np" e matplotlib.Pyplot como "pLT". Em seguida, declaramos uma lista de valores aleatórios e especificamos os elementos da lista. Esses elementos são armazenados em uma variável "sq_num". Definimos a função "sq_root ()" e passamos a lista definida como um parâmetro para a função "sq_root ()".

Agora, aplicamos o loop "for". Aplicamos uma condição que mostra que cada número da lista será multiplicado por 1.5 e então o valor da lista é incrementado. Digitamos o comando "retornar" onde o valor fornecido é atribuído a uma variável e a saída é impressa no console usando a função print ().

Pretendemos fornecer um valor a uma chamada de função, o que resultou em ThesyntoxError. Sq_root (sq_num) é a chamada de método usada nesta instância. Tentamos definir o valor sq_roots para a variável sq_root (sq_num). Sempre que precisamos alocar a resposta de uma função a um atributo, especificamos a variável primeiro. O nome do parâmetro, o sinal de igualdade e o valor dado a essa variável são organizados nessa ordem.

Solução:

Para corrigir isso, temos que alterar o arranjo das declarações da variável (sq_roots = sq_roots (sq_num)). Vem bem antes da declaração "impressão". O programa é executado com sucesso e exibe os valores da raiz quadrada na tela.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
importar numpy como np
importar matplotlib.pyplot como plt
sq_num = [25, 81, 100, 121, 144, 169]
def sq_root (num):
sq_roots = []
para n em num:
n_sqrt = n ** 1.5
sq_roots.Anexar (N_SQRT)
Imprimir (sq_roots)
[5.0, 9.0, 10, 11, 12, 13]

Você pode verificar a seguinte saída:

Encontrando a porcentagem das marcas

Os alunos iniciantes do Python tendem a cometer esse erro se perder a declaração variável e a chamada de função durante o processo de alocação. O parâmetro com o qual pretendemos alocar o valor deve estar no lado esquerdo do sinal igual (=), e a função que fornece o valor deve estar no lado direito.

Vejamos este exemplo no qual a chamada de função está no lado esquerdo e o nome da variável está à direita:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
importar numpy como np
importar matplotlib.pyplot como plt
def por (m):
obtin_marks = soma (m)
maximum_marks = len (m) *100
Retornar Round ((obttain_marks/total_marks)*100, 2)
std_m = [80, 70, 90, 85, 75]
por (std_m) = total_per
imprimir (total_per)

Depois de incluir as bibliotecas necessárias para este programa, definimos a função per () para encontrar a porcentagem das marcas. Criamos duas listas chamadas "obtin_marks" e "total_marks". Aplicamos a função len () e depois a multiplicamos por 100 e a definimos na variável "Total_marks". Entramos na declaração de "retorno". Os "obtin_marks" são divididos pelo "total_marks" e multiplicar o valor por 100. Aplicamos esta fórmula para obter a porcentagem das marcas do aluno.

Então criamos uma matriz que contém as marcas do aluno. Atribuímos o valor à função per () na ordem "por (std_m) = total_per". Aplicamos o comando "impressão" no final do código.

Podemos deduzir da declaração de erro de que estamos tendo um erro na linha de código 12 quando pretendemos adicionar a variável "total_per" à declaração de chamada de função per (std_m). Adicionar a variável é inadequada de acordo com a sintaxe do Python.

Solução:

Mudamos os locais da chamada de função per (std_m) e a variável "total_per" para resolver este erro. Como resultado, a variável "total_per" é alocada para o valor fornecido da função per ().

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
importar numpy como np
importar matplotlib.pyplot como plt
def por (m):
obtin_marks = soma (m)
total_marks = len (m) *100
Retornar Round ((obttain_marks/total_marks)*100, 2)
std_m = [80, 70, 90, 85, 75]
total_per = por (std_m)
Imprimir (total_per, '%')

Você pode verificar a seguinte saída:

Conclusão

Neste artigo, conversamos sobre “SyntaxError: não é possível atribuir para a chamada de função.”Quando pretendemos delegar uma chamada de função para a variável definida, obtemos o resultado,“ SyntaxError: não é possível atribuir para a chamada de chamada.”Vamos supor que a chamada de função vem pouco antes da variável local. O código Python avaliaria o código como se tentasse dar valor a uma única variável pelo mesmo título que a chamada de função.

Para corrigir esse erro, devemos utilizar a sintaxe Python adequada para a declaração da variável definida. O nome da variável exigida vem em primeiro lugar, seguido pelo sinal igual e, por fim, os dados para especificar essa variável. Ao atribuir o valor retornado de uma chamada de função a uma variável necessária, a variável deve estar no lado esquerdo e o método deve estar no lado direito.