Python 2.7 循环问题甚至算数

Python 2.7 循环问题甚至算数,python-2.7,Python 2.7,我有一个初学者的问题。循环对我来说非常难理解,所以我来寻求帮助 我正在尝试创建一个函数来计算用户输入列表中偶数的数量,在列表的末尾显示负数。我知道我需要使用while循环,但是我很难弄清楚如何遍历输入列表的索引。这就是我目前所拥有的,有人能帮我一下吗 def find_even_count(numlist): count = 0 numlist.split() while numlist > 0: if numlist % 2 == 0: count += 1 re

我有一个初学者的问题。循环对我来说非常难理解,所以我来寻求帮助

我正在尝试创建一个函数来计算用户输入列表中偶数的数量,在列表的末尾显示负数。我知道我需要使用while循环,但是我很难弄清楚如何遍历输入列表的索引。这就是我目前所拥有的,有人能帮我一下吗

def find_even_count(numlist):
count = 0
numlist.split()
while numlist > 0:
    if numlist % 2 == 0:
        count += 1
return count        

numlist = raw_input("Please enter a list of numbers, with a negative at the end: ")
print find_even_count(numlist)
我使用拆分来分离列表的索引,但我知道我做错了什么。有谁能指出我做错了什么,或者给我一个很好的一步一步的解释,告诉我该怎么做?
非常感谢你们,我知道你们可能在技能水平上还有更多的事情要做,但感谢你们的帮助

你很接近,只是几处更正:

def find_even_count(numlist):
    count = 0
    lst = numlist.split()
    for num in lst:
        if int(num) % 2 == 0:
            count += 1
    return count        

numlist = raw_input("Please enter a list of numbers, with a negative at the end: ")
print find_even_count(numlist)

我使用了for循环而不是while循环,将
numlist.split()
的结果存储到一个变量(lst)中,然后对其进行迭代。

您有几个问题:

  • 您可以拆分
    numlist
    ,但不将结果列表分配给任何对象
  • 然后尝试对
    numlist
    进行操作,它仍然是所有数字的字符串
  • 你从不尝试将任何东西转换成数字
  • 相反,请尝试:

    def find_even_count(numlist):
        count = 0
        for numstr in numlist.split(): # iterate over the list
            num = int(numstr) # convert each item to an integer
            if num < 0:
                break # stop when we hit a negative
            elif num % 2 == 0:
                count += 1 # increment count for even numbers
        return count # return the total
    
    (注意:如果用户试图通过在“最终”负数后添加更多数字来欺骗您,例如使用
    numlist=“1 2-1 3 4”
    ),则一行程序将失败。)

    如果您必须使用
    while
    循环(这并不是该作业的最佳工具),它将如下所示:

    def find_even_count(numlist):
        index = count = 0
        numlist = list(map(int, numlist.split()))
        while numlist[index] > 0:
            if numlist[index] % 2 == 0:
                count += 1
            index += 1
        return count
    

    numberst
    未定义。请发布你正在使用的代码这就是我正在使用的,我想我的mac电脑试图自动更正,“打印查找偶数”中的“数字”应该是“numlist”等等,伙计们,我正在尝试回应。我正在尝试保持一段时间的循环,因为这是练习的重点。你们很有天赋谢谢你们反应这么快。。。我正在查看你的两个答案,我发现我从来没有给任何东西分配分割
    def find_even_count(numberst):
    count=0
    nums=int(numlist)
    nums=nums.split()
    numlist=raw_input(“请输入一个数字列表,末尾带负数:”)
    打印find_even_count(numberst)
    我一直得到“无效的int文本,以10为基数…”。。。我正在尝试将拆分的numlist转换为整数。编辑:我找不到switch@Loomiss您必须将
    int
    应用于
    拆分后的每个项目
    ;您不能直接将例如
    “12-3”
    转换为
    int
    。我添加了一个基于while的实现示例。
    def find_even_count(numlist):
        index = count = 0
        numlist = list(map(int, numlist.split()))
        while numlist[index] > 0:
            if numlist[index] % 2 == 0:
                count += 1
            index += 1
        return count