0

私は文字列を持っています:

i = '12345678901'

文字列の最後の桁の前の1桁が偶数か奇数かを(pythonで)チェックする方法は?

上記の文字列では、関数が「偶数」を返すか出力する必要があります。
いくつかの例を見つけましたが、それらは C で書かれており、Python での使用方法がわかりません

4

7 に答える 7

3

これを行うには (少なくとも) 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
于 2013-01-13T23:52:53.077 に答える
2

ワンライナー:

f = lambda s: 'odd' if int(s[-2]) % 2 else 'even'

入力でテスト:

>>> i = '12345678901'
>>> f(i)
'even'
>>> i = '12345678931'
>>> f(i)
'odd'
于 2013-01-14T00:06:58.313 に答える
1

これは非常に簡単に実現できます。ほんの少しのスライス、モジュラス演算子(%)が必要で、これで完了です。

i = '12345678901'

second_last = i[-2]

if int(second_last) % 2 == 0:
    print("Even")
else:
    print("Odd")

出力:

Even
于 2013-01-13T23:53:05.197 に答える
0
i = '12345678901'
print int(i[-2]) % 2 == 1
# False

偶数または奇数を印刷するには、次のようにする必要があります。

if int(i[-2]) % 2 == 0:
    print 'Even'
else:
    print 'Odd'

ステートメントによって1解釈される(そしてである)という事実を使用することもできます。Trueif0False

if int(i[2]) % 2:  #if int(i[-2]) % 2 returns 1
    print 'Odd'
else:
    print 'Even'
于 2013-01-13T23:53:07.960 に答える
0

ステップ1:最後から2番目の桁を取得します。

last_digit = i[-2]

ステップ2:それは奇妙ですか?

is_odd = last_digit in '13579'
于 2013-01-13T23:53:25.320 に答える
0

これは、データのスライスを取得することから始まります。スライスの適切な説明については、 Pythonのスライス表記の説明を参照してください。公式ドキュメントはそれほど明白ではありません。

負の数を使用して、最後からスライスできます。スライスを取得したら、それが数字であるかどうかを確認し、その数値を見つけて、それが偶数であるかどうかを確認する必要があります。

コーディングは読者の練習問題として残されています。

于 2013-01-13T23:54:01.067 に答える