Quel est le résultat de % en Python?
Ce qui ne l' %
dans un calcul? Je n'arrive pas à travailler sur ce qu'il fait.
T-il un pour cent du calcul par exemple: 4 % 2
, apparemment, est égal à 0. Comment?
Vous devez vous connecter pour publier un commentaire.
Prises de http://docs.python.org/reference/expressions.html
Exemple 1:
6%2
évalue à0
car il n'y a pas de reste si 6 est divisé par 2 ( 3 fois ).Exemple 2:
7%2
évalue à1
parce qu'il y a un reste de1
quand 7 est divisé par 2 ( 3 fois ).Donc, pour résumer, il renvoie le reste d'une opération de division, ou
0
si il n'y a pas de reste. Donc6%2
signifie trouver le reste de 6 divisé par 2.- 21 % 4
est 3 en Python.recursive substraction
chose est fondamentalement la définition de la division :x/y
signifiehow much time can you fit y in x ?
ou, en d'autres termes,how much time can you subtract y to x without falling below 0
...Un peu hors sujet, la
%
est également utilisé dans la chaîne de formatage comme%=
à des valeurs de substitution en chaîne de caractères:De nouveau, hors sujet, mais il semble être un peu documenté fonctionnalité qui m'a pris un certain temps à traquer, et je pensais que c'était lié à des Pythons modulo calcul pour qui cette SORTE de page très bien classée.
%
opérateur a été choisi parce qu'il reflète le pourcentage de spécificateurs utilisé au sein de la chaîne elle-même.Une expression comme
x % y
évalue pour le reste dex ÷ y
. L'ordre de préséance est le même que les opérateurs/
(de la division) et*
(multiplication).Python gotcha: en fonction de la version de Python que vous utilisez,
%
est aussi l' (obsolète) de la chaîne d'interpolation de l'opérateur, donc attention si vous venez d'un langage de type automatique de moulage (comme PHP ou JS) où une expression comme'12' % 2 + 3
est juridique: en Python il en résulteraTypeError: not all arguments converted during string formatting
qui pourrait être assez déroutant pour vous.[mise à jour pour Python 3]
Utilisateur n00p commentaires:
Pour être précis, la division entière utilisée par défaut de Python 2 (vous l'esprit, cette réponse est plus vieux que mon garçon qui est déjà à l'école):
En Python 3 maintenant
9 /2
résultats4.5
en effet, mais gardez à l'esprit la réponse originale à cette question est très ancienne.Le module d'élasticité est une opération mathématique, que l'on décrit parfois comme "l'horloge de l'arithmétique." Je trouve que le décrivant comme simplement un reste est trompeuse et source de confusion, car il masque la vraie raison, il est utilisé tant dans l'informatique. Il est vraiment utilisé pour envelopper autour de cycles.
Penser à une horloge: Supposons que vous regardez une horloge dans "militaire", où la gamme de temps de 0:00 - 23h59. Maintenant, si vous voulais que quelque chose arrive tous les jours à minuit, vous souhaitez l'heure actuelle mod 24 à zéro:
si (heure % 24 == 0):
Vous pouvez penser à toutes les heures de l'histoire s'enroulant autour d'un cercle de 24 heures et l'heure de la journée, c'est que l'infini le nombre de temps de mod 24. Elle est beaucoup plus profonde de la notion de juste un reste, c'est un moyen mathématique de traiter avec des cycles et il est très important en informatique. Il est également utilisé pour envelopper autour de tableaux, vous permettant d'augmenter l'indice et d'utiliser le module pour l'envelopper de revenir au début après avoir atteint la fin du tableau.
a % b = a - b * floor(a/b)
Python - Opérateurs De Base
http://www.tutorialspoint.com/python/python_basic_operators.htm
a = 10 et b = 20
b % a = 0
Dans la plupart des langues % est utilisé pour module. Python n'est pas une exception.
% Opérateur Modulo peut également être utilisé pour l'impression des chaînes de caractères (comme en C), tel que défini sur Google https://developers.google.com/edu/python/strings.
Cela semble un peu hors sujet, mais Il va certainement aider quelqu'un.
Aussi, il est utile de fonction intégrée appelée
divmod
:x % y
calcule le reste de la divisionx
divisé pary
où le quotient est un nombre entier. Le reste est le signe dey
.Sur Python 3 le calcul des rendements
6.75
; c'est parce que le/
ne une vraie division, pas de division entière comme (par défaut) sur Python 2. Sur Python 21 /4
donne 0, le résultat est arrondi vers le bas.La division entière peut être fait sur Python 3, avec
//
opérateur, donc pour obtenir la 7 comme un résultat, vous pouvez exécuter la commande:Aussi, vous pouvez obtenir le Python style de la division sur Python 2, par le simple ajout de la ligne
comme la première ligne de code source dans chaque fichier source.
#
est pour les commentaires et//
est un opérateur.Module opérateur, il est utilisé pour le reste de la division sur les nombres entiers, en général, mais en Python peut être utilisé pour les nombres en virgule flottante.
http://docs.python.org/reference/expressions.html
C'est un modulo, sauf quand c'est un bon vieux C-style de mise en forme de chaîne de l'opérateur, pas un modulo. Voir ici pour plus de détails. Vous verrez beaucoup de cela dans le code existant.
Être conscient que
même avec les supports résultats de 6,75 au lieu de 7, si calculée en Python 3.4.
Et le '/' opérateur n'est pas facile à comprendre, trop (python2.7): essayez...
C'est un peu hors-sujet ici, mais devraient être considérés lors de l'évaluation de l'expression ci-dessus 🙂
(1)+(0)-(0.25)+(6)
.Il est, comme dans beaucoup de C-comme les langues, le reste ou modulo. Voir la documentation pour les types numériques — int, float, long, complexe.
Module - Divise la gauche opérande par la main droite opérande et renvoie le reste.
Si cela aide:
... et ainsi de suite.
C'était dur pour moi de facilement trouver des cas d'utilisation spécifiques pour l'utilisation de % en ligne ,par exemple, pourquoi ne faire des fractions de module de division ou de négatif le module de la division de résultat dans la réponse qu'il fait. Espérons que cela aide à clarifier des questions de ce genre:
Module Division En Général:
Module division retourne le reste de la mathématique, de la division de l'opération. Il est fait comme suit:
Dire que nous avons un dividende de 5 et diviseur de 2, la suite de la division de l'opération serait (équivaut à x):
La première étape dans le module de calcul est de mener la division entière:
x_int = 5 //2 ( division entière en python utilise une double barre oblique)
x_int = 2
Prochain, la sortie de x_int est multiplié par le diviseur:
x_mult = x_int * diviseur
x_mult = 4
Enfin, le dividende est soustraite de la x_mult
dividende - x_mult = 1
L'opération modulo ,par conséquent, renvoie 1:
5 % 2 = 1
Application pour appliquer le module à une fraction
Le calcul du module lorsqu'il est appliqué à une fraction est la même que ci-dessus; toutefois, il est important de noter que la division entière produira une valeur de zéro, lorsque le diviseur est plus grand que le dividende:
La division entière résultats à 0 alors que l'; par conséquent, lors de l'étape 3 ci-dessus est effectuée, la valeur du dividende est réalisée à travers (soustraite à partir de zéro):
Application pour appliquer le module négatif
Étage de la division se produit dans laquelle la valeur de la division entière est arrondi à la plus faible valeur entière:
Par conséquent, lorsque vous ne l'entier de la division, vous pouvez obtenir un autre résultat que vous attendez!
Appliquant les étapes ci-dessus sur le dividende et le diviseur de l'illustre le module concept:
Étape 1: Appliquer division entière
Étape 2: Multipliez le résultat de la division entière par le diviseur
Étape 3: Soustraire le dividende de l'multiplié variable, de l'avis de la double négation.
Donc:
L' % (modulo) opérateur donne le reste de la division du premier argument par le second. Les arguments numériques sont d'abord convertis en un type commun.
Ceci est basé sur la priorité de l'opérateur.
%
est modulo.3 % 2 = 1
,4 % 2 = 0
/
est (un entier dans ce cas) de la division, de sorte que:C'est un modulo
http://en.wikipedia.org/wiki/Modulo_operation
http://docs.python.org/reference/expressions.html
Donc, avec l'ordre des opérations, qui fonctionne à
(3+2+1-5) + (4%2) - (1/4) + 6
(1) + (0) - (0) + 6
7
Le 1/4=0 parce que nous faisons de math entier ici.