Py学习  »  Python

如何在Python中遍历十进制数的元素

Mike • 3 年前 • 1543 次点击  

我想在Python中传递一个转换为十进制的整数。然后我需要检查十进制数中的每一个单位数是否为奇数或偶数。例如,如果整数是534(但也可以是任何整数),转换为十进制时仍然是534。现在,如果我试着遍历这个小数点来检查5是奇数还是偶数,那么3是奇数还是偶数,然后4是奇数还是偶数。如果所有数字都是偶数,则为真,否则为假。 当我尝试遍历十进制数时,我得到一个错误“decimal is not iterable” 无论如何,我创建了一个程序来实现这个目的,但我需要将十进制转换为字符串。由于要求使用十进制,所以我认为我的解决方案可能不符合要求。

提前谢谢

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/131172
 
1543 次点击  
文章 [ 1 ]  |  最新文章 3 年前
Derek
Reply   •   1 楼
Derek    4 年前

这并没有那么简单,但就我所能测试的而言,它似乎是有效的。

一个错误修复应该删除分数中多余的0。

它变得越来越混乱,但我必须假设会出现某些输入错误,并将其过滤掉。比如进入1。或1或1.1000,例如,


def find_Odd_Even(m):
    try:
        n = list(str( m ))
        if n.count(".") < 2:
            if n.count(".") == 0:
                n.extend([ ".", "0" ])
            elif n.index(".") == len(n) - 1:
                n.append("0")
            b = n.index(".")
            BB = "".join( n[ b+1: ] )
            while len(BB) > 1:
                k = BB.removesuffix("0")
                if k == BB:
                    break
                else:
                    BB = k
            AA = int("".join( n[ :b ] ))
            BB = int( BB )
            if AA&1 == 1 or BB&1 == 1:
                answer = f"{m} is an odd number"
            else:
                answer = f"{m} is an even number"
        else:
            answer = "Bad input"
    except Exception as err:
        answer = str(err)
    finally:
        return answer

while 1:
    m = input("Enter an decimal number: ")
    if m == "":
        break
    else:
        print(find_Odd_Even( m ))