Es gab eine Situation, in der ich eine Variable mit 1 oder 2 erhalten und 2 für 1 und 1 für 2 zurückgeben wollte.
Ich habe eine bequeme Methode zum Schreiben von 1 und 2 gelernt, die in einem solchen Fall verwendet werden kann. Machen Sie sich also eine Notiz.
Wie in den Kommentaren erwähnt, gab es eine einfachere Möglichkeit, es zu schreiben.
n = 1
print(3-n) # 2
m = 2
print(3-m) # 1
n = 0
print(1-n) # 1
m = 1
print(1-m) # 0
Wenn $ x $ entweder $ n $ oder $ n-1 $ ist
\begin{eqnarray}
f(x) &=& 2n-1-x\\&=&\left\{
\begin{array}{ll}
n & (x = n-1) \\
n-1 & (x =n)
\end{array}\right.
\end{eqnarray}
Offensichtlich ohne Beweis.
Also, ** Die Geschichte bisher ist genug, so dass Sie den Rest nicht lesen müssen. ** ** **
Ich werde den Originalartikel vorerst verlassen.
n = 1
print(n%2+1) # 2
m = 2
print(m%2+1) # 1
nur das.
Dies allein ist kein Artikel, also denken wir an andere Zahlen als Gehirnübung.
Erwägen Sie, 0s und 1s zu tauschen. Es gibt keine Handhabung mit Bool.
n = 1
print((n+1)%2) # 0
m = 0
print((m+1)%2) # 1
erledigt.
Ersetzen Sie auf die gleiche Weise 2 durch 3 und 3 durch 2.
n = 2
print((n+1)%2+2) # 3
m = 3
print((m+1)%2+2) # 2
Versuchen Sie, 3 durch 4 und 4 durch 3 zu ersetzen.
n = 3
print(n%2+3) # 4
m = 4
print(m%2+3) # 3
Die Berechnungsformel ändert sich abhängig davon, ob $ 2n $ und $ 2n-1 $ ausgetauscht werden oder $ 2n $ und $ 2n + 1 $ ausgetauscht werden.
Beim Tauschen von $ 2n $ und $ 2n-1 $
\begin{eqnarray}
f(x) &=&x \bmod 2 +2n-1 \\&=& \left\{
\begin{array}{ll}
2n & (x = 2n-1) \\
2n-1 & (x =2n)
\end{array}
\right.
\end{eqnarray}
Beim Tauschen von $ 2n $ und $ 2n + 1 $
\begin{eqnarray}
f(x) &=&(x+1) \bmod 2 +2n \\&=& \left\{
\begin{array}{ll}
2n & (x = 2n+1) \\
2n+1 & (x =2n)
\end{array}
\right.
\end{eqnarray}
~~ Ich denke beim Schreiben angemessen nach, daher gibt es möglicherweise eine effizientere Schreibweise. Es gab ~~ (oben im Artikel).
Verwenden Sie im Zweifelsfall die if-Anweisung.
Recommended Posts