Bonjour,
Cela fait plusieurs fois que je change une expression de calcul qui ne marche pas tres bien et je finis par ne plus rien comprendre.
nombp = 1+int(int(nbsec)/50)
nbsec est une chaine de 4 caracteres composee exclusivement de caracteres ' ' '0' '1' '2' '3' '4' '5' '6''7' '8' '9'
Il n'y a pas de . ni de ,
Les chiffres sont toujours cales a droite, les blancs sont toujours devant les chiffres
Exemples pour nbsec:
1 2 3 4 5 6 7 8
| ' 8'
' 2'
' 0'
' 12'
' 80'
' 345'
' 204'
'1329' |
L'expression doit donner pour nombp la valeur
1 pour nbsec de '1' a '49'
2 pour nbsec de '50' a '99'
3 pour nbsec de '100' a '149'
etc..
Mais j'ai pour le moment le message d'erreur:
invalid literal for int() with base 10: ' '
J'ai regarde la lPython Library, je ne comprends pas les phrases mises en couleur:
int( [x[, radix]])
Convert a string or number to a plain integer.
If the argument is a string, it must contain a possibly signed decimal number representable as a Python integer, possibly embedded in whitespace.
The radix parameter gives the base for the conversion and may be any integer in the range [2, 36], or zero.
If radix is zero, the proper radix is guessed based on the contents of string; the interpretation is the same as for integer literals. If radix is specified and x is not a string, TypeError is raised. Otherwise, the argument may be a plain or long integer or a floating point number. Conversion of floating point numbers to integers truncates (towards zero). If the argument is outside the integer range a long object will be returned instead. If no arguments are given, returns 0.
Merci de votre aide
Partager