私は文字列を持っています:
i = '12345678901'
文字列の最後の桁の前の1桁が偶数か奇数かを(pythonで)チェックする方法は?
上記の文字列では、関数が「偶数」を返すか出力する必要があります。
いくつかの例を見つけましたが、それらは C で書かれており、Python での使用方法がわかりません
私は文字列を持っています:
i = '12345678901'
文字列の最後の桁の前の1桁が偶数か奇数かを(pythonで)チェックする方法は?
上記の文字列では、関数が「偶数」を返すか出力する必要があります。
いくつかの例を見つけましたが、それらは C で書かれており、Python での使用方法がわかりません
これを行うには (少なくとも) 2 つの方法があります。
方法 1:
インデックス -2 の文字を取得して intify し、モジュラスを 2 でチェックします
In [119]: i = '12345678901'
In [120]: int(i[-2])%2
Out[120]: 0
In [121]: int(i[-1])%2
Out[121]: 1
方法 2:
intify i
、10 で割り、10 で mod して下から 2 番目の桁を取得し、2 でうなずいて、それが偶数か奇数かを判断します
In [122]: i = 12345678901
In [123]: (i/10)%10
Out[123]: 0
In [124]: ((i/10)%10)%2
Out[124]: 0
ワンライナー:
f = lambda s: 'odd' if int(s[-2]) % 2 else 'even'
入力でテスト:
>>> i = '12345678901'
>>> f(i)
'even'
>>> i = '12345678931'
>>> f(i)
'odd'
これは非常に簡単に実現できます。ほんの少しのスライス、モジュラス演算子(%
)が必要で、これで完了です。
i = '12345678901'
second_last = i[-2]
if int(second_last) % 2 == 0:
print("Even")
else:
print("Odd")
出力:
Even
i = '12345678901'
print int(i[-2]) % 2 == 1
# False
偶数または奇数を印刷するには、次のようにする必要があります。
if int(i[-2]) % 2 == 0:
print 'Even'
else:
print 'Odd'
ステートメントによって1
解釈される(そしてである)という事実を使用することもできます。True
if
0
False
if int(i[2]) % 2: #if int(i[-2]) % 2 returns 1
print 'Odd'
else:
print 'Even'
ステップ1:最後から2番目の桁を取得します。
last_digit = i[-2]
ステップ2:それは奇妙ですか?
is_odd = last_digit in '13579'
これは、データのスライスを取得することから始まります。スライスの適切な説明については、 Pythonのスライス表記の説明を参照してください。公式ドキュメントはそれほど明白ではありません。
負の数を使用して、最後からスライスできます。スライスを取得したら、それが数字であるかどうかを確認し、その数値を見つけて、それが偶数であるかどうかを確認する必要があります。
コーディングは読者の練習問題として残されています。