En python, que signifie 2./float(width) ?

Bonjour,

Tout est dans le titre, devant la difficulté de Google de comprendre cette requête, je m’adresse à vous! Je ne comprends pas ce que signifie un nombre suivi d’un point suivi d’un slash en python…

Merci d’avance

Tel que ça se présente, je dirais que c’est l’équivalent C de ça :

int width = …;
2/(float) width

=> ça force une division en nombre flottant quand tu as un entier. Sinon, si tu fais ça, tu obtiendrais le résultat suivant : 2/100 => 0 au lieu de 0.02.

dac merci beaucoup!

Si on est toujours dans l’équivalent C

“2.” précise que ta constante est flottant double “2” serait entier donc 2./float(width) est un peu redondant … En général “double / int => double”

Petite aide pour la dépatouille en Python.

Pour float(x), l’explication est ici : docs.python.org…

Pour 2. c’est simple, sous un terminal il suffit d’essayer :

$python
>>>type(2)
>>>type(2.)

Ensuite, tu peux t’amuser à faire ces essais :

>>>2/3
>>>2./3
>>>2/float(3)

Enfin, pour répondre à acidbao au sujet de la redondance, essaye

>>>type("3")
>>>2./"3"
>>>2./float("3")

:stuck_out_tongue:
Edité le 23/03/2014 à 00:04


Edité le 07/07/2014 à 16:16

Hello,

Désolé du délais, je n’avais pas vu la mise à jour.

Pas de mal, je l’avais bien vu. Mais quand au choix des noms et de la possibilité que ce soit un String, ne pas oublier que Python est un langage dynamique. En d’autres termes, ce n’est pas parce que tu écrit une fonction calculate(width) que l’appel passera systématiquement un entier. Ça peut être un choix pour éviter de faire des casts à tout va. Je ne dis pas que c’est le choix qui a dût être fait dans ce cas-ci, j’en sais rien, une seule ligne comme ça sortie du contexte, ça se trouve tu a raison, c’est purement redondant. Mais l’aspect dynamique n’est pas à oublier.

YCL1, tu passe à un autre niveau là :wink: