2017-10-13 22 views
-2

我的一个模块需要我采取以前输入的整数,并找到平均值,赔率和零。但是我的代码给了我一些有缺陷的结果。有一点帮助,将不胜感激如何采取以前输入的整数,并找到一个数字中的赔率平稳和零

def oez(num): 
     s = 0 
     count_odd = int (0) 
     count_even = int (0) 
     count_zero= int (0) 
     while (num > 0): 
      r = num % 10 
      s= s+r 
      num = num //10 
      if num % 2 == 0: 
       count_even=+1 
      elif num % 10 == 0: 
       count_zero=+1 
      else: 
       count_odd=+ 1 
     print("Number of even numbers :",count_even) 
     print("Number of odd numbers :",count_odd) 
     print("Number of Zeroes:", count_zero) 
+1

它给你不想要的结果是什么?你期待什么结果? – ifconfig

+0

如果我要输入11它说我有1奇数和1零并且没有平铺 –

+0

什么是菜单的一部分?你得到了什么?你想得到什么? – ifconfig

回答

1

因为IM的感觉邪恶今天上午在这里是一个很酷的解决方案(目标数是551240

odd,even,zed = map(len,map(''.join,zip(*re.findall("([13579])|([2468])|(0)","551240")))) 
print(odd,even,zed) 
粗的

更理智的解决办法可能只是为了检查各数字

odd=even=zed=0 
for digit in "551240": 
    if digit in "2468": even += 1 
    elif digit in "13579": odd += 1 
    elif digit == "0": zed += 1 
+0

它的效果很好。但是,如何让它适用于之前输入的整数 –

0
def oez(num): 
     count_odd = 0 
     count_even = 0 
     count_zero = 0 
     for letter in str(num): # Cast the input as a string 
      digit = int(letter) # Cast the character as an int (0-9) 
      if digit == 0: 
       count_zero += 1 
      elif digit % 2 == 0: 
       count_even += 1 
      elif digit == 0: 
       count_odd += 1 
      else: 
       print("Invalid character") 
     print("Number of even numbers :",count_even) 
     print("Number of odd numbers :",count_odd) 
     print("Number of Zeroes:", count_zero) 
0
def oez(num): 
    num_repr = str(int(num)) 
    zeroes = len([digit for digit in num_repr if digit == "0"]) 
    evens = len([digit for digit in num_repr if int(digit) % 2 == 0]) 
    odds = len([digit for digit in num_repr if int(digit) % 2 == 1]) 
    print("evens: %d" % evens) 
    print("zeroes: %d" % zeroes) 
    print("odds: %d" % odds) 
相关问题