| La programmation | |
|
+36pouale meteskis Choco-sama Dragongaze13 Wraithslayer/HD Kotomine Naqqah kilam1110 wolftag valentinos garywiss6 AristA Sogeking Chroniker Falco Empty AlexRE Awakeing Grade Mod Godboy coco Arvester Blizzard Krok Shakuras Raspberyl Slump Antheor guigui kun Quelqu'un krosk Toshibashin Relm Ccd-ToF NeoKakashi 40 participants |
|
Auteur | Message |
---|
Dragongaze13 Maker de Légende Lv 49
Nombre de messages : 3897
| Sujet: Re: La programmation Ven 17 Juin 2011, 20:59 | |
| Oups, excuse-moi, la première ligne c'est "import os", pas de point mais un espace.. ^^' | |
|
| |
Dragongaze13 Maker de Légende Lv 49
Nombre de messages : 3897 Age : 27
| Sujet: Re: La programmation Sam 18 Juin 2011, 01:16 | |
| J'ai rien compris à la fonction "return". (comment ça: "en même temps il est juste 1h du matin" ?) | |
|
| |
AristA Maker qui quitte vraiment E-m Lv 60
Nombre de messages : 11008 Age : 27
| Sujet: Re: La programmation Sam 18 Juin 2011, 12:08 | |
| Lol t'en es qu'à là ? C'est dans une fonction, elle sert à retourner la variable qui a été modifiée dans cette fonction. Par exemple, la fonction int() (je sais pas si tu l'as vue), tu lui envoies un string (une chaîne de caractères) et elle te retourne un integrer (un nombre entier). | |
|
| |
Dragongaze13 Maker de Légende Lv 49
Nombre de messages : 3897 Age : 27
| Sujet: Re: La programmation Sam 18 Juin 2011, 12:34 | |
| Et toi tu me demandes comment empêcher la fenêtre de se refermer alors bon.. xD Et puis je prends mon temps, je relis plusieurs fois et je teste tout. Et c'est bon j'ai compris, c'était l'heure sûrement. Nouvelle solution pour pas que la fenêtre se referme directement plus mieux et sans pause(à mettre au tout début, sur Windows): - Code:
-
# -*-coding:Latin-1 -* (pour moi ça marche en tout cas, enfin, elle se referme tout de même à la fin du code) | |
|
| |
AristA Maker qui quitte vraiment E-m Lv 60
Nombre de messages : 11008 Age : 27
| Sujet: Re: La programmation Sam 18 Juin 2011, 12:46 | |
| Oui c'était ça qui manquait en fait, dès qu'il y avait une erreur ça quittait directement. L'autre astuce c'est de mettre ton programme dans une boucle infinie ( while 1:), et de demander à la fin de cette boucle si l'utilisateur veut continuer (il entre Y ou N, comme Yes or No). Dans ce cas, tu break et ça quitte le programme. C'est trop marrant la prog, hihihi | |
|
| |
Dragongaze13 Maker de Légende Lv 49
Nombre de messages : 3897 Age : 27
| Sujet: Re: La programmation Sam 18 Juin 2011, 15:10 | |
| C'est comment pour l'appuie d'une touche ?? ^^' edit: J'ai du mal.. x) La fenêtre s'ouvre et se ferme directement.. :/ - Code:
-
import os
while 1: print("Entrez une année pour savoir si elle est bissextile ou non:") annee = input() try: annee = int(annee) except: print("N'entrez que des chiffres !") os.system("pause")7
annee = int(annee) if annee%4 != 0: print("L'année", annee, "n'est pas bissextile.") elif annee%100 == 0: if annee%400 == 0: print("L'année", annee, "est bissextile.") else: print("L'année", annee, "n'est pas bissextile.") else: print("L'année", annee, "est bissextile.") print("Voulez-vous quitter ? O pour oui, N pour non.") if == O: break else == N: continue Et je connais pas la condition pour l'appuie d'une touche alors.. Bricolage. | |
|
| |
AristA Maker qui quitte vraiment E-m Lv 60
Nombre de messages : 11008 Age : 27
| Sujet: Re: La programmation Sam 18 Juin 2011, 15:32 | |
| Syntaxe invalide, t'as écrit os.system("pause")7, enlève le 7 Ensuite t'as plusieurs problèmes d'indentation... Edit : tiens j'ai corrigé et complété ton code. Essaie de comparer avec le tiens pour voir où est ce que tu as fais des erreurs - Code:
-
#Programme servant à déterminer si une année est bissextile ou pas. while 1: print("Entrez une année pour savoir si elle est bissextile ou non:") annee = input() try: annee = int(annee) except: print("N'entrez que des chiffres !") annee = int(annee) if annee%4 != 0: print("L'année", annee, "n'est pas bissextile.") elif annee%100 == 0: if annee%400 == 0: print("L'année", annee, "est bissextile.") else: print("L'année", annee, "n'est pas bissextile.") else: print("L'année", annee, "est bissextile.") print("Voulez-vous quitter ? O pour oui, N pour non.") quitter = input() if quitter == 'o' or quitter == 'O': break
Dernière édition par AristA le Sam 18 Juin 2011, 15:42, édité 1 fois | |
|
| |
coco Dieu Maker Lv 44
Nombre de messages : 2989 Age : 30
| Sujet: Re: La programmation Sam 18 Juin 2011, 15:41 | |
| Une méthode plus propre pour arrêter le programme : tu ajoute une variable par exemple continuer = 1 avant la boucle principale. Ta boucle principale sera de la forme : while (continuer ) Et lorsque l'utilisateur essaye de quitter le programme tu change la valeur de continuer par 0. Comme ça s'il y a plusieurs moyen de fermer le programme, tu n'écris qu'une seule fois le code de fermeture (qui sera conséquent quand vous ferez de plus gros programmes ) : après la fin de la boucle | |
|
| |
AristA Maker qui quitte vraiment E-m Lv 60
Nombre de messages : 11008 Age : 27
| Sujet: Re: La programmation Sam 18 Juin 2011, 15:44 | |
| Ok ^^ J'imagine que c'est comme True ou False, ce sont les booléens en C, c'est ça ? | |
|
| |
coco Dieu Maker Lv 44
Nombre de messages : 2989 Age : 30
| Sujet: Re: La programmation Sam 18 Juin 2011, 15:53 | |
| En fait en C++ je sais qu'il y a un type de variable spécial booléen, mais en C on prend une variable normale. Le truc c'est que comme tu as du le comprendre, une condition ou une boucle ne prend que 2 valeurs différentes : faux (0) ou vrai (tous les autres nombres ). Chaque variable dans une condition est en fait remplacée par sa valeur, donc si tu fais : - Code:
-
continuer = 1 // on pourrait remplacer 1 par n'importe quel nombre différent de 0 if (continuer) blablabla ça revient à : - Code:
-
if (1) blablabla En plus, si tu mets un "!" devant la variable dans une condition ou une boucle, vrai correspondra à 0 et faux à toutes les autres valeurs. Ainsi : - Code:
-
continuer = 0 if (!continuer) blablabla ça revient à : - Code:
-
if (1) blablabla Ca permet de faire des conditions plus courtes et plus compréhensibles en choisissant bien les noms de ses variables | |
|
| |
Dragongaze13 Maker de Légende Lv 49
Nombre de messages : 3897 Age : 27
| Sujet: Re: La programmation Sam 18 Juin 2011, 17:47 | |
| AristA >> Merci. J'ai rajouté un "continue" après le "N'entrez que des chiffres.". ^^ Par contre le IDLE m'écrivait qu'il y avait une erreur d'indentation devant le premier "else"(il me surlignait un espace) mais il y avait le même nombre d'espaces que toi.. :/ Coco >> Merci, même si c'est pas spécialement pour moi, ça m'aidera sûrement(c'est bien du Python ?). ^^ edit: - Code:
-
while 1: print("Entrez une année pour savoir si elle est bissextile ou non:") annee = input() try: annee = int(annee) except: print("N'entrez que des chiffres !") continue annee = int(annee) if annee%4 != 0: print("L'année", annee, "n'est pas bissextile.") elif annee%100 == 0: if annee%400 == 0: print("L'année", annee, "est bissextile.") else: print("L'année", annee, "n'est pas bissextile.") else: print("L'année", annee, "est bissextile.") print("Voulez-vous quitter ? O pour oui, N pour non.") reponse = input() if reponse == 'o' or reponse == 'O': break exit() else: continue Il quitte pas quand je fais "o" ou "O".. :/ | |
|
| |
AristA Maker qui quitte vraiment E-m Lv 60
Nombre de messages : 11008 Age : 27
| Sujet: Re: La programmation Sam 18 Juin 2011, 18:10 | |
| Y'a pas les >>> qui apparaissent dans ton IDLE ? | |
|
| |
Dragongaze13 Maker de Légende Lv 49
Nombre de messages : 3897 Age : 27
| Sujet: Re: La programmation Sam 18 Juin 2011, 18:14 | |
| Non.. Oo'
edit: j'ai oublié "import os", non ? x) edit 2: c'est bon c'est nickel avec "import os".. xD edit 3: marche pas sur la console mais sur l'IDLE si.. Oo' | |
|
| |
coco Dieu Maker Lv 44
Nombre de messages : 2989 Age : 30
| Sujet: Re: La programmation Sam 18 Juin 2011, 18:20 | |
| Euh je sais pas si c'est du python vraiment (j'ai essayé de reproduire la syntaxe, mais je connais pas du tout le python ), mais en tout cas c'est une partie de la logique de programmation qu'il faut acquérir ____________ | |
|
| |
Dragongaze13 Maker de Légende Lv 49
Nombre de messages : 3897 Age : 27
| Sujet: Re: La programmation Dim 19 Juin 2011, 00:44 | |
| Premier vrai TP du SdZ >> Je m'empresse de lire le sujet pour commencer.. <3 | |
|
| |
AristA Maker qui quitte vraiment E-m Lv 60
Nombre de messages : 11008 Age : 27
| Sujet: Re: La programmation Dim 19 Juin 2011, 13:03 | |
| | |
|
| |
Dragongaze13 Maker de Légende Lv 49
Nombre de messages : 3897 Age : 27
| Sujet: Re: La programmation Dim 19 Juin 2011, 15:46 | |
| Oui. ^ D'ailleurs quand je fais: - Code:
-
import random randrange(50) Rien ne se passe.. :/ Faut faire: - Code:
-
x = randrange(50) ? | |
|
| |
AristA Maker qui quitte vraiment E-m Lv 60
Nombre de messages : 11008 Age : 27
| Sujet: Re: La programmation Dim 19 Juin 2011, 15:55 | |
| Faut faire x = random.randrange(50) Sinon à la place de import random tu fais from random import randrange pour pouvoir utiliser x = randrange(50). N'oublie pas que randrange() est une fonction, et faut capturer dans une variable ce qu'elle retourne. Si elle hérite du module random, faut faire random.randrange quand tu veux l'utiliser (J'ai l'impression de parler chinois c'est horrible) | |
|
| |
Dragongaze13 Maker de Légende Lv 49
Nombre de messages : 3897 Age : 27
| Sujet: Re: La programmation Dim 19 Juin 2011, 17:59 | |
| Merci. ^^ Comment on utilise "ceil" ? On est censé être sur le SdZ quand même. | |
|
| |
AristA Maker qui quitte vraiment E-m Lv 60
Nombre de messages : 11008 Age : 27
| Sujet: Re: La programmation Dim 19 Juin 2011, 18:27 | |
| Ben comme n'importe qu'elle fonction, x = math.ceil(x) Faut t'y habituer aux fonctions, elle retourne une valeur à capturer dans une variable et prennent parfois un paramètres | |
|
| |
coco Dieu Maker Lv 44
Nombre de messages : 2989 Age : 30
| Sujet: Re: La programmation Dim 19 Juin 2011, 18:35 | |
| T'inquiète quand tu aura vu le chapitre des fonctions, tu comprendra Sinon une fonction ne retourne parfois rien (une fonction d'affichage par exemple ) | |
|
| |
Dragongaze13 Maker de Légende Lv 49
Nombre de messages : 3897 Age : 27
| Sujet: Re: La programmation Dim 19 Juin 2011, 18:37 | |
| | |
|
| |
Dragongaze13 Maker de Légende Lv 49
Nombre de messages : 3897 Age : 27
| Sujet: Re: La programmation Jeu 23 Juin 2011, 00:24 | |
| Pourriez-vous trouver une solution aux deux commentaires(le reste est nickel) ? ^^ Je cherche mais je trouve pas.. Faudrait que j'utilise un try ? Merci ! Attention à ceux qui ne veulent pas spoiler le TP du SdZ. - Code:
-
import os import random import math import time
argent=500
while 1:
if argent <= 0: print("Vous n'avez plus d'argent, vous avez perdu.") os.system("pause") exit()
print("Vous disposez de", argent,"$.") print("Pour commencer à jouer à la roulette, entrez votre mise.")
mise = input() mise = int(mise)
if mise>0 and mise==int(mise) and mise<=argent: argent = argent - mise print("Sur quel numéro voulez-vous miser(min.0, max.49) ?") elif mise<=0: print("Votre mise doit être supérieure à 0.") continue elif mise>=argent: print("Votre mise doit être égale ou inférieure à votre argent.") continue elif mise!=int(mise): #probleme: message d'erreur si lettres entrees. print("Votre mise ne doit contenir que des chiffres.") continue
numero = input() numero = int(numero)
if numero>=0 and numero<=49 and numero==int(numero): print("*le croupier lance la roulette*") elif numero<=0 and numero>=49: print("Vous devez choisir un numéro allant de 0 à 49.") continue else: #probleme: message d'erreur si lettres entrees. print("Le numero ne peut contenir que des chiffres.") continue
time.sleep(1) hasard = random.randrange(50) numero = numero%2 print("Le numéro gagnant est le", hasard, "!")
time.sleep(1)
if numero == hasard: print("Félicitations ! Vous gagnez 3 fois votre mise, soit", mise*3, "!") gain = mise*3 gain = math.ceil(gain) argent = argent + gain
elif numero == 0: hasard = hasard%2 if hasard == 0: print("Vous gagnez 50% de votre mise car la couleur du numéro gagnant est la même que celle du numéro choisi.") mise = mise/2 mise = math.ceil(mise) argent = argent + mise else: print("Dommage, vous n'avez rien gagné...")
elif numero != 0: hasard = hasard%2 if hasard != 0: print("Vous gagnez 50% de votre mise car la couleur du numéro gagnant est la même que celle du numéro choisi.") mise = mise/2 mise = math.ceil(mise) argent = argent + mise else: print("Dommage, vous n'avez rien gagné...") | |
|
| |
AristA Maker qui quitte vraiment E-m Lv 60
Nombre de messages : 11008 Age : 27
| Sujet: Re: La programmation Ven 24 Juin 2011, 01:02 | |
| Tu dois faire un except TypeError: Si tu es bloqué, n'hésite pas à regarder quelques bribes de la solution... Ça aide beaucoup ! | |
|
| |
pouale RTP de base Lv 1
Nombre de messages : 14 Age : 28
| Sujet: Re: La programmation Sam 25 Juin 2011, 13:32 | |
| Ce topic fait 42 pages. Coincidence? Je ne crois pas. | |
|
| |
AristA Maker qui quitte vraiment E-m Lv 60
Nombre de messages : 11008 Age : 27
| Sujet: Re: La programmation Dim 26 Juin 2011, 23:17 | |
| J'ai fais un super programme (comme à mon habitude... :doute2). Je vous laisse deviner à quoi il sert (lol). Désolé de pas avoir "documenté" mes fonctions, j'avais la flemme. À savoir que ça marche mieux dans l'IDLE de Python. - Code:
-
# -*- coding:Latin-1 -*- from random import randrange choix = ["Nemau", "Kilam (lol)", "Fistantilus"] insultes = ["sent pas bon", "est un gros caca", "craint à mort", "est useless", "est haït par tous", "devrait s'acheter une vie", "est pourri"] print("INSULTIZATIRATISEUR de AristA, phoque hell yeah.") def daInput(): selec = input() try: selec = int(selec) except: print("P'tin mais faut un nombre toi.") return daInput() if selec < len(choix)+1 and selec > 0: return selec-1 else: print("Faut un nombre qui est DANS ces trucs") return daInput() def newName(nom): choix.append(nom) return choix def newInsulte(): print("Entrez votre insulte sous la forme d'une phrase dont il manque un sujet au début.\nEx : 'est un exemple'") newInsulte = input() insultes.append(newInsulte) return insultes while 1: i = 0 for c in choix: i += 1 print ("{0}.) Insulter {1}".format(i, c)) selec = daInput() print("{0} {1}.".format(choix[selec], insultes[randrange(len(insultes))])) #lol print("\nQ : Quitter \n_INSULTE_ : Apprendre une insulte \nNe rien entrer : Continue \nEntrer autre chose : l'apprend en tant que nouveau nom.") reponse = input() if reponse.capitalize() == "Q": break elif reponse == "_INSULTE_": insultes = newInsulte() elif reponse != "" and reponse != " " and reponse != "\n": choix = newName(reponse) else: pass
Le .py pour les fainéants. (Nécessite Python 3.2) Voualat, j'attends vos remarques. D'accord je vais me cacher | |
|
| |
Contenu sponsorisé
| Sujet: Re: La programmation | |
| |
|
| |
| La programmation | |
|