Day.png);">
Apprendre


Vous êtes
nouveau sur
Oniromancie?

Visite guidée
du site


Découvrir
RPG Maker

RM 95
RM 2000/2003
RM XP
RM VX/VX Ace
RM MV/MZ

Apprendre
RPG Maker

Tutoriels
Guides
Making-of

Dans le
Forum

Section Entraide

Sorties: "Dread Mac Farlane", (...) / Tutos: Checklist de la composition (...) / Sorties: Dread Mac Farlane - episode 8 / Sorties: Dread Mac Farlane - episode 7 / Jeux: Ce qui vit Dessous / Chat

Bienvenue
visiteur !




publicité RPG Maker!

Statistiques

Liste des
membres


Contact

Mentions légales

610 connectés actuellement

29440587 visiteurs
depuis l'ouverture

6665 visiteurs
aujourd'hui



Barre de séparation

Partenaires

Indiexpo

Akademiya RPG Maker

Blog Alioune Fall

Fairy Tail Constellations

RPG Fusion

Eclipso

Alex d'Or

Kingdom Ultimate

Tous nos partenaires

Devenir
partenaire



forums

Index du forum > Entraide > [Python] Avis sur mon code


Hellper - posté le 04/09/2012 à 16:41:18 (5402 messages postés)

❤ 0

Tonton Hellper

Domaine concerné: code
Logiciel utilisé: Python
Bonjour,

Je viens de réaliser mon premier code en python et j'aimerais avoir votre avis dessus au niveau de sa syntaxe, sa possible optimisation et ses risques de bug.
Le but de ce script est de calculer les nombres premiers jusqu'à un nombre indiqué par l'utilisateur.

Portion de code : Tout sélectionner

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
# -*- coding: cp1252 -*-
import math
nombre_test = 4
pourcentage = 5
liste = [ 2, 3 ]
nombre_final = int(raw_input("Aller jusqu'où ? "))
while nombre_test < nombre_final : 
  if float(nombre_test)/nombre_final*100 > pourcentage :
      print "j'en suis à " + str(pourcentage) + " %"
      pourcentage = pourcentage + 5
  for nombre_prise in liste :
    if nombre_test % nombre_prise == 0 :
      break
    if nombre_prise > math.sqrt(nombre_test) :
        liste.append(nombre_test)
        break
  nombre_test = nombre_test + 1
print liste
print len(liste)
 



Merci d'avance.

La liste des raisons pour lesquelles le making se meurt, la cinquième va vous étoner | Des projets abandonnés, source d'inspiration :D | Mes jeux


TLN - posté le 04/09/2012 à 17:38:56 (16338 messages postés) - honor

❤ 0

Architecte d'Outre-Mondes

1) Ton programme n'est pas correct quand l'utilisateur entre un nombre entre 0 et 3 (ça va afficher [2,3] alors que ça devrait pas).

2) En cas d'utilisateur qui écrit n'importe quoi, le « int(raw_input()) » peut générer une erreur. Ce n'est pas un bug mais tu peux utiliser une structure de type « try: (...) except ValueError: » pour prendre ça en compte.

3) Plutôt que de tester si « a > sqrt(b) » dans un programme, il est plus rapide (et plus sûr) de tester si « a * a > b » ou non.

4) L'idée de tester la division par les nombres premiers déjà connu (plutôt que de boucler sur tous les i² < n) est pas mal, mais si tu veux un algo' plus efficace pour générer des nombres premiers je t'invite à te renseigner sur comment fonctionne le crible d’Ératosthène. Tu pourras aller jusqu'à 10^8 sans aucun problème. Après ça demande un peu plus d'efforts.

Apôtre du Grand Kirby tkt.


Hellper - posté le 04/09/2012 à 20:20:41 (5402 messages postés)

❤ 0

Tonton Hellper

Merci pour ton aide.
En fait si j'ai pas mis de truc pour vérifier c'est que je pensait l'utiliser seul, et je connaissait pas try()except. Mais je sens que je vais apprendre des choses en l'utilisant donc je bosse dessus et j'ai presque fini de peaufiner un code pour exclure les caractères autres que chiffres et inférieurs à 4.
Par contre je connaissais déjà le crible d’Ératosthène et mon code s'en inspire. J'ai d'ailleurs l'impression que mon code fait le m^me nombre de calculs, excepté que le crible met en valeur le nombres premiers alors que mon code met le nombre à tester en valeur. Enfin bon, je vais quand y réfléchir encore.

La liste des raisons pour lesquelles le making se meurt, la cinquième va vous étoner | Des projets abandonnés, source d'inspiration :D | Mes jeux

Index du forum > Entraide > [Python] Avis sur mon code

repondre up

Suite à de nombreux abus, le post en invités a été désactivé. Veuillez vous inscrire si vous souhaitez participer à la conversation.

Haut de page

Merci de ne pas reproduire le contenu de ce site sans autorisation.
Contacter l'équipe - Mentions légales

Plan du site

Communauté: Accueil | Forum | Chat | Commentaires | News | Flash-news | Screen de la semaine | Sorties | Tests | Gaming-Live | Interviews | Galerie | OST | Blogs | Recherche
Apprendre: Visite guidée | RPG Maker 95 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker MV | Tutoriels | Guides | Making-of
Télécharger: Programmes | Scripts/Plugins | Ressources graphiques / sonores | Packs de ressources | Midis | Eléments séparés | Sprites
Jeux: Au hasard | Notre sélection | Sélection des membres | Tous les jeux | Jeux complets | Le cimetière | RPG Maker 95 | RPG Maker 2000 | RPG Maker 2003 | RPG Maker XP | RPG Maker VX | RPG Maker VX Ace | RPG Maker MV | Autres | Proposer
Ressources RPG Maker 2000/2003: Chipsets | Charsets | Panoramas | Backdrops | Facesets | Battle anims | Battle charsets | Monstres | Systems | Templates
Ressources RPG Maker XP: Tilesets | Autotiles | Characters | Battlers | Window skins | Icônes | Transitions | Fogs | Templates
Ressources RPG Maker VX: Tilesets | Charsets | Facesets | Systèmes
Ressources RPG Maker MV: Tilesets | Characters | Faces | Systèmes | Title | Battlebacks | Animations | SV/Ennemis
Archives: Palmarès | L'Annuaire | Livre d'or | Le Wiki | Divers