问答详情
源自:5-2 Python按顺序访问list

为什么我输出来的是奇数元素,还有一个不懂的就是,a=0和a=1有什么区别吗

a = 0

L = ['Alice', 66, 'Bob', True, 'False', 100]

for item in L:

    if a % 2 == 1:

        a += 1

        continue

    print(item)

    a+=1


提问者:toment 2022-03-13 20:38

个回答

  • 慕先生1285327
    2022-04-14 20:11:00

    a = 0

    L = ['Alice', 66, 'Bob', True, 'False', 100]

    for item in L:

        if a % 2 == 1:   這裡a=0帶入  0%2不等於1所以if不成立

            a += 1     

            continue

        print(item)     就直接輸出第一個元素了

        a+=1


    要改成


    a = 0

    L = ['Alice', 66, 'Bob', True, 'False', 100]

    for item in L:

        a += 1

        if a % 2 == 1:

            continue


        print(item)


    這樣才對

  • 千古笑
    2022-03-14 17:14:48

    这个题目意思是要你打印出逻辑上在偶数位的元素,alice是第一个,66是第二个这个意思,符合条件的list下标值分别是1,3,5。

    你这里a取的0,所以和list的下标值是同步的,而你代码意思是下标为偶数就打印,所以输出的元素下标分别是0,2,4,懂了吗,所以你的代码改成a=1就对了。

    你上面说a=3也行,其实a为任意一个奇数都可以,你a的取值只要和list的下标值奇偶性不一样就没问题,因为题目说的偶数位和下标位为奇数位是一个意思。

  • toment
    2022-03-13 21:38:13

    我懂了,如果开始写a=1,就是赋予L的第一个元素序号为1,是吧?

  • 心a跳乱了节奏
    2022-03-13 20:53:04

    因为list元素的顺序是从0开始数的,所以a % 2==0,a必须从0开始啊,不然就漏了一个元素