#26 Le 27/01/2010, à 09:47
- jofab
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
Oh utiliser des ; dans python quel idée ?!!
ca faisait longtemps que je n'avais plus ecrit de code python... Merci de l'avoir souligné
Hors ligne
#27 Le 28/01/2010, à 00:36
- c_r_x
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
c'est une merveille ce python :
# -*- coding:Utf-8 -*-
n = input('Entrez le nombre de lignes du pyramide : ')
I= range(1,n+1)
K=" "
def espace(n,K):
if (n==0):
return K
else :
return espace(n-1, K) + " "
J="*"
for i in I:
print espace(n-i,K),J
J="*"+J+"*"
i=i+1
Avec C et C++ c'est un peu plus de lignes !
Dernière modification par c_r_x (Le 28/01/2010, à 00:48)
#28 Le 28/01/2010, à 01:13
- tshirtman
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
je suis fan de python, mais je suis pas persuadé que ce soit le meilleur exemple... je viens d'écrire ça en C...
#include <stdio.h>
int main(int argc, char* argv){
int n, i, j;
printf("Entrez le nombre de lignes de la pyramide : ");
scanf("%d", &n);
for (i=0; i<n; i++){
for(j=0; j<n-i+1; j++)
printf(" ");
for (j=0; j<2*i+1; j++)
printf("*");
printf("\n");
}
}
gaby@queen [~]./test2
Entrez le nombre de lignes de la pyramide : 6
*
***
*****
*******
*********
***********
gaby@queen [~]python test2.py
Entrez le nombre de lignes du pyramide : 6
*
***
*****
*******
*********
***********
gaby@queen [~]wc -l test2.*
13 test2.c
15 test2.py
Hors ligne
#29 Le 28/01/2010, à 04:01
- sputnick
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
En perl j'ai implementé ça à ma sauce, c'est pas optimum ( les algo matheux c'est pas mon fort ^^ )
#!/usr/bin/env perl
print 'Nombre de lignes a afficher en pyramide : ';
$v=<>; $cs = $v;
for (0..$v) {
$s = chr(040) x $cs; $e = chr(052) x $ce;
if ($_ == 0) {
$v++;
printf "%${v}s\n", "*";
}
else {
$_ == 1 ? next : printf "%5s\n", "$s$e*";
}
$cs--; $ce+=2;
}
De là, une version "obfuscated" en uni-ligne, attention, ça pique les yeux
perl -e 'print "Nombre de lignes a afficher en pyramide : ";$v=<>;$cs=$v;for(0..$v){$s=chr(040)x$cs;$e=chr(052)x$ce;if($_==0){$v++;printf"%${v}s\n","*";}else{$_==1?next:printf"%5s\n","$s$e*";}$cs--;$ce+=2;}
@tshirtman, merci pour ton code, je me suis largement inspiré de ton algo, je l'implémente en perl pour faire plus propre et concis que precedement :
print "Entrez le nombre de lignes de la pyramide : ";
( $n=<> ) --; # <-- j'ai improvisé ça et ca marche pour décrementer, faut du perl pour avoir cette souplesse :þ
for (0..$n) {
$v1 = $n-$_; print ' ' for (0..$v1);
$v2 = 2*$_; print '*' for (0..$v2);
print $/;
}
Et un petit dernier en bash pour la forme ^^
read -p "Nbre ? " n
for ((i=0; i<n; i++)); do
for ((j=0; j<$((n-i+1)); j++)); do echo -n ' '; done
for ((j=0; j<$((2*i+1)); j++)); do echo -n '*'; done
echo
done
~
Je ne cherche pas à connaître les réponses, je cherche à comprendre les questions. Confucius
https://sputnick.fr
Hors ligne
#30 Le 28/01/2010, à 05:30
- tshirtman
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
enfin bon, en python en fait c'est mieux
gaby@queen [~]./test3.py
Entrez le nombre de lignes de la pyramide :6
*
***
*****
*******
*********
***********
gaby@queen [~]cat test3.py
#!/usr/bin/env python
n = input("Entrez le nombre de lignes de la pyramide :")
for i in range(n):
print " "*(n-i+1)+"*"*(2*i+1)
Hors ligne
#31 Le 28/01/2010, à 09:22
- c_r_x
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
Bravo tshirtman, vous avez "shorté" le script. en 3 lignes
# -*- coding:Utf-8 -*-
n = input("Entrez le nombre de lignes de la pyramide :")
for i in range(n): print " "*(n-i+1)+"*"*(2*i+1)
@sputnick en perl ~180 caractères, en python ~80 caractères, ça pique les yeux
Dernière modification par c_r_x (Le 28/01/2010, à 10:35)
#32 Le 28/01/2010, à 09:46
- Le Farfadet Spatial
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
Salut à tous !
Un langage ne peut en aucune manière être jugé à l'aune du nombre de lignes avec lequel on produit du code. Faire du code illisible (et impossible à maintenir) c'est rigolo lorsque l'on code dans son coin, mais d'une part cela signifie que l'on sera incapable de revenir sur le code trois mois plus tard, d'autre part cela rend impossible toute collaboration.
De toute façon, il n'y a pas de plus meilleur langage du monde parfait pour tout et ta femme revient dans les deux jours. Chaque langage a ses qualités et ses défauts et, surtout, son domaine d'application. Il importe d'en être conscient pour choisir celui qui est le plus adapté au problème que l'on entend résoudre.
À bientôt.
Le Farfadet Spatial
Hors ligne
#33 Le 28/01/2010, à 09:52
- freaxmind
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
Je vous propose la version ruby 1 ligne:
n=ARGV[0].to_i;for i in 0..n do puts ' '*(n-i)+'*'*(1+2*i) end
~/tmp$ ruby pyramide.rb 5
*
***
*****
*******
*********
***********
Pour que cela soit plus claire
n = ARGV[0].to_i
for i in 0..n
puts ' '*(n-i)+'*'*(1+2*i)
end
Ce qui nous fait:
/tmp$ wc pyramide.rb
1 11 65 pyramide.rb
Mais je pense que tester le nombre de ligne n'est pas un argument. Il ne faut pas sacrifier la clarté pour ces détails.
Il y aurait eu plusieurs facon de faire en ruby, la encore j'ai privilégié celle qui me semblait la plus belle
Hors ligne
#34 Le 28/01/2010, à 10:52
- c_r_x
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
Ils permettent tous d'atteindre le sommet...
Gérard Swinnen :"Le langage dominant y est sans conteste C/C++. Ce langage s'impose comme une référence absolue, et tout informaticien sérieux doit s'y frotter tôt ou tard. Il est malheureusement très rébarbatif et compliqué, trop proche de la machine. Sa syntaxe est peu lisible et fort contraignante. La mise au point d'un gros logiciel écrit en C/C++ est longue et pénible. (Les mêmes remarques valent aussi dans une large mesure pour le langage Java).
#35 Le 28/01/2010, à 11:13
- Karl_le_rouge
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
Un des raisons pour laquelle je déconseille le Swinnen pour toute personne ayant atteint l'âge de majorité ===> beaucoup de raccourcis du même style [1], enseigne un style de programmation pas très pythonnique.
C'est un super bouquin pour initier un ado à la programmation mais pas pour apprendre Python.
[1] le langage C/C++ n'existe pas, ce sont deux langages différents. Un code C parfaitement valide n'est pas forcément valide en C++, et le sous-ensemble C du C++ est beaucoup plus robuste.
Hors ligne
#36 Le 28/01/2010, à 11:14
- tshirtman
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
@u Farfadet Spacial: je suis entièrement d'accords, à une nuance près, quand on ne lui sacrifie pas la lisibilité, un faible nombre de lignes participe à la clareté du code (je répète, quand on lui sacrifie pas la lisibilité ).
Enfin bon il faut être claire, la qualité du code dépends bien plus du programmeur que du language .
@Karl_Le_Rouge: le C/C++ est un pseudo language très répandus... c'est l'horreur qui consiste à coder en C dans un compilateur C++, en utilisant une partie des nouvelles syntaxes disponibles...
>_<
Sinon j'ai pas été fan du Swinnen non plus, c'est pas franchement ce "think like a computer scientist" que je voudrait voir plus répandus...
Dernière modification par tshirtman (Le 28/01/2010, à 11:18)
Hors ligne
#37 Le 28/01/2010, à 13:31
- dwan
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
Un des raisons pour laquelle je déconseille le Swinnen pour toute personne ayant atteint l'âge de majorité ===> beaucoup de raccourcis du même style [1], enseigne un style de programmation pas très pythonnique.
C'est un super bouquin pour initier un ado à la programmation mais pas pour apprendre Python.
[1] le langage C/C++ n'existe pas, ce sont deux langages différents. Un code C parfaitement valide n'est pas forcément valide en C++, et le sous-ensemble C du C++ est beaucoup plus robuste.
Bonjour
J'ai toujours ce pdf sous la main, c'est assez synthétique pour me permettre de reprendre facilement Python après une longue période sans coder.
Tu conseillerais quel ouvrage à la place, sachant que je suis majeur depuis bien longtemps ?
J'ai un peu de mal à coder objet pour le moment, mais je suis un codeur du dimanche...
Dernière modification par dwan (Le 28/01/2010, à 13:36)
Auto-hébergé !
HP dv6164ea
Hors ligne
#38 Le 28/01/2010, à 14:17
- Karl_le_rouge
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
Pour les ouvrages papiers:
1) ceux que j'ai toujours à portée de main ==> "Programmation Python" et "Expert Python Programming" de Tarek Ziadé. Le premier est une introduction au langage et permet d'acquérir des bases solides (exercices et conseils d'un développeur Python de première classe inclus). Le second est clairement destiné aux développeurs expérimentés
2) "Learning Python" et "Programming Python" aux éditions O'reilly, le premier est destiné aux débutants, le second aux plus avancés, ce sont des références
3) "Core Python" couvre Python 2.5 et la plupart des modules, ça aurait été un bon compromis au niveau budget si Pearson n'avait pas eu l'idée stupide de vendre la traduction en deux volumes.
4) "Programming in Python 3" de Mark Summerfield, excellente introduction à Python 3 (il a également écrit un bouquin sur PyQt4 avec une introduction sur le langage)
Pour la documentation sur le web
* Bytes of python : très bon ouvrage pour débuter, une traduction française est disponible
http://www.swaroopch.com/notes/Python
* Building Python Skills de S. Lott, un tutoriel avancé sur le langage, une bonne référence.
http://homepage.mac.com/s_lott/books/python.html
* How to Think Like a Computer Scientist qui a inspiré le swinnen mais qui est plus rigoureux (le public visé n'est pas le même)
http://www.greenteapress.com/thinkpython/
* Initiation Python de Xavier Dupré (également publié chez Ellipse)
http://www.xavierdupre.fr/mywiki/InitiationPython
Dernière modification par Karl_le_rouge (Le 28/01/2010, à 14:18)
Hors ligne
#39 Le 28/01/2010, à 15:01
- c_r_x
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
Une riche Biblio ^^^ qui rendra majeurs tous les ados.
Merci .
-----------------------
A part ça : En C, si on veut bien voir matriciellement les choses :
#include <stdio.h>
int main(int argc, char* argv){
int n, i, j;
printf("Entrez le nombre de lignes de la pyramide : ");
scanf("%d", &n);
for (i=1; i<n+1; i++){
for(j=1; j<n-i+1; j++)
printf(" ");
for( j=n-i+1;j<n+i; j++){
printf("*");
}
// for( j=n+i;j<2*n; j++){ /* on peut commenter ce bloc */
// printf("");
// }
printf("\n");
}
}
Dernière modification par c_r_x (Le 28/01/2010, à 21:46)
#40 Le 28/01/2010, à 15:59
- dwan
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
Merci, me voilà paré
Auto-hébergé !
HP dv6164ea
Hors ligne
#41 Le 29/01/2010, à 15:39
- LeCh@t
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
brainfuck powaaaa
OpenGL : l'avenir
90% of teens today would die if Facebook was completely destroyed. If you are one of the 10% that would be laughing, copy and paste this to your signature.
Hors ligne
#42 Le 05/02/2010, à 17:51
- c_r_x
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
je suis fan de python, mais je suis pas persuadé que ce soit le meilleur exemple... je viens d'écrire ça en C...
#include <stdio.h> int main(int argc, char* argv){ int n, i, j; printf("Entrez le nombre de lignes de la pyramide : "); scanf("%d", &n); for (i=0; i<n; i++){ for(j=0; j<n-i+1; j++) printf(" "); for (j=0; j<2*i+1; j++) printf("*"); printf("\n"); } }
@tshirtman : je voudrais savoir si chez vous, le terminal sous gvim :! marche avec scanf :code ci-dessus. en utilisant le pavé numérique du clavier.
voir http://forum.ubuntu-fr.org/viewtopic.php?id=367162
Merci d'avance
Dernière modification par c_r_x (Le 05/02/2010, à 18:09)
#43 Le 05/02/2010, à 18:07
- tshirtman
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
non en effet, et ça me fait une raison de plus pour ne pas toucher ce truc, et rester sous mon vim tout propre sans éruptions de boutons acnéeux juvénils...
Hors ligne
#44 Le 05/02/2010, à 18:14
- tshirtman
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
@freaxmind: python aussi a "more than one way to do it" c'est juste qu'il y a une seule BONNE façon de faire, et c'est bien sur la plus élégante...
des exemples d'implémentations de fact() qui me disent que j'ai encore beaucoup a apprendre...
http://gist.github.com/289467
Dernière modification par tshirtman (Le 05/02/2010, à 18:15)
Hors ligne
#45 Le 07/02/2010, à 22:16
- Kanor
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
Très bon ton lien tshirtman
Hors ligne
#46 Le 07/02/2010, à 22:22
- tshirtman
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
oui, y'as les bases mais je pense que quelques uns ne sont pas par défaut (ctrl-t par exemple) sinon j'aurais pas pris la peine de les définir dans mon vimrc ^^
edit: c_r_x a supprimé son post et kanor a posté pendant ce temps... /me est confus..
Dernière modification par tshirtman (Le 07/02/2010, à 22:25)
Hors ligne
#47 Le 07/02/2010, à 22:25
- Kanor
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
Je parlais de ce lien
http://gist.github.com/289467
j'ai l'impression qui manque un post
Sinon pour vim je suis tombé sur ce lien très bien fournie
http://rayninfo.co.uk/vimtips.html
Dernière modification par Kanor (Le 07/02/2010, à 22:26)
Hors ligne
#48 Le 07/02/2010, à 23:54
- Karl_le_rouge
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
L'absence de celle-ci me surprends
import operator as op
def fact(x):
return reduce(op.mul, xrange(1, x+1), 1)
Hors ligne
#49 Le 07/02/2010, à 23:56
- Shrat
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
@tshirtman : Vraiment génial ton lien. Merci! Je me suis un peu reconnu (honteusement il faut dire) dans le unix programmer. Le Enterprise est vraiment génial et tellement vrai.
Hors ligne
#50 Le 21/12/2014, à 16:48
- dva2tlse
Re : Pourquoi 3/4 des gens ici codent en C/C++/python ?
Bonjour et bon UP,
mon je fais partie du 1/10 000° de gens qui codent en fortran, ARF.
David
xubuntu 22.04 dans un PC assemblé
PS: Dis toto, pourquoi l'univers existe-t'il ?
Je vais y réfléchir avec Morphée et lui dès avant 22h55, donc ici, il faut se contacter auparavant.
Hors ligne