Posté le 28/10/2017 à 01:11 Membre depuis le 10/06/2001, 45144 messages
Même le batch propose un for embarrassed (un autre embarrassed)
Posté le 28/10/2017 à 01:22 Membre depuis le 11/07/2003, 54848 messages
Arvi89 (./3239) :
pas de for($i=0;$i<$var;$i++)

Doublement impossible.
Quel serait l’intérêt de proposer deux syntaxes différentes pour faire la même chose ? Le for sert déjà à parcourir un itérable (for i in range(var) ), et Python déconseille très fortement d’avoir deux syntaxes différentes pour la même chose.
Et en pratique, on fait très peu de for i in range(var), ce qui diminue encore l’intérêt de la syntaxe que tu proposes.

Petite statistique personnelle : sur 113 000 utilisations de for (pas que mon code), il y a à peine 6% de "for i in range(var)" correspondant au "for (i=0, i < var; i++)".
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant
Posté le 28/10/2017 à 01:43 Membre depuis le 14/03/2003, 8921 messages
Quoi ?
Bah ils n'avaient qu'à faire une itération avec une autre syntaxe, comme foreach par exemple...

Encore une fois, cite moi un seul autre langage où il n'y a pas de for (comme en C) ou de i++, pour moi c'est juste du bs pour vouloir se démarquer sans vraie raison.
Posté le 28/10/2017 à 01:50 Membre depuis le 11/07/2003, 54848 messages
Mais quel serait l’intérêt d’ajouter une syntaxe qui fait doublon avec une syntaxe plus générique, pour une structure qui ne sert quasiment jamais dans la vraie vie (et ta syntaxe servirait d’autant moins qu’elle serait un doublon) et qui violerait les principes de base de Python ?

Le for de Python est bien plus utile, ce n’est pas juste pour se démarquer qu’il a été conçu ainsi…
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant
Posté le 28/10/2017 à 01:58 Membre depuis le 14/03/2003, 8921 messages
Mm, peut-être je comprend mal alors.

J'utilise régulièrement en php des for à la place de foreach parce que j'en ai besoin.

Ce que je veux dire, c'est pourquoi en python, il n'ont pas fait un for et un foreach, où le for est comme dans beaucoup de langages (variables; condition; ce qui se passe à chaque loop, pas forcément i++), et le foreach incrémente à chaque fois la clé du tableau.

En quoi ça aurait posé un problème ? (tout comme le i++)
Posté le 28/10/2017 à 03:21 Membre depuis le 10/06/2001, 40289 messages
Malheureusement, Python suit le dogme "il n'y a qu'une seule manière [de faire une opération donnée]", ce qui est utilisé comme argument bancal pour écraser presque tout sucre syntaxique. (Je dis "presque" parce qu'il y a bien du sucre syntaxique aussi en Python quand les concepteurs ont retenu ça la manière "la plus propre" et, du coup, découragent la notation basique équivalente. Du coup, la maxime n'est même pas suivie de manière cohérente.)
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Posté le 28/10/2017 à 06:27 Membre depuis le 10/06/2001, 8848 messages
Arvi89 (./3242) :
Encore une fois, cite moi un seul autre langage où il n'y a pas de for (comme en C) ou de i++, pour moi c'est juste du bs pour vouloir se démarquer sans vraie raison.
C'est aussi le cas de Rust par exemple. Personnellement, ça ne me manque pas.

Kevin Kofler (./3245) :
Malheureusement, Python suit le dogme "il n'y a qu'une seule manière [de faire une opération donnée]", ce qui est utilisé comme argument bancal pour écraser presque tout sucre syntaxique.
Ce qui a quand même ses avantages. A l’opposé se cette philosophie, il y a Perl qui est infâme à cause de l'abus de sucre syntaxique.
avatar
Posté le 28/10/2017 à 09:55 Membre depuis le 11/07/2003, 54848 messages
Arvi89 (./3244) :
Ce que je veux dire, c'est pourquoi en python, il n'ont pas fait un for et un foreach, où le for est comme dans beaucoup de langages (variables; condition; ce qui se passe à chaque loop, pas forcément i++), et le foreach incrémente à chaque fois la clé du tableau.
* parce que cette structure n'est jamais utilisée en Python (je tombe sur 5% d'utilisation, et je suis surpris que ça soit aussi élevé)
* parce que ça contredit les principes de Python
* parce que ça fait doublon
* parce que KK le ferait, ce qui montre bien que c'est absurde

Quand tu fais un
for($i = 0; $i < $var; $i++) {
  $x = $tableau[$i];
  echo $x;
}
la traduction en Python n'est pas
for i in range(len(tableau)):
    x = tableau[i]
    print(x)
mais
for x in tableau:
    print(x)
=> code plus clair, plus concis, plus rapide

Quand tu fais un
for($i = 0; $i < $var; $i++) {
  $tableau[$i] = func($autre_tableau[$i]);
}
la traduction en Python n'est pas
for i in range(len(autre_tableau)):
    tableau[i] = func(autre_tableau[i])
mais
tableau = [func(x) for x in autre_tableau]




En quoi ça aurait posé un problème ? (tout comme le i++)
* parce que cette structure n'est jamais utilisée en Python
* parce que ça contredit les principes de Python (il y a déjà le += 1)
* parce que ça fait doublon
* parce que contrairement au += qui est utilisable avec n'importe quel type, le ++ n'a de sens que pour les entiers
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant
Posté le 28/10/2017 à 10:59 Membre depuis le 13/06/2002, 42700 messages
flanker (./3247) :
mais

tableau = [func(x) for x in autre_tableau]
Ou bien tableau = map(func, autre_tableau), puisqu'il n'y a qu'une seule façon d'écrire la même chose grin
avatarAll right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)
Posté le 28/10/2017 à 14:35 Membre depuis le 27/04/2006, 60503 messages
(rôh ce coup bas grin)
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo
Posté le 28/10/2017 à 15:07 Membre depuis le 10/06/2001, 40289 messages
flanker (./3247) :
* parce que KK le ferait, ce qui montre bien que c'est absurde
vtff
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Posté le 28/10/2017 à 15:09 Membre depuis le 10/06/2001, 40289 messages
flanker (./3247) :
tableau = [func(x) for x in autre_tableau]
Voilà exactement le genre de syntaxe obscure dont je parlais quand je disais:
Kevin Kofler (./3245) :
Je dis "presque" parce qu'il y a bien du sucre syntaxique aussi en Python quand les concepteurs ont retenu ça la manière "la plus propre" et, du coup, découragent la notation basique équivalente. Du coup, la maxime n'est même pas suivie de manière cohérente.
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Posté le 28/10/2017 à 15:13Edité par Kevin Kofler le 28/10/2017 à 16:48 Membre depuis le 10/06/2001, 40289 messages
flanker (./3247) :
* parce que contrairement au += qui est utilisable avec n'importe quel type, le ++ n'a de sens que pour les entiers
[kevin@desktop64 ~]$ cat dblincrtest.c
#include <stdio.h>

int main(void)
{
  double x;
  for (x = 0.; x < 10.; x++) {
    printf("%lf\n", x);
  }

  return 0;
}
[kevin@desktop64 ~]$ gcc -std=c11 -pedantic-errors -Wall -Wextra -Wwrite-strings -Os -fomit-frame-pointer -s dblincrtest.c -o dblincrtest
[kevin@desktop64 ~]$ ./dblincrtest
0.000000
1.000000
2.000000
3.000000
4.000000
5.000000
6.000000
7.000000
8.000000
9.000000
(J'ai rajouté -std=c11 -pedantic-errors pour montrer que c'est bien conforme au standard actuel. Ça compile et fonctionne évidemment aussi sans ces flags ou en -std=c99. -std=c90 ne connaît pas %lf.)

[EDIT: faute d'accord corrigée]
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Posté le 28/10/2017 à 15:27 Membre depuis le 27/04/2006, 60503 messages
Ça reste conceptuellement une mauvaise idée d'utiliser ça avec des flottants, même si ça fonctionne tant que les nombres sont suffisamment petits.
avatarZeroblog

« Tout homme porte sur l'épaule gauche un singe et, sur l'épaule droite, un perroquet. » — Jean Cocteau
« Moi je cherche plus de logique non plus. C'est surement pour cela que j'apprécie les Ataris, ils sont aussi logiques que moi ! » — GT Turbo
Posté le 28/10/2017 à 16:54 Membre depuis le 11/07/2003, 54848 messages
Kevin Kofler (./3252) :
flanker (./3247) :
* parce que contrairement au += qui est utilisable avec n'importe quel type, le ++ n'a de sens que pour les entiers
Oui, ça a aussi du sens avec les flottants, mais le problème reste toujours là pour les autres types : string, listes, dictionnaires, n'importe quelle autre classe.

+= peut avoir du sens pour n'importe quelle classe (à condition qu'elle définisse cette opération, bien sûr), alors que ++ n'a de sens que pour les classes qui définissent l'opération "x = x + 1". Ça limite quand même vachement son intérêt...


Zeph (./3248) :
Ou bien tableau = map(func, autre_tableau), puisqu'il n'y a qu'une seule façon d'écrire la même chose grin
C'est petit, ça grin (mais clairement, c'est une incohérence qui vient essentiellement du fait que les listes définies en intension sont arrivées tardivement dans Python)
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant
Posté le 28/10/2017 à 17:03 Membre depuis le 10/06/2001, 40289 messages
flanker (./3254) :
Oui, ça a aussi du sens avec les flottants, mais le problème reste toujours là pour les autres types : string, listes, dictionnaires, n'importe quelle autre classe.
++ a aussi un sens pour les itérateurs. tongue
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Posté le 28/10/2017 à 17:18 Membre depuis le 30/06/2001, 71465 messages
Zeph (./3248) :
flanker (./3247) :
mais

tableau = [func(x) for x in autre_tableau]
Ou bien tableau = map(func, autre_tableau), puisqu'il n'y a qu'une seule façon d'écrire la même chose grin

Les deux codes ne font pas la meme chose:

>>> a = [0,1,2,3,4,5,6]
>>> def func(x):
...   return x*2
>>> aa = [func(x) for x in a]
>>> aaa = map(func, a)
>>> aa
[0, 2, 4, 6, 8, 10, 12]
>>> aaa
<map object at 0x02BFE2B0>
>>> type(aa)
<class 'list'>
>>> type(aaa)
<class 'map'>
avatarProud to be CAKE©®™
The cake is a lie! - Love your weighted companion cube

->986-Studio's Wonder Project!<-
yN a cassé ma signature :o
Posté le 28/10/2017 à 17:35 Membre depuis le 11/07/2003, 54848 messages
(oui, je voulais le préciser : le comportement a changé avec Python 3, map renvoie maintenant un générateur et non une liste)
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant
Posté le 28/10/2017 à 17:36 Membre depuis le 11/07/2003, 54848 messages
Kevin Kofler (./3255) :
flanker (./3254) :
Oui, ça a aussi du sens avec les flottants, mais le problème reste toujours là pour les autres types : string, listes, dictionnaires, n'importe quelle autre classe.
++ a aussi un sens pour les itérateurs. tongue
On en revient toujours au même point : c'est une syntaxe inutile en Python, donc hehe
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant
Posté le 28/10/2017 à 18:34 Membre depuis le 13/06/2002, 42700 messages
./3257 : même remarque avec des () au lieu des [] alors embarrassed
avatarAll right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)
Posté le 28/10/2017 à 19:11 Membre depuis le 10/06/2001, 40289 messages
list(map(func, a)) pour réaliser la liste alors.
avatarMes news pour calculatrices TI: Ti-Gen (fr/en), MobiFiles (de)
Mes projets PC pour calculatrices TI: TIGCC, CalcForge (CalcForgeLP, Emu-TIGCC)
Mes chans IRC: #tigcc et #inspired sur irc.freequest.net (UTF-8)

Liberté, Égalité, Fraternité
Posté le 28/10/2017 à 19:16 Membre depuis le 11/07/2003, 54848 messages
Zeph (./3259) :
./3257 : même remarque avec des () au lieu des [] alors embarrassed
!slap Zeph

embarrassed
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant
Posté le 28/10/2017 à 20:43 Membre depuis le 13/06/2002, 42700 messages
(nan mais en vrai je ne connais pas un seul langage sérieux qui n'a pas accumulé des défauts de jeunesse, et Python s'en tire plutôt pas mal ^^)
avatarAll right. Keep doing whatever it is you think you're doing.
------------------------------------------
Besoin d'aide sur le site ? Essayez par ici :)
Posté le 28/10/2017 à 20:44 Membre depuis le 13/06/2001, 73069 messages
Si, moi ! Le PHP !


(hem, pardon :3)
avatar
Posté le 28/10/2017 à 22:38 Membre depuis le 10/09/2002, 10938 messages
citrouille
avatarpedrolane stoppe la chute des chevaux

La DNC-Team : un club plein de mystères
Posté le 28/10/2017 à 22:39 Membre depuis le 11/07/2003, 54848 messages
ici aussi ? citrouille
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant
Posté le 28/10/2017 à 22:42 Membre depuis le 10/09/2002, 10938 messages
et pourquoi pas ?

citrouille
avatarpedrolane stoppe la chute des chevaux

La DNC-Team : un club plein de mystères
Posté le 28/10/2017 à 22:45 Membre depuis le 11/07/2003, 54848 messages
C'est mal ! citrouille
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant
Posté le 28/10/2017 à 22:52 Membre depuis le 13/06/2001, 73069 messages
En même temps, les règles sont floues (on risque toujours une bombe ?) citrouille
avatar
Posté le 28/10/2017 à 23:29 Membre depuis le 10/09/2002, 10938 messages
il n'y a plus de flood control visible en tous cas citrouille
avatarpedrolane stoppe la chute des chevaux

La DNC-Team : un club plein de mystères
Posté le 29/10/2017 à 10:30 Membre depuis le 11/07/2003, 54848 messages
Zeph (./3262) :
(nan mais en vrai je ne connais pas un seul langage sérieux qui n'a pas accumulé des défauts de jeunesse, et Python s'en tire plutôt pas mal ^^)
C'est gentil de me rassurer grin

Python 3 a fait beaucoup de bien à ce niveau-là (même si la transition a été longue), maintenant ça fait mal de devoir refaire du Python 2 (ne serait-ce que la gestion catastrophique des string).

citrouille
avatar<<< Kernel Extremis©®™ >>> et Inventeur de la différence administratif/judiciaire ! (©Yoshi Noir)

<Vertyos> un poil plus mais elle suce bien quand même la mienne ^^
<Sabrina`> tinkiete flan c juste qu'ils sont jaloux que je te trouve aussi appétissant