Les membres ayant 30 points peuvent parler sur les canaux annonces, projets et hs du chat.
La shoutbox n'est pas chargée par défaut pour des raisons de performances. Cliquez pour charger.

Forum Casio - Discussions


Index du Forum » Discussions » try/execpt ou un equivalent malin
Mactul Hors ligne Membre Points: 699 Défis: 0 Message

try/execpt ou un equivalent malin

Posté le 08/06/2019 19:45

pour un programme, j'aurais besoin de tester si une liste existe;
car si je lui demande "if list1[5]=0", si list1 est vide, ça crache.
donc il faudrait tester si il y a bien un "list1[5]"
j'ai une petite idée de contournement mais je ne sais pas là encore si cette commande existe :
(ma liste contient 12 éléments)
l'idée est de rajouter 12 éléments (des 234 par exemple) à la suite et de regarder si list1[12] est égale ou non à 234
ainsi je saurais si ma liste contenait au moins 12 éléments

Cette commande existe t-elle ?
si oui quelle est-elle ?

PS: @Sentaro, for C-Basic, you should add a "try / except"


Lephenixnoir En ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 08/06/2019 19:55 | #


Il n'y a pas de try/except, et ce que tu proposes ne marchera pas bien parce que si List 1 n'existe pas ton programme va planter. Mais pour ton cas il existe une astuce.

"X"→List 1

Cela attribue un nom à la liste (que tu peux retrouver avec List 1[0]), mais surtout si la liste est vide ça la crée avec un 0 dans la première case. Sinon ça change juste le nom.

La technique serait donc d'avoir un nombre non nul dans la première case. Tu ne peux pas écrire List 1 si tu n'es pas sûr qu'elle existe, parce que si je la supprime le programme va planter, donc tu ne peux pas lire ce nombre directement.

Mais tu peux faire "X"→List 1 et ensuite regarder List 1[1]. Si c'est pas 0, c'est que la liste existait. Si c'est 0, c'est que la liste vient d'être créée. Bien sûr pour que ça marche il faut que ta sauvegarde ait toujours un nombre non nul en première position.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Sentaro21 Hors ligne Membre Points: 878 Défis: 0 Message

Citer : Posté le 09/06/2019 09:03 | #


@Mactul
Lephenixnoir's List test method works well in C.Basic.
Moreover,
You can use the following C.Basic extended command,
[OPTN]-[F2](MAT)-[F6]-[F5](SIZE)-[F4](ColSize(
ColSize(List 1)

If the return value is 0, it can be determined that it is not defined.
Je continue à développer C.Basic. (Il est compatible avec Basic Casio.)
Overclocking utilitaire Ftune/Ptune2/Ptune3 est également disponible.
Si vous avez des questions ou un rapport de bogue, n'hésitez pas à me le faire savoir.
Mactul Hors ligne Membre Points: 699 Défis: 0 Message

Citer : Posté le 09/06/2019 13:29 | #


@Lephenixnoir
Merci beaucoup pour ta technique j’essayerai

@Sentaro 21
thank you very much, I think you should add a "try / except" in C-Basic like python, it is very convenient
Mes programmes
Cliquer pour enrouler

Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ

Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...
Sentaro21 Hors ligne Membre Points: 878 Défis: 0 Message

Citer : Posté le 09/06/2019 13:49 | #


Okey.
I will consider whether it can be implemented.

Je continue à développer C.Basic. (Il est compatible avec Basic Casio.)
Overclocking utilitaire Ftune/Ptune2/Ptune3 est également disponible.
Si vous avez des questions ou un rapport de bogue, n'hésitez pas à me le faire savoir.
Kikoodx Hors ligne Ancien labélisateur Points: 3039 Défis: 11 Message

Citer : Posté le 09/06/2019 14:16 | #


I don't really see the point to implement except in C.Basic, I'm against I think people would make more dirty code ("oh if there is a error, who care, don't need to fix, just except").
ouais ouais
Lephenixnoir En ligne Administrateur Points: 24574 Défis: 170 Message

Citer : Posté le 09/06/2019 15:18 | #


I kind of agree, it feels more natural to have functions that don't raise exceptions and return special values for border cases.
Mon graphe (11 Avril): ((Rogue Life || HH2) ; PythonExtra ; serial gint ; Boson X ; passe gint 3 ; ...) || (shoutbox v5 ; v5)
Fabcvlr Hors ligne Membre Points: 2271 Défis: 41 Message

Citer : Posté le 11/06/2019 13:43 | #


Dans mes souvenirs, je crois qu'il y avait un truc avec le List1[0] qui permet de donner un nom à une liste. Ce truc permettait de savoir si une liste existait sans provoquer d'erreur dans un prog.
L'expérience des autres, c'est comme une chandelle que l'on tient allumée dans son dos par une nuit de tempête !
Shadow15510 Hors ligne Administrateur Points: 5503 Défis: 18 Message

Citer : Posté le 11/06/2019 13:44 | #


C'est 'zactement ce que Lephe à dit d'ailleurs !
"Ce n'est pas parce que les chose sont dures que nous ne les faisons pas, c'est parce que nous ne les faisons pas qu'elles sont dures." Sénèque

Sentaro21 Hors ligne Membre Points: 878 Défis: 0 Message

Citer : Posté le 15/06/2019 08:34 | #


C.Basic has been updated.
https://www.planet-casio.com/Fr/forums/topic14738-12-c-basic-projets.html#165993
Instead of IsError(),
Added the exception handling commands Try-Except-TryEnd.

(example)
Try List 1        // Check the existence of List 1
Except           // Except with no argument corresponds to all errors.
  12->Dim List 1
TryEnd            // It is required at the end of the Try command.


Je continue à développer C.Basic. (Il est compatible avec Basic Casio.)
Overclocking utilitaire Ftune/Ptune2/Ptune3 est également disponible.
Si vous avez des questions ou un rapport de bogue, n'hésitez pas à me le faire savoir.
Mactul Hors ligne Membre Points: 699 Défis: 0 Message

Citer : Posté le 17/06/2019 16:00 | #


VERY GOOD !!!
I love Sentaro21

I hope you will continue this wonderful project
Mes programmes
Cliquer pour enrouler

Venez me rejoindre sur mon nouveau serveur Discord dédié a la programmation sur toutes les plateformes
https://discord.gg/bzfymHQ

Venez vous instruire, dans ce magnifique cours sur les Intelligences Artificielles que j'ai créé:
http://reseaux-neurones-a--z.ml/
Faites apprendre des choses à une machine, faites reconnaître à un ordi des images...

LienAjouter une imageAjouter une vidéoAjouter un lien vers un profilAjouter du codeCiterAjouter un spoiler(texte affichable/masquable par un clic)Ajouter une barre de progressionItaliqueGrasSoulignéAfficher du texte barréCentréJustifiéPlus petitPlus grandPlus de smileys !
Cliquez pour épingler Cliquez pour détacher Cliquez pour fermer
Alignement de l'image: Redimensionnement de l'image (en pixel):
Afficher la liste des membres
:bow: :cool: :good: :love: ^^
:omg: :fusil: :aie: :argh: :mdr:
:boulet2: :thx: :champ: :whistle: :bounce:
valider
 :)  ;)  :D  :p
 :lol:  8)  :(  :@
 0_0  :oops:  :grr:  :E
 :O  :sry:  :mmm:  :waza:
 :'(  :here:  ^^  >:)

Σ π θ ± α β γ δ Δ σ λ
Veuillez donner la réponse en chiffre
Vous devez activer le Javascript dans votre navigateur pour pouvoir valider ce formulaire.

Si vous n'avez pas volontairement désactivé cette fonctionnalité de votre navigateur, il s'agit probablement d'un bug : contactez l'équipe de Planète Casio.

Planète Casio v4.3 © créé par Neuronix et Muelsaco 2004 - 2024 | Il y a 205 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