while循环计算100以内的偶数python_使用while循环来计算用户输入到列表中的偶数整数?...

问题

这里有几个问题:您永远不会在while循环的头部定义size。在

您将range内置类用作一个没有意义的整数值。在

您永远不会在函数中使用alist。在

您不需要在while中使用for循环,因为您并不是要为1到{}之间的每个数找到偶数的数量,而是要寻找alist中的所有偶数(大概是这样)。在

下面是上面的修复方法:def count_evens_while(alist):

evenIntegers = 0

size = 0

while size < len(alist):

if alist[size] % 2 == 0:

evenIntegers = evenIntegers + 1

size = size + 1

print(evenIntegers)

在while循环的第一部分中:

^{pr2}$

我们告诉Python每次循环时都要比较size的值与{}的长度。然后,我们在循环中每次递增rmenet size:size = size + 1

这基本上意味着循环的每次迭代,size的值将对应于alist的索引。当size达到alist的最后一个索引时,循环将停止。下面是一个直观的例子来帮助解释。假设alist是[1, 2, 3],并且size最初等于0:First iteration

alist = [1, 2, 3]

^

|

+--- size = 0

Second iteration

alist = [1, 2, 3]

^

|

+--- size = 1

Third (and last) iteration

alist = [1, 2, 3]

^

|

+--- size = 2

下一个重要部分:alist[size] % 2 == 0

意味着我们正在索引列表。索引列表时,使用整数从整数对应的位置获取值。在本例中,alist[size]意味着我们在size值的位置得到整数的值。最后一部分:% 2 == 0

意味着我们正在测试alist中位置size处的整数是否为偶数。如果是,我们增加偶数的计数,否则我们什么也不做。在

改进

您可以对当前的解决方案进行一些改进使用for循环而不是while循环。这将是更自然的解决方案。在

你不需要做evenIntegers = evenIntegers + 1。您可以使用递增运算符+=。在

以下是应用于代码的上述改进:def count_evens_while(alist):

evenIntegers = 0

for element in alist:

if element % 2 == 0:

evenIntegers += 1

print(evenIntegers)

不过,这还可以改进得更多!您不需要for循环。您可以使用一个generator comprehension和^{}内置函数来计算alist中所有偶数的元素:def count_evens_while(alist):

return sum(1 for el in alist if el % 2)

文体改进

最后一件事我会批评你的代码是使用更好的变量名。使用准确描述变量的名称代表。代表例如,变量myList最好重命名为user_input_numbers。在

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值