Python et LaTeX avec paramètres
Bonjour à toutes et à tous,
meilleurs vœux à vous et tous vos proches !
Je souhaiterais améliorer la ligne de code suivante de mon programme Python:
Je cherche à ce que les paramètres $a$ et $b$ qui sont donnés dans la fonction soient modifiés dans l'affichage, merci de votre aide,
amicalement,
F.D.
meilleurs vœux à vous et tous vos proches !
Je souhaiterais améliorer la ligne de code suivante de mon programme Python:
Texte=r"$\int_{a}^{b}$"+ t + "$dx$ = "+str(I)qui permet d'afficher $\int_a^bf(x)dx$ à partir de l'entrée de la fonction $f$ en tant que string (laissez tomber les vannes, je les ai toutes faites). J'ai trouvé plus élégant d'avoir une string convertie par "eval()" en une fonction qu'une entrée en "lambda x:f(x)", et c'est surtout bien plus facile pour des élèves
Je cherche à ce que les paramètres $a$ et $b$ qui sont donnés dans la fonction soient modifiés dans l'affichage, merci de votre aide,
amicalement,
F.D.
Connectez-vous ou Inscrivez-vous pour répondre.
Réponses
Si j'ai bien compris la demande, quelque chose comme ceci devrait convenir : Il y a des variantes possibles du genre : en supposant que d est un dictionnaire (un mapping) avec les bonnes clés ('a', 'b', 'f', 'rhs'), voire en utilisant les f-strings avec Python >= 3.6 (celle-là, t'as pas dû la faire...) :
merci beaucoup mais je ne comprends encore la réponse, je m'y colle ce soir
F.D.
ok petit défaut de ta première solution: a est un caractère mais pas une string donc avec -1 ça ne fonctionne pas
j'étudie la troisième
merci beaucoup en tout cas
F.D.
Poste le code qui ne marche pas, car là, c'est difficile à comprendre, du moins pour moi...
pb résolu mais je ne sais pas pourquoi il y avait un pb, j'ai regardé la doc python sur str.format et dans les exemples ils prennent coord.format(latitude='38.40N') qui aurait dû marcher,
j'ai repris ton code et j'ai fait inf='{'+str(a)+'}' (inf pour la borne inf) et ça marche.
Je pense que ça vient de ma distribution python ou du cacractère atroce de mon PC, récemment il refusait u_n pour écrire $u_n$ en LaTeX... 3 installations de MikTeX plus tard... lol tout marche...
Merci beaucoup!
Très amicalement
F.D.
j'ai essayé figure-toi mais il n'a alors pas interprété le a=a dans .format()...?
Il faudra que je me penche sur les f-string, ça a l'air cool
Merci beaucoup
F.D.
Les f-strings, c'est à peu près pareil que str.format(), il n'y a guère que la syntaxe qui est allégée et le fait que ça pioche les variables à remplacer dans le scope courant.
Autre précision (pour plus tard) : un des trucs chouettes avec str.format(), c'est que si tu as une classe qui implémente __str__() correctement (ne prend pas d'argument autre que 'self' et renvoie une string), alors tu peux utiliser directement les instances de cette classe avec str.format(), il n'y a pas besoin d'appeler str() dessus :
En fait, c'est beaucoup plus puissant que ça : une classe peut implémenter son propre mini-langage de formatage, autrement dit renvoyer une représentation-chaîne qui dépend des trucs qui vont après le signe deux-points dans "{machin:...}".format(), comme quand on donne la précision pour convertir un flottant, ou la base pour convertir un entier (toujours avec str.format()). De mémoire, les objets du module 'datetime' utilisent cela.
je pense que je ne suis pas encore au point en POO, ce n'était pas du tout ma formation (en licence MAths-Info et deug MIAS, on n'allait pas sur l'Objet ) mais il faut que j'apprenne à penser comme ça,
tu m'as donné là bien du grain à moudre (après mon inspection du coup),
très amicalement,
F.D.