Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
2613 connectés 

  FORUM HardWare.fr
  Programmation
  Python

  [python]Question de saut de ligne

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[python]Question de saut de ligne

n°472937
protoinou
Posté le 31-07-2003 à 11:18:18  profilanswer
 

Salut voilà je sais comment gérer les saut de ligne en java, ou autr langage. mais voilà en python quand on fait un print, le saut de ligne est automatique...  
Le problème c'est que je ne veux pas ce put.... de saut de ligne, est ce que vous savez comment faire ???
J'ai cherché bien sûr, j'ai vu comment virer les dèrnière lettre, les espaces .. mais pas comment virer le saut de ligne ou écrire à la suite du dernier print ..  
 
HELP ? :sweat:  
 
@ ++ :hello:

mood
Publicité
Posté le 31-07-2003 à 11:18:18  profilanswer
 

n°472962
Taz
bisounours-codeur
Posté le 31-07-2003 à 11:23:33  profilanswer
 

print "hello",

n°472984
protoinou
Posté le 31-07-2003 à 11:31:27  profilanswer
 

çà ne marche pas cette solution chez moi ...  
je t'envoi le code, au cas où tu veuille bien y jeter un oeil :
 
 

Code :
  1. #!/usr/bin/python2
  2. import cgi
  3. import MySQLdb
  4. import os
  5. from param import *
  6. print "Content-type: text/html; charset=iso-8859-1"
  7. print ""
  8. # body
  9. print '''
  10. <html>
  11. <head>
  12. <title>Gestion des Projets et des taches</title>
  13. </head>
  14. <body>
  15.       '''
  16. print "<!-- HOST : %s DBNAME: %s DBUSER:%s DBPASSWD:%s -->" % (HOST,DBNAME,DBUSER,DBPASSWD)
  17. conn=MySQLdb.connect(host=HOST,db=DBNAME,user=DBUSER,passwd=DBPASSWD)
  18. curs=conn.cursor()
  19. #fonction qui récupère sous forme de code HTML l'arbre des projets.
  20. def getprojet(space,parent):
  21.     space=space
  22.     sql='select * from projet where parent="'+parent+'"'
  23.     count=curs.execute(sql)#renvoie le nombre de lignes trouvées lors de la requête SQL.
  24.     count=int(count)
  25.     #curs.fetchall retourne une liste des tuples réultat de la requete SQL. On veut pour chaque tuple récuperer ses fils.
  26.     c=0
  27.     for i in curs.fetchall():
  28.         c=c+1
  29.         idProjet=str(i[0])
  30.         print '<tr>'   
  31.    
  32.         print '<td>'
  33.         print space
  34.         if c!=count:
  35.             print '<img src="../../icons/space.jpg" width="1" height="21" border="0"><img src="../../icons/t.gif" width="9" height="21" border="0">',
  36.         else:
  37.             print '<img src="../../icons/space.jpg" width="1" height="21" border="0"><img src="../../icons/L.gif" width="9" height="21" border="0">',
  38.            
  39.         if hasson(idProjet) or hastask(idProjet):
  40.             print '<img src="../../icons/m.gif" width="9" height="21" border="0">',
  41.         else:
  42.             print '<img src="../../icons/h.gif" width="9" height="21" border="0">',
  43.        
  44.         print i[1]
  45.      
  46.         print '</td>'
  47.         print '</tr>'
  48.      
  49.         if hastask(idProjet):
  50.             sql='select * from tache where idProjet="'+idProjet+'"'
  51.             ccount=curs.execute(sql)
  52.             ccount=int(ccount)
  53.             cc=0
  54.             for k in curs.fetchall():
  55.                 cc=cc+1
  56.                 print '<tr><td>'
  57.                 print space+'<img src="../../icons/space.jpg" width="14" height="21" border="0">',
  58.                 if cc!=ccount or hasson(idProjet):
  59.                     print '<img src="../../icons/space.jpg" width="1" height="21" border="0"><img src="../../icons/t.gif" width="9" height="21" border="0">',
  60.                 else:
  61.                     print '<img src="../../icons/space.jpg" width="1" height="21" border="0"><img src="../../icons/L.gif" width="9" height="21" border="0">',
  62.        
  63.                
  64.              
  65.                 print '<b>'+k[1]+'</b>'
  66.                 print '</td></tr>'
  67.         if c!=count:
  68.             espace=space+'&nbsp;<img src="../../icons/i.gif" width="12" height="21" border="0">'
  69.         else:
  70.             espace=space+'<img src="../../icons/space.jpg" width="12" height="21" border="0">'
  71.         getprojet(espace,str(i[0]))
  72.                  
  73. #Regarde si le projet courant a des fils
  74. #
  75. #param = courant : Le numéro de projet (idProjet) courant
  76. #return boolean : True si il a au moins 1 fils
  77. def hasson(courant):
  78.     sql='select * from projet where parent="'+courant+'"'
  79.     curs.execute(sql)
  80.     res=curs.fetchone()
  81.     if str(res)!='None':
  82.         return "1"
  83. def hastask(courant):
  84.     sql='select * from tache where idProjet="'+courant+'"'
  85.     curs.execute(sql)
  86.     res=curs.fetchone()
  87.     if str(res)!='None':
  88.         return "1"   
  89.    
  90.    
  91. print '<table cellpadding="0" cellspacing="0" BORDER="0">'
  92. print '<tr>'
  93. print '<td><img src="../../icons/space.jpg" width="10" height="21" border="0">'
  94. print '<img src="../../icons/m.gif" width="9" height="21" border="0">'
  95. print 'ROOT</td>'
  96. print '</td>'
  97. print '</tr>'
  98. espace='<img src="../../icons/space.jpg" width="10" height="21" border="0">' 
  99. getprojet(espace,"1" )
  100. print '</table>'
  101. print '''
  102. </body>
  103. </html>
  104. '''


 
Moi je voudrais que toutes mes balise <img> contenues dans les <td> soit collés dans la source html .. :)


Message édité par protoinou le 31-07-2003 à 11:32:14
n°472999
Taz
bisounours-codeur
Posté le 31-07-2003 à 11:37:59  profilanswer
 

:heink:  et tu fais quoi des , + et autre "" %

n°473465
protoinou
Posté le 31-07-2003 à 16:07:33  profilanswer
 

Comment çà ?
 
?

n°473483
Taz
bisounours-codeur
Posté le 31-07-2003 à 16:12:45  profilanswer
 

j'ai rien compris à ton truc. montre le problème

n°473500
protoinou
Posté le 31-07-2003 à 16:21:53  profilanswer
 

Désolé TAZ je dois mal m'expliquer si tu veux j'ai mon script CGI que tu peux voir plus haut il génere du code HTML ....
 
A un moment il me sort un truc de  ce style :
 
<img src="../../icons/space.jpg" width="10" height="21" border="0">
<img src="../../icons/space.jpg" width="1" height="21" border="0">
 
Mais moi je veux que c'est 2 lignes ne fasse qu'une:
<img src="../../icons/space.jpg" width="10" height="21" border="0"><img src="../../icons/space.jpg" width="1" height="21" border="0">
 
Tu comprends???  
ALors le problème c'est que c'est 2 chaines sont écrites par 2 print différents, et que je ne peux pas les concatené, ou du moins je ne crois pas ...
Car quand je fais le second print, je ne sais pas quel print a été fait avant ..  
 
Est ce que tu comprends maintenant ou pas?
 
En fait je voudrais que quand je fasse un print, la chaine soit automatiquement mise à la suite de la dèrnière sortie (printé) sans aller à la ligne .
 :pt1cable:  :pt1cable:

n°473502
Taz
bisounours-codeur
Posté le 31-07-2003 à 16:23:32  profilanswer
 

et pourquoi tu concatenes pas ?

n°473513
protoinou
Posté le 31-07-2003 à 16:28:22  profilanswer
 

Bah parceque tout simplement je ne connais pas la chaine qui précède, mais remarque je suis tellementnul en python que c'est peut etre possible, la doc python que j'ai lu n'allait pas dans les gros détail la dessus ...
 
Tu peux faire un print +"triutrieuitureituer" , çà se fait çà ?

n°473517
Taz
bisounours-codeur
Posté le 31-07-2003 à 16:29:47  profilanswer
 

ecoute print, fonctionne
 
mais si tu veux pas, ben tu prépare tes chaines et affiche la somme...

mood
Publicité
Posté le 31-07-2003 à 16:29:47  profilanswer
 

n°473521
protoinou
Posté le 31-07-2003 à 16:31:57  profilanswer
 

Comment çà print fonctionne ?
 
Et préparer les chaines, si je te suis bien çà sous entend que je garde en mémoire à chaque fois la dèrnière chaine printé ?

n°473525
Taz
bisounours-codeur
Posté le 31-07-2003 à 16:33:58  profilanswer
 

[benoit@athlon tmp]$ cat print.py
print "hello",
print "world"
[benoit@athlon tmp]$ python print.py
hello world

n°473572
protoinou
Posté le 31-07-2003 à 17:02:35  profilanswer
 

Bah ouai ton truc il marche je ne comprends pas, ... avec un petit test.py çà marche bien, mais quand je lance le script que j'ai copier coller, çà ne le fait pas,...
 
Bon mais là vu l'exemple frappant que tu m'a donné, c'est forcé que c moi qui ai fait une erreur, enfin merci pour le print "",
 
C'est bon à savoiR...  
 
Chao ...

n°473588
protoinou
Posté le 31-07-2003 à 17:10:00  profilanswer
 

ouai bah non je ne pige pas ... çà marche pas , je vais passer en mode débuggage intensif là , çà va chier pour le print, merci pour tout benoit :)

n°473606
Taz
bisounours-codeur
Posté le 31-07-2003 à 17:21:04  profilanswer
 

pourquoi tu fais pas des + ou alors des
 
print '<img src=%s /><img src=% />' % ( 'dawa.png', 'truc.jpeg')

n°473610
protoinou
Posté le 31-07-2003 à 17:24:29  profilanswer
 

Euh bah là je ne vois par contre, je ne vois pas en quoi çà résoudrait mon problème ... :)
Le pb ce n'est pas de savoir quelles images mettre,  
 
...
...
...
 
Ah remarque si tu as peut etre raison çà peut peut etre m'aider , bon j'étudie çà  

n°473614
Taz
bisounours-codeur
Posté le 31-07-2003 à 17:25:33  profilanswer
 

de toutes façons, je comprends pas pourquoi tu prépares pas ta chaine tranquillement, et une fois que t'as tout dedans, pan, un print

n°473632
protoinou
Posté le 31-07-2003 à 17:35:52  profilanswer
 

Regarde mon script ... tu le vois? je l'ai copié plus haut ...
Bah maintenant regarde un des morceau qu'il me rend lors de son execution:
 
<tr>
<td>
<img src="../../icons/space.jpg" width="10" height="21" border="0">
<img src="../../icons/space.jpg" width="1" height="21" border="0"><img src="../../icons/t.gif" width="9" height="21" border="0"> <img src="../../icons/m.gif" width="9" height="21" border="0"> Projet1
</td>
</tr>
 
et bien moi je voudrais plutot:
 
<tr>
<td>
<img src="../../icons/space.jpg" width="10" height="21" border="0"><img src="../../icons/space.jpg" width="1" height="21" border="0"><img src="../../icons/t.gif" width="9" height="21" border="0"> <img src="../../icons/m.gif" width="9" height="21" border="0"> Projet1
</td>
</tr>
 
tu vois la nuance..  
 
Bah quand tu regarde mon script python avec les if, tu vois bien que je ne peux pas savoir qu'elle tag img, je vais mettre...  
Mais bon je ne suis pas très fort en python ...
 
Tu ferais comment toi*
 
 
Fais moi un exemple très con si tu as le temps du style ...
 
 
Print "prout"
 
if a:
    print "quand"
else:
    print "sans"
 
 
if c:
    print "pluie il y a"
else:
    print "les champs"
 
Bon moi en résultat je voudrais que çà phase une phrase sur une ligne et pas  
prout
quand/sans
pluie il y a/leschamps

n°473635
Taz
bisounours-codeur
Posté le 31-07-2003 à 17:38:31  profilanswer
 

et ben pourquoi tu concatènes pas les chaines? et en fin de compte, un print

n°473638
protoinou
Posté le 31-07-2003 à 17:40:13  profilanswer
 

Mais je pige pas ce que tu veux dire, tu veux dire, faire un print "<chaine de caractères>",   (en oubliant pas la virgule)
C'est çà que tu veux dire?
Parceque si c'est çà , et bien, j'ai éssayé, quand je lance un test tout con comme tu as fait çà marche, mais là çà ne marche pas ... :)???
Je ne sais pas pourkoi ...  

n°473640
Taz
bisounours-codeur
Posté le 31-07-2003 à 17:41:32  profilanswer
 

:pt1cable:  
 
[code]
a="truc"
 
if machin:
   a+="dawa"
else:
   a+="tamere"
 
print a

n°473646
protoinou
Posté le 31-07-2003 à 17:44:20  profilanswer
 

MMh ouai c'est un peu plus compliqué que de rajouter les virgules,  
Mais çà reste simple, j'y avait pas penser ...  
Merci  
 

n°473656
protoinou
Posté le 31-07-2003 à 17:50:22  profilanswer
 

Putain Taz je suis trop con.. je suis désolé d'avoir pris de ton temps j'ai trouvé mon erreur, en fait le coup des "", marchait très bien ,j'en avait rajouté partout , sauf à un moment ou je fais un print space... sauf que space c'était un <img ...> récupéré des paramètre de fonction, donc à chaque fois çà merdait, mais je n'avais pas vu ...
 
En tout cas merci bcp pour l'astuce du "",  
 
EUH /!\ : C'est dans quel doc que tu as vu çà , parceque la mieene a beau etre grosse y'a pas çà /...  
En tout cas merci beaucoup à toi d'avoir concacré ton temps pur m'aider  :hello:  :hello:

n°473660
Taz
bisounours-codeur
Posté le 31-07-2003 à 17:53:43  profilanswer
 

je sais pas, en tout cas c'est dans le précis&concis d'oreillyn dans Nutshell (en anglais) donc ça doit se trouver partout. print est un mot réservé donc, ça doit être bien documenté normalement

n°473673
protoinou
Posté le 31-07-2003 à 18:10:21  profilanswer
 

Ouai bah en fait là j'ai choppé une doc d'un pote en francais en plus et c'est dedans ... je change donc de doc. ..
 
D'ailleurs là j'ai lu tout ce qu'il y'avait à savoir sur lstrip() rstrip() mais fait un vi de çà et lance le:
a="true"
print '<img src="../../icons/space.jpg" width="1" height="21" border="0"><img src="../../icons/t.gif" width="9" height="21" border="0">',
if a=="true":
        print '<img src="../../icons/space.jpg" width="1" height="21" border="0"><img src="../../icons/t.gif" width="9" height="21" border="0">',
else:
        print '<img src="../../icons/space.jpg" width="1" height="21" border="0"><img src="../../icons/t.gif" width="9" height="21" border="0">',
 
 
tu va voir il y a un espace entre les <img> et çà c'est la mort pour moin, j'ai beau mettre des strip(), j'arrive pas à les enlever... est ce qu'il faut que je passe par un mode de liste ? OU je sais quoi ?  
 
Est ce que je peux faire une truc du style [:1] qque part ?
Qu'est ce que tu en penses ,

n°473675
Taz
bisounours-codeur
Posté le 31-07-2003 à 18:18:00  profilanswer
 

pas d'espace chez moi
 
<img src="../../icons/space.jpg" width="1" height="21" border="0"><img src="../../icons/t.gif" width="9" height="21" border="0">
 
 
au fait, les booléens existe en Python, True et False

n°473771
protoinou
Posté le 31-07-2003 à 21:36:29  profilanswer
 

Nop y'a pas d'espace toi tu as regardé les 2 premiers:
 
mais c'est normal car pour les deux premiers <img> on a:
print '<img src="../../icons/space.jpg" width="1" height="21" border="0"><img src="../../icons/t.gif" width="9" height="21" border="0">',  
 
 
Voilà ... mais regarde le résultat après y'a des espaces non ?

n°474215
protoinou
Posté le 01-08-2003 à 10:20:51  profilanswer
 

Taz tu n'es plus là ?
 :ange:

n°474220
Taz
bisounours-codeur
Posté le 01-08-2003 à 10:24:06  profilanswer
 

pas d'espaces. me dit pas que tu batailles encore?

n°474234
protoinou
Posté le 01-08-2003 à 10:46:56  profilanswer
 

Bah si mais toi aussi tu as forcément les éspaces ... regarde au milieu, tu as deux groupe de 2 tag <img>, et bein il y 'a un espace entre ces groupes ... regarde mieux STP et dis moi que toi aussi tu as ce put... d'éspace . :)

n°474244
Kristoph
Posté le 01-08-2003 à 10:52:08  profilanswer
 

ProToinou a écrit :

Bah si mais toi aussi tu as forcément les éspaces ... regarde au milieu, tu as deux groupe de 2 tag <img>, et bein il y 'a un espace entre ces groupes ... regarde mieux STP et dis moi que toi aussi tu as ce put... d'éspace . :)
 


 
On va mettre ça sous le coup d'un manque de café pour tous les 2. Il y a 2 endroits dans le code on l'ont fait des print pour les "<img>" et le premier intègre la virgule anti retour à la ligne mais pas le deuxième. ;)
 
PS : de plus, la virgule après le print enlève le retour à la ligne mais le remplace par un espace aussi.


Message édité par Kristoph le 01-08-2003 à 10:58:30
n°474298
protoinou
Posté le 01-08-2003 à 11:22:34  profilanswer
 

ouai kristoph et donc comment, est ce que tu fais pour enlever cet épsace ?
 ;)

n°474302
Taz
bisounours-codeur
Posté le 01-08-2003 à 11:24:57  profilanswer
 

mais POURQUOI (avec au choix: +, +=, string.join, %) tu veux pas faire par concaténation et ne faire qu'un seul print

n°474314
Kristoph
Posté le 01-08-2003 à 11:29:24  profilanswer
 

ProToinou a écrit :

ouai kristoph et donc comment, est ce que tu fais pour enlever cet épsace ?
 ;)  


 
Fais comme Taz te dis de faire, c'est de la méthode la plus simple même si ce n'est pas la plus efficace en terme de perfs.
 
Si tu te sens l'ame d'un optimisator de l'extrème, tu peux aussi essayer de remplacer tous tes print par des sys.stdout.write(chaine) mais ça risque de rendre le code pas très lisible.

n°474462
protoinou
Posté le 01-08-2003 à 14:15:12  profilanswer
 

Bah si sans doute que je peux faire çà , je vais voir, c'est juste que le code sera moins facilement maintenable après, mais bon je vais le commenter un minimum, çà devrait le faire
Je vais essayer de tout concaténer comme çà  

n°474496
Kristoph
Posté le 01-08-2003 à 14:37:14  profilanswer
 

Kristoph a écrit :


 
Fais comme Taz te dis de faire, c'est de la méthode la plus simple même si ce n'est pas la plus efficace en terme de perfs.
 
Si tu te sens l'ame d'un optimisator de l'extrème, tu peux aussi essayer de remplacer tous tes print par des sys.stdout.write(chaine) mais ça risque de rendre le code pas très lisible.


 
Je retire ce que j'ai dis pour les questions de perfs :

Citation :

16 Jun 2003
 
    Enough new things that I would like to make a release 1.1 soon. Top points: Psyco will now inline calls to short functions, almost cancelling the cost of creating small helpers like 'def f(x): return (x+1) & MASK'. And I have rewritten the string concatenation implementation, as the previous one was unexpectedly inefficient: now using 's=s+t' repeatedly to build a large string is at least as efficient as filling a cStringIO object (and more memory-conservative than using a large list of small strings and calling '"".join()' at the end).


 
Avec l'optimisateur psyco pour python, faire plein de "s=s+t" pour créer une chaine ne fait pratiquement pas perdre de performances alors c'est donc la méthode conseillée pour sa lisibilité.

mood
Publicité
Posté le   profilanswer
 


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Python

  [python]Question de saut de ligne

 

Sujets relatifs
communication client/serveur avec pythonSQL question à la con : i++
[python]importchanger la couleur du texte selon la ligne du tmemo , possible ?
[PHP] Session, question sur le passage de l'ID par URL[makefile] question pointues
Question methode c++ (algo)Swing: une chtite question sur le redimentionnement
Mettre dans une string le contenu d'un fichier texte qui est en ligne[HTML] Question sur TABLE
Plus de sujets relatifs à : [python]Question de saut de ligne


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR