yummyuyo 发表于 2020-4-12 15:38:19

奇数提取

想提取0-9之间的奇数,请问下面代码哪里出错了
>>> def odd(x):
        list1=[]
        for i in range(x):
                if x%2==1:
                        list1.append(x)
        print (list1)

>>> odd(10)
[]

sunrise085 发表于 2020-4-12 15:52:07

两个错误:
1、for循环内不应该用x而应该用i
2、不应该是print(list1),应该是return list1
def odd(x):
    list1=[]
    for i in range(x):
      if i%2==1:
            list1.append(i)
    return list1

yummyuyo 发表于 2020-4-12 15:59:23

sunrise085 发表于 2020-4-12 15:52
两个错误:
1、for循环内不应该用x而应该用i
2、不应该是print(list1),应该是return list1

>>> def odd(x):
    list1=[]
    for i in range(x):
      if i%2==1:
            list1.append(i)
      return list1

>>> odd(10)
[]

{:10_250:}为啥还是这样哩

sunrise085 发表于 2020-4-12 16:03:37

yummyuyo 发表于 2020-4-12 15:59
>>> def odd(x):
    list1=[]
    for i in range(x):


你为啥一定要在IDLE总执行函数乜?

你写的和我写的也不一样啊,return的缩进不对,它不应该在for循环内。

雨留下的印记 发表于 2020-4-12 16:32:49

yummyuyo 发表于 2020-4-12 15:59
>>> def odd(x):
    list1=[]
    for i in range(x):


这里return不能在for循环内!当return在for循环内,第一个数为0,执行到return的时候这个函数就结束了。
return是函数结束的标志。后面的语句就不再执行了。且0没有添加到列表中,所以还是空列表

yummyuyo 发表于 2020-4-12 17:10:02

sunrise085 发表于 2020-4-12 16:03
你为啥一定要在IDLE总执行函数乜?

你写的和我写的也不一样啊,return的缩进不对,它不应该在for循 ...

哦哦,明白了,idle执行函数有问题吗{:10_257:}我就跟着小甲鱼的{:10_324:}

sunrise085 发表于 2020-4-12 17:19:19

yummyuyo 发表于 2020-4-12 17:10
哦哦,明白了,idle执行函数有问题吗我就跟着小甲鱼的

不是说IDLE执行函数就一定有问题。IDLE中执行多行代码会出问题。尽量还是创建一个文件来进行练习吧

若是帮到你了,请给个最佳答案哈

yummyuyo 发表于 2020-4-12 21:48:39

sunrise085 发表于 2020-4-12 17:19
不是说IDLE执行函数就一定有问题。IDLE中执行多行代码会出问题。尽量还是创建一个文件来进行练习吧

若 ...

谢谢啦
页: [1]
查看完整版本: 奇数提取