IndentationError: unexpected indent
Résolu
Bonjour, j'ai un soucis avec mon code ça me présent une erreur d'indentation pourtant je l'ai corrigé mais ça reviens toujours, je vous l'affiche en bas si il y'a quelqu'un qui peut m'aider stp.
le problème se trouve au niveau de : " return xopt, minf, result_code, nbr_evaluation"
le problème se trouve au niveau de : " return xopt, minf, result_code, nbr_evaluation"
#Bibliothèque import numpy as np import scipy.signal import statistics import math import nlopt # optimisation from numpy import * from scipy.interpolate import interp1d import matplotlib.pyplot as plt # Fonction '''' mex = np.linspace(8.1, 8.1, num=31, endpoint=True) x = np.linspace(0.7, 30.1, num=295, endpoint=True) y = [152.948, 152.948, 152.948, 152.948, 152.948, 152.948, 187.581, 187.581, 187.581, 187.581, 187.581, 187.581, 187.581, 26.9917, 26.9917, 26.9917, 26.9917, 26.9917, 26.9917, 8.13275, 8.13275, 8.13275, 8.13275, 8.13275, 8.13275, 8.11583, 8.11583, 8.11583, 8.11583, 8.11583, 8.11583, 8.08774, 8.08774, 8.08774, 8.08774, 8.08774, 8.08774, 8.09396, 8.09396, 8.09396, 8.09396, 8.09396, 8.09396, 8.09396, 8.09424, 8.09424, 8.09424, 8.09424, 8.09502, 8.09502, 8.09385, 8.09385, 8.09385, 8.09385, 8.09385, 8.09715, 8.09715, 8.09715, 8.10806, 8.10806, 8.10806, 8.1, 8.1, 8.1, 8.1, 8.1, 8.1, 8.0958, 8.09735, 8.09735, 8.09735, 8.09735, 8.09735, 8.1, 8.1, 8.1, 8.1, 8.1, 8.1, 8.0946, 8.0946, 8.0946, 8.09668, 8.09668, 8.09668, 8.09668, 8.09668, 8.09668, 8.09668, 8.09441, 8.09441, 8.09622, 8.09622, 8.09622, 8.09622, 8.09622, 8.09622, 8.09622, 8.09622, 8.10434, 8.10434, 8.0959, 8.0959, 8.0959, 8.0959, 8.0959, 8.0959, 8.0959, 8.0959, 8.0959, 8.09279, 8.08541, 8.08541, 8.08541, 8.08541, 8.08541, 8.08541, 8.08541, 8.08541, 8.08541, 8.10446, 8.10542, 8.10542, 8.10542, 8.10542, 8.10542, 8.10542, 8.10542, 8.10542, 8.10542, 8.10542, 8.09503, 8.09503, 8.09503, 8.09503, 8.09503, 8.09503, 8.09503, 8.09503, 8.09503, 8.09503, 8.09474, 8.09474, 8.09474, 8.09474, 8.09474, 8.09474, 8.09474, 8.09474, 8.09474, 8.09474, 8.10364, 8.10364, 8.10364, 8.10364, 8.10364, 8.10364, 8.10364, 8.10364, 8.10364, 8.10364, 8.09735, 8.32222, 8.32222, 8.32222, 8.32222, 8.32222, 8.32222, 8.32222, 8.32222, 8.32222, 8.32222, 8.11122, 8.11122, 8.11122, 8.11122, 8.11122, 8.11122, 8.11122, 8.11122, 8.11122, 8.11122, 8.11018, 8.39024, 8.39024, 8.39024, 8.39024, 8.39024, 8.39024, 8.39024, 8.39024, 8.39024, 8.11015, 8.4737, 8.4737, 8.4737, 8.4737, 8.4737, 8.4737, 8.4737, 8.4737, 8.4737, 8.12478, 8.12478, 8.11703, 8.11703, 8.11703, 8.11703, 8.11703, 8.11703, 8.11703, 8.11703, 8.11703, 8.82622, 8.74292, 8.74292, 8.74292, 8.74292, 8.74292, 8.74292, 8.74292, 8.74292, 8.74292, 8.10013, 8.10013, 8.11761, 8.11761, 8.11761, 8.11761, 8.11761, 8.11761, 8.11761, 8.11761, 9.2984, 9.2984, 9.77065, 9.77065, 9.77065, 9.77065, 9.77065, 9.77065, 9.77065, 9.77065, 9.77065, 9.73215, 9.73215, 9.17527, 9.17527, 9.17527, 9.17527, 9.17527, 9.17527, 9.17527, 9.17527, 9.10847, 9.10847, 215.593, 215.593, 215.593, 215.593, 215.593, 215.593, 215.593, 215.593, 9.97523, 9.97523, 9.97523, 121.103, 121.103, 121.103, 121.103, 121.103, 121.103, 121.103, 121.103, 9.89501, 9.89501, 199.925, 199.925, 199.925, 199.925, 199.925, 199.925, 199.925, 199.925, 11.2449, 11.2449, 287.973, 287.973, 287.973, 287.973, 287.973, 287.973, 287.973, 287.973] y1 = scipy.signal.medfilt(y, kernel_size=11) fonc_f = interp1d(x, y1) def fonc_g(x): return x/(2*np.sin(np.pi/8)) # Fonction pour optimiser avec Nlopt''' def fonc_opt(x): return ( (fonc_f(x) - fonc_g(x))**2 ) x0 = 5.0 opt = nlopt.opt(nlopt.LN_SBPLX, 1) # specifie l'algorithme et le nombre de paramètre d'optimisation opt.set_lower_bounds(1.0) # limitte borne inférieur opt.set_upper_bounds(100.0) # limitte borne supérieur opt.set_xtol_rel(1e-4) # tolerance opt.set_ftol_rel(1e-8) opt.set_min_objective(fonc_opt) # appel la fonction objectif qui est residual xopt = opt.optimize([x0]) # fait l'optimisation minf = opt.last_optimum_value() # dernier valeur optimale obtenu ou bien le coût result_code = opt.last_optimize_result() # verification convergeance nbr_evaluation = opt.get_numevals() # obtient le nombre d'evaluation de la fonction residual print (xopt,minf,result_code,nbr_evaluation) return xopt, minf, result_code, nbr_evaluation plt.plot(x, y, "o", color="blue", label="experimental data") plt.plot(x, y, color="cyan") plt.plot(x, fonc_g(x), "r", label="Ideal line") plt.plot(mex, "y", color="lime", label="True radius") plt.xlabel("rROI (μm)") plt.ylabel("rt (μm)")
Configuration: Macintosh / Safari 11.0.1
1 réponse
Bonjour,
Sur le forum pour voir l'indentation il faut utiliser les balises code : Pour la mise en forme des sources, au dessus de la zone d'édition de tes messages, il y a des icônes pour l'enrichissement du texte. Celle qui a cet aspect
Un petit tuto là : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ta ligne return xopt ... ne fait référence à rien puisque pas de fonction définie au dessus, et elle se retrouve toute seule indentée alors que les lignes l'entourant ne le sont pas.
Sur le forum pour voir l'indentation il faut utiliser les balises code : Pour la mise en forme des sources, au dessus de la zone d'édition de tes messages, il y a des icônes pour l'enrichissement du texte. Celle qui a cet aspect
<> ▼permet d'appliquer au code, suivant une liste de valeurs, le format correspondant à sa nature.
Un petit tuto là : https://codes-sources.commentcamarche.net/faq/11288-les-balises-de-code
Ta ligne return xopt ... ne fait référence à rien puisque pas de fonction définie au dessus, et elle se retrouve toute seule indentée alors que les lignes l'entourant ne le sont pas.
Vu ton code je dirais que tu as oublié d'indenter les lignes 27 à 42.
De plus tu n'utilises pas le même niveau de profondeur d'indentation (ligne 21 et 26), attention à être consistant.
Enfin attention à utiliser dans l'ensemble de ton script les même caractères pour indenter (soit des espaces, soit des tabulations). Personnellement je recommande d'utiliser des espaces (4 espaces fois le niveau de profondeur).
Bonne chance