Auteur Sujet: [PYTHON] Calculer la consommation électrique  (Lu 6951 fois)

0 Membres et 1 Invité sur ce sujet

Hors ligne unbastien1

  • Contributeur de Kali-linux.fr
  • Membre régulier
  • *****
  • Messages: 160
  • +10/-0
[PYTHON] Calculer la consommation électrique
« le: 07 août 2014 à 16:28:13 »
voici un script assez simple qui calcule la consommation électrique de votre appareil pour l'heure, le jour, la semaine, le mois et l'année (en tenant en compte le fait qu'il reste branché et en marche constamment (tel un congélateur ou votre raspberry pi) :
je suis ouvert à toutes critiques.

[code#! /usr/bin/env python3
# -*- coding: ISO-8859-1 -*-

import os

print ("calcule de consommation electrique d'un appareil")

try:
    a = input("quel est la consommation de votre appareil (en watt)?: ")
except BaseException: #gère l'erreur qui demande un nombre et où l'utilisateur donne un string. BaseException regroupe tout les erreur dù à l'utilisateur
    a = input(" vous n'avez pas entrer un chiffre, quel est la consommation de votre appareil en watt?: ")
try:
    b= input("quel est le prix du kwh chez vous? (si vous ne savez pas, entrer comme valeur zéro (en chiffre), la valeur utilisée sera alors celle de l'été 2014 : ")
except BaseException: #gère l'exception qu'une seule fois et pas tant que une lettre est saisie.
    b= input("vous n'avez pas entrer de chiffre, quel est la veleur du kwh chez vous entrer comme valeur zéro (en chiffre), la valeur utilisée sera alors celle de l'été 2014: ")
try:
    choix = input("votre appareil reste allumé environ combien de temps, tapez le nombre d'heure exacte (en chiffre): ")
except BaseException:
    choix = input("vous n'avez pas saisi un chiffre, tapez le nombre d'heure exacte (en chiffre): ")

while choix > 24:
   choix= input(" votre appareil ne peut pas rester allumé plus de 24 heures par jour, veuillez entrer un nombre valide: ")

if b == 0:
   b = 0.13
prix_heure = (a) * (b)/1000  #on divise par mille car on a le resultat en wh et non en kwh sachant que un kw = a 1000w.
prix_jour = prix_heure * (choix)
prix_semaine = prix_jour*7
prix_mois = prix_jour* 30
prix_annee= prix_mois * 12
print("la consommation de votre appareil pour une heure est egale a", prix_heure)
print("la consommation de votre appareil pour une journee (le nombre d'heure saisies precedement) est egale a " , prix_jour)
print("la consommation de votre appareil pour une semaine est egale a " , prix_semaine)
print("la consommation de votre appareil pour un mois est egale a " , prix_mois)
print("la consommation de votre appareil pour une annee est egale a" , prix_annee)

os.system("pause")

"""ToDoList
-ne gère les exception qu'une fois
"""
« Modifié: 10 août 2014 à 18:53:48 par unbastien1 »
près de deux ans que je connais linux/gnu, deux ans, déjà !

Hors ligne coyotus

  • Contributeur de Kali-linux.fr
  • Membre Elite
  • *****
  • Messages: 3795
  • +264/-30
  • IN GNU WE TRUST
    • Groupe d'Utilisateurs de GNU/Linux...
Re : un petit script simple
« Réponse #1 le: 07 août 2014 à 18:00:11 »
C'est du python 3 il manque le shebang

Regarde aussi la doc pour le coding afin de prendre en charge les accents.


Hors ligne unbastien1

  • Contributeur de Kali-linux.fr
  • Membre régulier
  • *****
  • Messages: 160
  • +10/-0
Re : un petit script simple
« Réponse #2 le: 07 août 2014 à 18:23:36 »
ok, c'est réglé
près de deux ans que je connais linux/gnu, deux ans, déjà !

Hors ligne unbastien1

  • Contributeur de Kali-linux.fr
  • Membre régulier
  • *****
  • Messages: 160
  • +10/-0
Re : [PYTHON] Calculer la consommation électrique
« Réponse #3 le: 08 août 2014 à 23:38:28 »
EDIT: j'ai modifier le code, mais toujours ce problème d'encoding (j'ai survolé la doc de sebsauvage)
de plus comment porter mon script sous windows?
ajouter C:\Python27 l'équivelant du shebang pour linux?
« Modifié: 08 août 2014 à 23:42:31 par unbastien1 »
près de deux ans que je connais linux/gnu, deux ans, déjà !

Hors ligne _jun

  • Contributeur de Kali-linux.fr
  • Membre régulier
  • *****
  • Messages: 100
  • +11/-1
Re : [PYTHON] Calculer la consommation électrique
« Réponse #4 le: 22 novembre 2014 à 20:44:07 »
Y'a pas de shebang je crois sous windows
Mais sinon je comprends pas ton code, pourquoi gérer l'exception "si l'utilisateur entre un string" ?
Après tout input attend un str et rien d'autre non ? A part si on cast avec int()

Hors ligne unbastien1

  • Contributeur de Kali-linux.fr
  • Membre régulier
  • *****
  • Messages: 160
  • +10/-0
Re : [PYTHON] Calculer la consommation électrique
« Réponse #5 le: 03 décembre 2014 à 09:00:17 »
justement au lieu de crasher le script redemande de saisir un nombre, une seule fois par contre
près de deux ans que je connais linux/gnu, deux ans, déjà !

Hors ligne _jun

  • Contributeur de Kali-linux.fr
  • Membre régulier
  • *****
  • Messages: 100
  • +11/-1
Re : [PYTHON] Calculer la consommation électrique
« Réponse #6 le: 03 décembre 2014 à 13:28:52 »
J'te conseille de revoir ton algorithmique pure, parce que là ...
Déjà, en général on ne fait pas un while comme ça:
Le mieux est de mettre choix à 25, et de faire un while choix > 25 (pour entrer une fois dans la boucle) puis on demande le choix avec le try, etc.
Ainsi si le choix est toujours > à 25, on refait une boucle, sinon on sort de la boucle, et c'est + propre.

Hors ligne WarLocG

  • Contributeur de Kali-linux.fr
  • Membre sérieux
  • *****
  • Messages: 475
  • +69/-0
  • Spé Code Python Java Bash
Re : [PYTHON] Calculer la consommation électrique
« Réponse #7 le: 03 décembre 2014 à 16:22:21 »
Salut,

J'ai retravaillé ton code mais il y a toujours moyen de mieux faire, le voici
#!/usr/bin/env python3
# -*- coding: ISO-8859-1 -*-

import os
from sys import platform # detection de l OS
from re import match # test numerique

def pause():
    if platform.startswith('linux'):
        os.system('echo "Appuyez sur une touche pour continuer..." && read a')
    if platform.startswith('win32'):
        os.system('pause')

def test_num(inputTxt):                      # input retravaille avec test
    num = raw_input(inputTxt)
    while(match(r"^[0-9]+([\.,][0-9]+)?$",num) is None):
        if platform.startswith('linux'):
    print("\033[1;31mVeuillez entrer un numerique!\033[0m") # coloration synthaxique incluse
        if platform.startswith('win32'):
            print("Veuillez entrer un numerique!")
        num = raw_input(inputTxt)
    if(match(r"^[0-9]+(,[0-9]+)$",num)):     # flottant virgule
    return float(num.replace(',','.'))
    if(match(r"^[0-9]+(\.[0-9]+)$",num)):    # flottant point
        return float(num)
    if(match(r"^[0-9]+$",num)):              # entier
        return int(num)

print ("calcule de consommation electrique d'un appareil")

#try:
#    a = input("quel est la consommation de votre appareil (en watt)?: ")
#except BaseException: #gere l'erreur qui demande un nombre et a l'utilisateur donne un string. BaseException regroupe tout les erreur du a l'utilisateur
#    a = input(" vous n'avez pas entrer un chiffre, quel est la consommation de votre appareil en watt?: ")
#try:
#    b= input("quel est le prix du kwh chez vous? (si vous ne savez pas, entrer comme valeur zero (en chiffre), la valeur utilisee sera alors celle de l'ete 2014 : ")
#except BaseException: #gere l'exception qu'une seule fois et pas tant que une lettre est saisie.
#    b= input("vous n'avez pas entrer de chiffre, quel est la veleur du kwh chez vous entrer comme valeur zero (en chiffre), la valeur utilisee sera alors celle de l'ete 2014: ")
#try:
#    choix = input("votre appareil reste allumee environ combien de temps, tapez le nombre d'heure exacte (en chiffre): ")
#except BaseException:
#    choix = input("vous n'avez pas saisi un chiffre, tapez le nombre d'heure exacte (en chiffre): ")

consommation = test_num("Quelle est la consommation de votre appareil (en watt) ?")
kwh = test_num("Quel est le prix du kw/h chez vous (0 si vous ignorez) ?")

choix = test_num("Votre appareil reste allume environ combiens de temps (heure exacte) ?")
while choix > 24:
   choix= test_num("Votre appareil ne peut pas rester allume plus de 24 heures par jour, veuillez entrer un nombre valide: ")

if kwh == 0:
   kwh = float(0.13)

prix_heure = (consommation) * (kwh)/1000  #on divise par mille car on a le resultat en wh et non en kwh sachant que un kw = a 1000w.
prix_jour = prix_heure * (choix)

print("la consommation de votre appareil pour une heure est egale a %s" % (prix_heure))
print("la consommation de votre appareil pour une journee (le nombre d'heure saisies precedement) est egale a %s" % (prix_jour))
print("la consommation de votre appareil pour une semaine est egale a %s" % (prix_jour * 7))
print("la consommation de votre appareil pour un mois est egale a %s" % (prix_jour * 7 * 30))
print("la consommation de votre appareil pour une annee est egale a %s" % (prix_jour * 7 * 30 * 12))

pause()

"""ToDoList
-ne gere les exception qu'une fois
"""
A tester, chez moi ca tourne.

PS: on peut remplacer les "[0-9]+" par des "(\d)+" dans les re.match aussi mais je préfère ce format-ci, c'est plus visuel :)

Pour quand même montrer le résultat:
Citer
[warlocg][linux][~/Desktop/Scripts/python][16:20:49][user mode]
Enter command here -> python conso_elec.py
calcule de consommation electrique d'un appareil
Quelle est la consommation de votre appareil (en watt) ?45.3
Quel est le prix du kw/h chez vous (0 si vous ignorez) ?48,9
Votre appareil reste allume environ combiens de temps (heure exacte) ?26
Votre appareil ne peut pas rester allume plus de 24 heures par jour, veuillez entrer un nombre valide: 23
la consommation de votre appareil pour une heure est egale a 2.21517
la consommation de votre appareil pour une journee (le nombre d'heure saisies precedement) est egale a 50.94891
la consommation de votre appareil pour une semaine est egale a 356.64237
la consommation de votre appareil pour un mois est egale a 465.1857
la consommation de votre appareil pour une annee est egale a 5582.2284
Appuyez sur une touche pour continuer...

Edit: correction de 2 petites variables apres relecture que j avais mélangé :p (prix_heure -> prix_jour)

@ unbastien1 : tu as une balise [ code ] en trop avant "voici" et une balise [ code ] mal fermée à ce niveau la dans ton premier message:
Citer
[code#! /usr/bin/env python3
Juste rajouter le ] fermant après code devrait rendre ton message correct :)

Bien à toi,
W.
« Modifié: 04 décembre 2014 à 02:11:58 par WarLocG »
A lire avant de poser vos questions : http://www.linux-france.org/article/these/smart-questions/smart-questions-fr.html
Pour les questions de base sous debian : https://debian-facile.org/index-df.php
Veuillez utiliser la fonction Rechercher avant de poster.

Hors ligne unbastien1

  • Contributeur de Kali-linux.fr
  • Membre régulier
  • *****
  • Messages: 160
  • +10/-0
Re : [PYTHON] Calculer la consommation électrique
« Réponse #8 le: 15 décembre 2014 à 21:15:24 »
merci bien c'est toujours agréable d'ếtre soutenu
près de deux ans que je connais linux/gnu, deux ans, déjà !