鱼C论坛

 找回密码
 立即注册
查看: 1555|回复: 6

[已解决]萌新学到小甲鱼的列表写作业时出了几个错误

[复制链接]
发表于 2017-10-16 14:14:21 | 显示全部楼层 |阅读模式

马上注册,结交更多好友,享用更多功能^_^

您需要 登录 才可以下载或查看,没有账号?立即注册

x
1:
        原程序:
morisa_harem = ["alice",1,"lemon",2,"knowdleg",3]
print(morisa_harem)

for i in morisa_harem:
    #print(type(i))
    if type(i) == int:
        print(morisa_harem[i - 1],morisa_harem[i])

#print(type("lemon"))

                问题是:目标是打印像:
                        alice 1
                        lemon 2
                        knowdleg 3
                                这样的数据
                        但打印出来后是:
                                ['alice', 1, 'lemon', 2, 'knowdleg', 3]
                                alice 1
                                1 lemon
                                lemon 2
                                        这样的数据

                                我在程序中用了print测试i的数据类型是发现列表中的type('lemon')也是int类型
                                请各位大佬帮我看看是我哪里出现问题了吗?

2:
        自己发现的一个小问题
        直接在print中使用extend合并列表会的到none
        虽然觉得这个不用抄程序了....:
                test = ['a','b','c']
                ojbk = ['d','e']
                print(test.extend(ojbk))
        运行后:
                ======================== RESTART: D:\python程序练习\测试.py ========================
                None
                >>>
                       

                请问是萌新哪里出了纰漏了吗QAQ
最佳答案
2017-10-16 15:21:43
本帖最后由 宫保鸡丁丁 于 2017-10-16 15:35 编辑

问题一:
  1. for i in morisa_harem:
  2.     print(type(i))
  3.     if type(i) == int:
  4.         print(morisa_harem[i - 1],morisa_harem[i])
复制代码

打印结果是:
  1. ['alice', 1, 'lemon', 2, 'knowdleg', 3]
  2. <class 'str'>
  3. <class 'int'>
  4. alice 1
  5. <class 'str'>
  6. <class 'int'>
  7. 1 lemon
  8. <class 'str'>
  9. <class 'int'>
  10. lemon 2
复制代码

这里的第一次打印是,i = 1,你碰巧对了,打印出来的是:morisa_harem[0],morisa_harem[1]
第二次打印时,i = 2,打印出来的是:morisa_harem[1],morisa_harem[2],输出结果是1, lemon
第三次打印时,i = 3,打印出来的是:morisa_harem[2],morisa_harem[3],输出结果是lemon,2
修改的程序为:
  1. morisa_harem = ["alice",1,"lemon",2,"knowdleg",3]
  2. print(morisa_harem)

  3. for i in range(len(morisa_harem)):
  4.     #print(type(i))
  5.     if type(morisa_harem[i]) == int:
  6.         print(morisa_harem[i - 1],morisa_harem[i])
复制代码


问题二:
xxx.extend()至返回None,也就是代表着没有对象,xxx.extend()使用完后就xxx就把两个列表加在一起了
你可以试试下面这个程序:
  1. test = ['a','b','c']
  2. ojbk = ['d','e']
  3. print(test.extend(ojbk))
  4. test.extend(ojbk)
  5. print(test)
复制代码


楼主觉得好记得给个最佳答案呐,你的鼓励是我最大的动力


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复

使用道具 举报

发表于 2017-10-16 15:21:43 | 显示全部楼层    本楼为最佳答案   
本帖最后由 宫保鸡丁丁 于 2017-10-16 15:35 编辑

问题一:
  1. for i in morisa_harem:
  2.     print(type(i))
  3.     if type(i) == int:
  4.         print(morisa_harem[i - 1],morisa_harem[i])
复制代码

打印结果是:
  1. ['alice', 1, 'lemon', 2, 'knowdleg', 3]
  2. <class 'str'>
  3. <class 'int'>
  4. alice 1
  5. <class 'str'>
  6. <class 'int'>
  7. 1 lemon
  8. <class 'str'>
  9. <class 'int'>
  10. lemon 2
复制代码

这里的第一次打印是,i = 1,你碰巧对了,打印出来的是:morisa_harem[0],morisa_harem[1]
第二次打印时,i = 2,打印出来的是:morisa_harem[1],morisa_harem[2],输出结果是1, lemon
第三次打印时,i = 3,打印出来的是:morisa_harem[2],morisa_harem[3],输出结果是lemon,2
修改的程序为:
  1. morisa_harem = ["alice",1,"lemon",2,"knowdleg",3]
  2. print(morisa_harem)

  3. for i in range(len(morisa_harem)):
  4.     #print(type(i))
  5.     if type(morisa_harem[i]) == int:
  6.         print(morisa_harem[i - 1],morisa_harem[i])
复制代码


问题二:
xxx.extend()至返回None,也就是代表着没有对象,xxx.extend()使用完后就xxx就把两个列表加在一起了
你可以试试下面这个程序:
  1. test = ['a','b','c']
  2. ojbk = ['d','e']
  3. print(test.extend(ojbk))
  4. test.extend(ojbk)
  5. print(test)
复制代码


楼主觉得好记得给个最佳答案呐,你的鼓励是我最大的动力


想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-16 20:36:34 | 显示全部楼层
宫保鸡丁丁 发表于 2017-10-16 15:21
问题一:

打印结果是:

大佬,
楼主觉得好记得给个最佳答案呐,你的鼓励是我最大的动力
说,是不是模仿的我
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-17 00:22:44 | 显示全部楼层
宫保鸡丁丁 发表于 2017-10-16 15:21
问题一:

打印结果是:

谢谢层主,我的问题1已经解决了,是我没有理解列表的元素选择方式orz
但是问题2我还是没有理解,
   在print()中为什么extend()就会得到一个空集呢?
   而不能像extend()后再print()得到一样的结果...
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-17 09:52:40 | 显示全部楼层
qq1067271279 发表于 2017-10-17 00:22
谢谢层主,我的问题1已经解决了,是我没有理解列表的元素选择方式orz
但是问题2我还是没有理解,
   在 ...


xxx.extended()属于内置函数,也就是小甲鱼书上写的BIF,这是已经定好的
类似extended() [ 这是列表之间的相加 ] 的还有xxx.append() [ 这是在列表后面加入一个元素 ]
上面两个BIF都是执行完后返回None,但是xxx里边已经被重新定义了
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

发表于 2017-10-17 09:55:10 | 显示全部楼层
Teagle 发表于 2017-10-16 20:36
大佬,
楼主觉得好记得给个最佳答案呐,你的鼓励是我最大的动力
说,是不是模仿的我

向黑势力低头
模仿是最强大的学习方式
感谢大佬
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

 楼主| 发表于 2017-10-17 23:14:53 | 显示全部楼层
宫保鸡丁丁 发表于 2017-10-17 09:52
xxx.extended()属于内置函数,也就是小甲鱼书上写的BIF,这是已经定好的
类似extended() [ 这是列表之间 ...

谢谢OvO!
了解啦!
想知道小甲鱼最近在做啥?请访问 -> ilovefishc.com
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

小黑屋|手机版|Archiver|鱼C工作室 ( 粤ICP备18085999号-1 | 粤公网安备 44051102000585号)

GMT+8, 2024-4-27 01:31

Powered by Discuz! X3.4

© 2001-2023 Discuz! Team.

快速回复 返回顶部 返回列表