Posté le 16/04/2022 16:36
Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 139 connectés | Nous contacter | Qui sommes-nous ? | Licences et remerciements
Planète Casio est un site communautaire non affilié à Casio. Toute reproduction de Planète Casio, même partielle, est interdite.
Les programmes et autres publications présentes sur Planète Casio restent la propriété de leurs auteurs et peuvent être soumis à des licences ou copyrights.
CASIO est une marque déposée par CASIO Computer Co., Ltd
Citer : Posté le 16/04/2022 17:10 | #
Salut, j'ai transféré ton script sur ma Graph 90+E et il marche très bien. Peux-tu préciser où tu as une erreur ? L'as-tu modifié avant de le lancer ?
MicroPython est une "implémentation" de Python, tu peux voir ça comme un Python "réduit" qui marche sur tes plateformes moins puissantes que les ordinateurs. Il y a effectivement des différentes subtiles sur le langage et tous les programmes Python ne marchent pas forcément dans MicroPython, mais ces différences sont sur des fonctionnalités avancées/complexes et les programmes simples comme le tien marchent sans problème
Blacklpk Invité
Citer : Posté le 16/04/2022 22:41 | #
Merci pour ta réponse claire et rapide !
L'erreur est directe, j'ai à l'écran:
>>> from DI-VAN import *
SyntaxError: invalid syntax
>>>
Cependant, j'avais copié le fichier .py dans la mémoire de la calculatrice, en copiant le script dans un fichier déjà existant, tout fonctionne. Peut-être qu'il n'est pas possible de copier directement les fichier .py ?
Citer : Posté le 16/04/2022 22:49 | #
Aha c'est parce que tu as appelé ton script DI-VAN avec un tiret au milieu : lorsque tu importes un script de cette façon, que ce soit sur calculatrice ou sur ordinateur, il faut que le nom du fichier soit un identifiant Python valide. Renomme-le DI_VAN par exemple et ça ira tout de suite mieux !
Citer : Posté le 16/04/2022 22:57 | #
Erreur de débutant... Merci beaucoup !
Autre question qui n'a rien à voir mais pour laquelle je n'ai pas trouvé de réponse, est il possible de print sur plusieurs lignes quand le texte dépasse la largeur de l'écran ?
Je partage également un programme qui pourra être utile à d'autres, qui permet de calculer des FNT, VAN, IP, délai de récupération et TIR. Encore à peaufiner cependant.
flow = []
sum_fnt = 0
rate = float(input('Actualization rate = '))
Number_fnt = int(input('FNT number = '))
invest = float(input('Amount invested = '))
rate = rate/100
for i in range(0, Number_fnt):
flow.append(float(input('Flow {} value = '.format(i+1))))
fnt.append(round(flow[i]*pow((1+rate), -(i+1)), 2))
sum_fnt += round(fnt[i], 2)
van = round(-invest + sum_fnt, 2)
ip = round(1+((-invest + sum_fnt)/invest), 2)
def main():
global sum_fnt
answer = int(input('FNT 1, VAN 2, IP 3, DR 4, TIR 5, stop 6:'))
print(answer)
if answer == 1:
for i in range(0, Number_fnt):
print('FNT Y{}='.format(i+1), fnt[i])
print('Sum FNT =', sum_fnt)
elif answer == 2:
print('VAN {}%='.format(round(rate*100, 0)), van)
elif answer == 3:
print('IP =', ip)
elif answer == 4:
x, fnta = 0, 0
date = []
sum_fnta = -invest
for i in range(0, Number_fnt):
sum_fnta += fnt[i]
print('FNT Y{}='.format(i+1), fnt[i])
print('Cumul FNTA Y{}='.format(i+1), round(sum_fnta, 2))
if sum_fnta > 0 and x == 0:
date.append(i)
date.append((-fnta/fnt[i])*12)
x = 1
fnta = sum_fnta
print('DR =', date[0], 'years', date[1], 'months')
elif answer == 5:
fnt_f = []
sum_fnt = 0
van_f = 1
rate_f = rate
while van_f > 0:
rate_f += rate
for i in range(0, Number_fnt):
fnt_f.append(round(flow[i] * pow((1 + rate_f), -(i + 1)), 2))
sum_fnt += round(fnt_f[i], 2)
van_f = round(-invest + sum_fnt, 2)
print('VAN {}%='.format(round(rate*100, 0)), van_f)
tir = (-van/(van_f-van)) * (rate_f - rate) + rate
print('TIR=', tir)
elif answer == 6:
quit()
main()
main()
Citer : Posté le 16/04/2022 23:04 | #
Le shell de l'application Python ne le fera pas pour toi, mais tu peux toujours utiliser ta propre fonction print() pour le faire :
def myprint(*args):
s = " ".join(map(str, args))
for line in s.split("\n"):
for i in range(0, len(line), LINE_LENGTH):
print(line[i:i+LINE_LENGTH])
Cette version est manifestement bourrine, mais tu peux voir que ça coupe bien toutes les lignes à 10 caractères :
x = a very
long word
+ 42
Citer : Posté le 16/04/2022 23:19 | #
Super efficace, encore merci !