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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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