2013-08-08 1 views
1

En langage C, la fonction scanf() renvoie le nombre de données lues dans les variables. Est-il possible d'obtenir le nombre de variables lues en utilisant la fonction input() en python? par exemple.Fonction python pour obtenir le nombre de valeurs lues à l'aide de la fonction input()

v = scanf("%d%d%d", &a, &b, &c); 

renvoie le nombre de lecture en utilisant la variable entière scanf() fonction. Si les trois valeurs de variables ne sont pas des entiers, la valeur sera inférieure à trois.

+0

duplication possible de [sscanf en Python] (http://stackoverflow.com/questions/2175080/sscanf-in-python) –

+0

Et peut-être d'intérêt: http : //code.activestate.com/recipes/502213/ –

+0

Comment 'scanf' fonctionnerait-il avec' "% d% d% d" 'sans espace pour délimiter les trois ints? Voulez-vous '"% d% d% d "'? –

Répondre

0

raw_input() lit exactement 1 ligne. Si vous voulez savoir ce qui était dans la ligne, vous pouvez faire les choses habituelles: appeler len, split, essayez de le convertir en un int, etc.

input() ne doit pas être utilisé; c'est équivalent à eval(raw_input()), et une entrée malformée ou malveillante peut faire des choses désagréables à votre programme si vous l'utilisez. Si vous voulez vraiment utiliser input(), vous pouvez inspecter la valeur qu'il retourne les moyens habituels.

+0

ou OP utilise python3 –

2

Vous devrez peut-être

len(raw_input().split()) 

Il ne vérifie pas les arguments pour être entiers à travers. Vous pouvez utiliser

numbers = map(int, raw_input().split()) 

pour transtyper les entiers. Vous obtiendrez une exception (ValueError) en cas de format incorrect

Questions connexes