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.