python检查前一个数字之前是否为奇数

时间:2013-01-13 23:46:30

标签: python python-2.7

我有一个字符串:

i = '12345678901'

如果检查(使用python)字符串中最后一位数字之前是偶数还是奇数?

在上面的字符串中我希望函数返回或打印“偶数”。
我找到了一些例子,但它们都在C中,我不知道如何在Python中使用它

7 个答案:

答案 0 :(得分:3)

有(至少)两种方法:

方法1:

获取索引-2处的字符并对其进行处理并使用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除以得到第二个最后一个数字,然后用2点头判断它是偶数还是奇数

In [122]: i = 12345678901

In [123]: (i/10)%10
Out[123]: 0

In [124]: ((i/10)%10)%2
Out[124]: 0

答案 1 :(得分:2)

单行:

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

测试输入:

>>> i = '12345678901'
>>> f(i)
'even'
>>> i = '12345678931'
>>> f(i)
'odd'

答案 2 :(得分:1)

这很容易实现,你需要一点点切片,模数运算符(%)并且你已经完成了。

i = '12345678901'

second_last = i[-2]

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

输出:

Even

答案 3 :(得分:0)

i = '12345678901'
print int(i[-2]) % 2 == 1
# False

要打印偶数或奇数,你需要这样做:

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

您还可以使用1True语句解释为if的事实(而0False):

if int(i[2]) % 2:  #if int(i[-2]) % 2 returns 1
    print 'Odd'
else:
    print 'Even'

答案 4 :(得分:0)

第1步:获得倒数第二个数字:

last_digit = i[-2]

第2步:奇怪吗?

is_odd = last_digit in '13579'

答案 5 :(得分:0)

首先是获取一部分数据,请参阅Explain Python's slice notation以获得切片的详细说明。官方文档并不那么明显。

您可以使用负数从末尾切片。一旦你有切片,你需要检查它是否是一个数字,找到它的数字值,看看它是否均匀。

将编码留作读者的练习。

答案 6 :(得分:0)

(i % 10) & 1

如果是奇数则返回 1 ,如果是

则返回 0

代码 -

print "even" if not ((int(i) / 10) % 10) & 1 else ""