我有一个字符串:
i = '12345678901'
如果检查(使用python)字符串中最后一位数字之前是偶数还是奇数?
在上面的字符串中我希望函数返回或打印“偶数”。
我找到了一些例子,但它们都在C中,我不知道如何在Python中使用它
答案 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'
您还可以使用1
被True
语句解释为if
的事实(而0
为False
):
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 ""