Contenu | Rechercher | Menus

Annonce

Si vous avez des soucis pour rester connecté, déconnectez-vous puis reconnectez-vous depuis ce lien en cochant la case
Me connecter automatiquement lors de mes prochaines visites.

À propos de l'équipe du forum.

#51 Le 07/08/2007, à 13:43

bipede

Re : [Résolu] gros débutant en python : besoin d'aide

scholi a écrit :

Sinon pour le problème du input, n'utilsez JAMAIS input() si raw_input() fait l'affaire, ça peut éviter des bugs et c'est beaucoup plus sécurisé. Dans le cas de demander un nombre à l'utilisateur, raw_input() est plus que suffisant.

#!/usr/bin/python
#-*- coding: utf-8 -*-
nn = raw_input('Veuillez entrer un nombre positif quelconque : ')
print 'Le carré de %i vaut %i' % (int(nn), int(nn)**2)

Ah oui ?

Explique-moi maintenant ce qui se passe si ton utilisateur saisit une lettre dans ton raw_input() ...

input() permet de récupérer du numérique et fonctionne très bien.
raw_input() permet de récupérer de l'alphanumérique et fonctionne très bien.

Après, pour éviter les bugs il faut contrôler ce qui est saisi avant de le traiter....


Desktop: MSI - Intel® Core™ i5-3330 CPU @ 3.00GHz × 4 - RAM 8 go- Kubuntu 21.04 - Système sur SSD 64 Go - /home sur HDD 500 Go.
Laptop: DELL Inspiron-15 3567 - Intel® Core™ i5-7200 CPU @ 2.50GHz × 4 - RAM 8 go - HDD 1 To - Ubuntu 20.10 avec /home séparé.

Mon site: Les contributions du bipède

Hors ligne

#52 Le 07/08/2007, à 13:47

bipede

Re : [Résolu] gros débutant en python : besoin d'aide

scholi a écrit :

Et le problème vient plutôt de la manière bizarroïde que tu as de lancer ton scripte:

python -u "fichier.py"  c'est quoi ça pour du chenil? (Je dis pas que c'est faux, je dis pas non plus que le problème vient de là, mais je dit juste que c'est un peu lourd et inutile)
Tapes simplement ./fichier.py

Ca c'est le lanceur de Scite quand tu fais "Outils>exécuter" ou F5 et ce lanceur fonctionne très bien...


Desktop: MSI - Intel® Core™ i5-3330 CPU @ 3.00GHz × 4 - RAM 8 go- Kubuntu 21.04 - Système sur SSD 64 Go - /home sur HDD 500 Go.
Laptop: DELL Inspiron-15 3567 - Intel® Core™ i5-7200 CPU @ 2.50GHz × 4 - RAM 8 go - HDD 1 To - Ubuntu 20.10 avec /home séparé.

Mon site: Les contributions du bipède

Hors ligne

#53 Le 07/08/2007, à 13:59

Gillaume

Re : [Résolu] gros débutant en python : besoin d'aide

scholi a écrit :

heu style:

h,m,s = (s/3600,(s%3600)/60,s%60)

----------------------------------------------------------

Euh, Vous pouvez me montrer qqch de plus joli ? big_smile
merci


Guili Guili

Hors ligne

#54 Le 07/08/2007, à 14:09

HymnToLife

Re : [Résolu] gros débutant en python : besoin d'aide

Ça équivaut à

h = s/3600
m = (s%3600)/60
s = s%60

- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !

Hors ligne

#55 Le 07/08/2007, à 14:15

orlan

Re : [Résolu] gros débutant en python : besoin d'aide

HymnToLife a écrit :

Ça équivaut à

h = s/3600
m = (s%3600)/60
s = s%60

En fait, pour h, il faudrait plutôt faire :

h = (s % (60*60*24) ) / 3600

Puisqu'ensuite on calcule le nombre de jours :

j = (s % (60*60*24*30) ) / (60*60*24)

Puis le nombre de mois (on va dire qu'il y a 30 jours en moyenne dans un mois) :

m = (s % (60*60*24*30*12) ) / (60*60*24*30)

Enfin les années :

a = s / (60*60*24*30*12)

Le truc, c'est que quand on divise des integers entre eux, le résultat est aussi un entier.
(Ca c'est un exo du Swinnen, je l'ai fait il y a deux semaines, je suis au chap 9)

Hors ligne

#56 Le 07/08/2007, à 14:36

scholi

Re : [Résolu] gros débutant en python : besoin d'aide

Bon il me semble que ce n'est pas un forum python, donc merci de continuer la discussion sur les IDLE et non sur comment fonctionne python


S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

Hors ligne

#57 Le 07/08/2007, à 14:47

Gillaume

Re : [Résolu] gros débutant en python : besoin d'aide

ok


Guili Guili

Hors ligne

#58 Le 07/08/2007, à 14:48

HymnToLife

Re : [Résolu] gros débutant en python : besoin d'aide

scholi a écrit :

Bon il me semble que ce n'est pas un forum python, donc merci de continuer la discussion sur les IDLE et non sur comment fonctionne python

C'est un forum "Développement - Programmation". Si ce topic ne te plaît pas, on ne te retient pas.


- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !

Hors ligne

#59 Le 07/08/2007, à 15:54

bipede

Re : [Résolu] gros débutant en python : besoin d'aide

scholi a écrit :

Bon il me semble que ce n'est pas un forum python, donc merci de continuer la discussion sur les IDLE et non sur comment fonctionne python

C'est pour ça que tu racontes n'importe quoi ?


Desktop: MSI - Intel® Core™ i5-3330 CPU @ 3.00GHz × 4 - RAM 8 go- Kubuntu 21.04 - Système sur SSD 64 Go - /home sur HDD 500 Go.
Laptop: DELL Inspiron-15 3567 - Intel® Core™ i5-7200 CPU @ 2.50GHz × 4 - RAM 8 go - HDD 1 To - Ubuntu 20.10 avec /home séparé.

Mon site: Les contributions du bipède

Hors ligne

#60 Le 07/08/2007, à 17:04

aleph

Re : [Résolu] gros débutant en python : besoin d'aide

Un "moteur" Python a besoin de connaître l'encodage du flux d'entrée pour fonctionner correctement. J'utilise ici volontairement le mot moteur de façon générique, car le moteur n'est pas nécessairement l'application/exécutable/binaire Python.

Si le flux d'entrée est un fichier (ex. $ python script.py ou c:\python.exe script.py) et qu'aucune indication d'encodage n'est spécifiée. le moteur Python assume que l'encodage du flux d'entrée est ascii.

Si l'on souhaite utiliser des caractères non ascii (ex. lettres accentuées) dans un fichier qui sert de flux d'entrée, on peut placer l'information d'encodage dans la première ou deuxième ligne de ce fichier. L'information d'encodage doit être conforme à une certaine expression régulière (non donnée ici). Il est d'usage d'utiliser une ligne de code ce cette forme:

#-*- coding: xxx -*-
ou xxx spécifie l'encodage.

Il est important de réaliser que l'encodage défini dans l'en-tête d'un fichier est celui utilisé par le moteur Python et ne correspond pas ou ne doit pas nécessairement correspondre à l'encodage du fichier qui contient cette information. Ce sont deux concepts différents.

Par souci d'information et de simple bon sens, l'information d'encodage du moteur est généralement la même que celle du fichier. Accessoirement, cette information est aussi utilisée par de nombreux éditeurs.

Il est tout à fait possible (et heureusement, c'est le cas) d'avoir des encodages différents pour le  fichier/script et le moteur Python

--------------

Comme l'a dit justement bipède

input() est identique à eval(raw_input())

input() accepte en entrée une expression Python valide et renvoie la dite expression, cela peut être un nombre, un string, un dictionnaire ou toute "valeur" sous forme de variable existant dans le "namespace".

raw_input() accepte une chaîne de caractères et renvoie celle-ci. Il appartient à l'utilisateur de savoir ce qu'il veut en faire.

raw_input() est plus souple, les raisons de l'existence d' input() sont à chercher dans l'historique du développement de Python. (Dans les prochaines versions, input() aura disparu). Il n'est pas plus juste ou faux d'utiliser l'un ou l'autre.

-------------

> Gauillaume --- h, min, sec
% : reste de la division de deux entiers
/ : quotient de la division de deux entiers

Je suis persuadé que si tu fais ton calcul sur un bout de papier, tu comprendras où est l'erreur. Indice, 3661 secondes.

#61 Le 07/08/2007, à 19:08

/b/nt/

Re : [Résolu] gros débutant en python : besoin d'aide

HymnToLife a écrit :
scholi a écrit :

Utilises raw_input() à la place de input(). input() ne fait pas du tout ce que tu recherches...

Ah bon ? Je suis d'accord qu'il vaut mieux utiliser raw_input mais input marche bien aussi...

j'ai reessayé

#!coding: utf-8
print 'Veuillez entrer un nombre positif quelconque :',
y = input()
print 'Le carré de', y, 'vaut', y**2

ça a marché sur idle, sur eric mais toujours pas sur scite !!

#62 Le 07/08/2007, à 19:24

bipede

Re : [Résolu] gros débutant en python : besoin d'aide

/b/nt/ a écrit :
HymnToLife a écrit :
scholi a écrit :

Utilises raw_input() à la place de input(). input() ne fait pas du tout ce que tu recherches...

Ah bon ? Je suis d'accord qu'il vaut mieux utiliser raw_input mais input marche bien aussi...

j'ai reessayé

#!coding: utf-8
print 'Veuillez entrer un nombre positif quelconque :',
y = input()
print 'Le carré de', y, 'vaut', y**2

ça a marché sur idle, sur eric mais toujours pas sur scite !!

En fait, Scite sous linux ne permet visiblement pas de prompt interactif....
Je viens de tester sous ubuntu, ça fait pareil chez moi.
Ca doit pouvoir se paramétrer dans les options, mais je n'ai pas trouvé.


Desktop: MSI - Intel® Core™ i5-3330 CPU @ 3.00GHz × 4 - RAM 8 go- Kubuntu 21.04 - Système sur SSD 64 Go - /home sur HDD 500 Go.
Laptop: DELL Inspiron-15 3567 - Intel® Core™ i5-7200 CPU @ 2.50GHz × 4 - RAM 8 go - HDD 1 To - Ubuntu 20.10 avec /home séparé.

Mon site: Les contributions du bipède

Hors ligne

#63 Le 07/08/2007, à 20:01

Gillaume

Re : [Résolu] gros débutant en python : besoin d'aide

Merci aleph...
merci les gars
j'ai réussi !

je comprends pas : on peut pas mettre 2 parentheses ?
qd je mets : print ((s/60)%60)/60 par exemple.
ça pose un pb au niveau des (

orlan :
merci aussi...
j'en suis au chapitre 4. le pb 4.7, j'y arrive pas...  sad
la boucle, la boucle ....

ecrire les 20 premiers termes de la table de 7. Si le terme est un multiple de 
3, y mettre un *
exemple : 7  14  21 * 28 ...

PS : je sais que l'on est sur le forum Ubuntu, mais si j'apprends Python, c'est que j'ai
envie de participer activement ! smile
C++, j'ai pas réussi à démarrer seul, Python, ça le fait, j'y arrive : c'est une énorme satisfaction.
Maintenant, si un modo demande d'arreter, j'arreterai....:/


Guili Guili

Hors ligne

#64 Le 07/08/2007, à 20:30

HymnToLife

Re : [Résolu] gros débutant en python : besoin d'aide

print ((s/60)%60)/60

Ça marche, mais ça fera toujours 0. Le reste d'une division entière par 60 sera forcément strictement inférieur à 60, et le quotient de la division entière par 60 d'un nombre strictement inférieur à 60 fera toujours 0.

ecrire les 20 premiers termes de la table de 7. Si le terme est un multiple de
3, y mettre un *
exemple : 7  14  21 * 28 ...

C'est facile pourtant... Réponse ici.

Dernière modification par HymnToLife (Le 07/08/2007, à 20:37)


- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !

Hors ligne

#65 Le 07/08/2007, à 20:56

Gillaume

Re : [Résolu] gros débutant en python : besoin d'aide

merci, mais avec while, seule méthode que je connais,

ta solution ne semble pas fonctionner ...
http://paste.ubuntu-nl.org/32957/

A quoi sert  "i += 1"  à la fin ? je connais pas, pas encore appris ...


Guili Guili

Hors ligne

#66 Le 07/08/2007, à 21:02

Gillaume

Re : [Résolu] gros débutant en python : besoin d'aide

j'avais commencé ceci, mais ça marche pas, je sais pas pkoi ?..
Apres else, j'ai un message d'erreur...

"SyntaxError: invalid syntax"

>>> a = 0
>>> while (a < 20 ):
	b = a*7
	if b%3 != 0:
		print b,
		else:

Guili Guili

Hors ligne

#67 Le 07/08/2007, à 21:06

HymnToLife

Re : [Résolu] gros débutant en python : besoin d'aide

Mon code :

i = 1
while i <= 20 :
        j = 7 * i
        print j,
        if j%3 == 0 :
                print '*',
        i += 1

Ton code :

i = 1
while i <= 20 :
	j = 7 * i
	print j,
	if j%3 == 0 :
		print '*',
		i += 1

Ce n'est pas la même chose wink

i += 1 est juste un raccourci pour i = i + 1

L'erreur que tu as vient du fait que ton else n'est pas au même niveau d'indentation que le if correspondant.

Dernière modification par HymnToLife (Le 07/08/2007, à 21:07)


- Rodrigue, as-tu du cœur ?
- Non, mais j'ai du pique !

Hors ligne

#68 Le 07/08/2007, à 21:12

/b/nt/

Re : [Résolu] gros débutant en python : besoin d'aide

Gillaume a écrit :

merci, mais avec while, seule méthode que je connais,

ta solution ne semble pas fonctionner ...
http://paste.ubuntu-nl.org/32957/

A quoi sert  "i += 1"  à la fin ? je connais pas, pas encore appris ...

"i += 1"  équivalent à  i = i + 1

Dernière modification par /b/nt/ (Le 07/08/2007, à 21:16)

#69 Le 07/08/2007, à 21:20

Gillaume

Re : [Résolu] gros débutant en python : besoin d'aide

ok, j'ai compris,

pour le niveau d'indentation !

et
en fait, en mettant à la fin, i = i + 1, tu ferme la boucle, commencer avec while ...
C'est aussi pour ça que ça ne marchait pas... d'allieurs, je savais que ça venait de là, mais comment le resoudre ... ?? ;.. smile
Merci


Guili Guili

Hors ligne

#70 Le 08/08/2007, à 07:36

aleph

Re : [Résolu] gros débutant en python : besoin d'aide

>bipede
En fait, Scite sous linux ne permet visiblement pas de prompt interactif....
Je viens de tester sous ubuntu, ça fait pareil chez moi.
Ca doit pouvoir se paramétrer dans les options, mais je n'ai pas trouvé.

------

http://www.nabble.com/Python-raw_input%28doesn%27t-work-on-Linux-%29-tf1187103.html#a3127705

(Neil == Neil Hodgson, le créateur de Scintilla)

#71 Le 08/08/2007, à 08:02

reeth

Re : [Résolu] gros débutant en python : besoin d'aide

Sinon, pour avoir les exemples et des codes sources des exercices, il faut aller faire un tour sur le site de l'auteur ici.

Hors ligne

#72 Le 08/08/2007, à 09:40

aleph

Re : [Résolu] gros débutant en python : besoin d'aide

> Guillaume

Autant prendre des bonnes habitudes : http://www.python.org/dev/peps/pep-0008/

Point important : l'indentation se fait avec quatre blancs.

#73 Le 08/08/2007, à 10:30

scholi

Re : [Résolu] gros débutant en python : besoin d'aide

aleph a écrit :

>
Point important : l'indentation se fait avec quatre blancs.

Pas forcément, tu peux tout aussi bien le faire avec des tabulations ou 8 espaces, c'est =
Il faut juste que ce soit uniforme dans tout ton code source sinon il fait des erreurs.


S'il n'y a pas de solution, c'est qu'il n'y a pas de problème.

Hors ligne

#74 Le 08/08/2007, à 13:14

bipede

Re : [Résolu] gros débutant en python : besoin d'aide

scholi a écrit :
aleph a écrit :

>
Point important : l'indentation se fait avec quatre blancs.

Pas forcément, tu peux tout aussi bien le faire avec des tabulations ou 8 espaces, c'est =
Il faut juste que ce soit uniforme dans tout ton code source sinon il fait des erreurs.

Quatre blancs n'est pas une obligation mais une recommandation et un usage largement répandu.
Ca permet de reprendre le source sur n'importe quel éditeur de texte sans risque de surprises.
Les tabulations sont une calamité à reprendre sur certain éditeurs...


Desktop: MSI - Intel® Core™ i5-3330 CPU @ 3.00GHz × 4 - RAM 8 go- Kubuntu 21.04 - Système sur SSD 64 Go - /home sur HDD 500 Go.
Laptop: DELL Inspiron-15 3567 - Intel® Core™ i5-7200 CPU @ 2.50GHz × 4 - RAM 8 go - HDD 1 To - Ubuntu 20.10 avec /home séparé.

Mon site: Les contributions du bipède

Hors ligne

#75 Le 08/08/2007, à 14:13

reeth

Re : [Résolu] gros débutant en python : besoin d'aide

En général, il y a l'auto-indentation sur les éditeurs (EDI ou même sur les éditeurs de texte comme kate), ou alors on peut choisir qu'une tabulation=4 espaces.

Hors ligne