我有一个字符串:
i = '12345678901'
如何检查(使用python)字符串中最后一个数字之前的一个是偶数还是奇数?
在上面的字符串中,我希望函数返回或打印“偶数”。
我找到了一些示例,但它们是用 C 语言编写的,我不知道如何在 Python 中使用它
我有一个字符串:
i = '12345678901'
如何检查(使用python)字符串中最后一个数字之前的一个是偶数还是奇数?
在上面的字符串中,我希望函数返回或打印“偶数”。
我找到了一些示例,但它们是用 C 语言编写的,我不知道如何在 Python 中使用它
有(至少)两种方法可以做到这一点:
方法一:
获取索引 -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
方法二:
intify i
,然后除以 10 和 mod 除以 10 得到倒数第二个数字并点头 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
解释为的事实(并且is ):True
if
0
False
if int(i[2]) % 2: #if int(i[-2]) % 2 returns 1
print 'Odd'
else:
print 'Even'
第 1 步:获取倒数第二个数字:
last_digit = i[-2]
第2步:奇怪吗?
is_odd = last_digit in '13579'
这从获取数据切片开始,请参阅解释 Python 的切片表示法以获得切片的良好解释。官方文档不是那么明显。
您可以使用负数从末尾开始切片。一旦你有了切片,你需要检查它是否是一个数字,找到它的 nmeric 值,看看它是否是偶数。
编码留给读者作为练习。
(i % 10) & 1
如果奇数返回1,如果偶数返回0
代码 -
print "even" if not ((int(i) / 10) % 10) & 1 else ""