goodwar7 发表于 2020-9-2 22:41:50

第010讲:列表:一个打了激素的数组

动动手2:上一题打印的样式不是很好,能不能修改一下代码打印成下图的样式呢?【请至少使用两种方法实现】
member = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]

一:输入后不报错,但不打印任何内容
for i in member:
    if i == str():
      print(i,end='')
    if i == int():
      print(i)
二:输入后和“for i in member: print(i)”没有区别
for i in member:
    if i == str():
      print(i,end='')   #(end='')作用不是不换行吗?
    else:
      print(i)

请各位大佬帮忙看看,另外1、每次作业后都有自己想半天都想不明白的错误,该如何改进;2、课后答案的方法我发现自己完全没有这种方法的思路,不会往这方面想,请问怎么改进,还是说需要多看其他人的方法或多模仿。

qin_yin 发表于 2020-9-2 22:41:51

1,输入后不报错,但不打印内容
因为你这个条件他是永远不会成立的,例如你的,if i == str(),这里str()创建了一个str对象,不是类型,你要去掉括号,那么它就是一个str类型,去掉了括号使用type(i)会返回一个类型, if type(i) == str,其他的同理。
2,输入后和“for i in member: print(i)”没有区别
没有区别的原因的是你的 if i == str(),它永远不会成立(原因和上面一样),if 不成立就执行了else 条件,你的else条件中的print()的参数也应该加上end=''就会得到你想要得结果,(其实这样写会也会得你想要得结果,但是是半对半错)
正确写法
member = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
for i in member:
       print(i,end ='')


疾风怪盗 发表于 2020-9-2 22:43:57

本帖最后由 疾风怪盗 于 2020-9-2 22:46 编辑

if i == str()
这是啥意思?

你要判断是字符型还是数值型,可以用type()
member = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]
for i in member:
    if type(i) == str:
      print(i,end='')
    if type(i) == int:
      print(i)

学习型motor 发表于 2020-9-2 23:30:45

本帖最后由 学习型motor 于 2020-9-2 23:40 编辑

我看了一下,不知道我理解得对不对
你应该是想判断是字符串或者是整型然后做出相应的操作,你可以试试下面的代码:
member = ['小甲鱼', 88, '黑夜', 90, '迷途', 85, '怡静', 90, '秋舞斜阳', 88]

for i in member:
    if isinstance(i,str):
      print(i,end = "")
    if isinstance(i,int):
      print(i)

然后再说说你的代码
for i in member:
    if i == str():#这里你想判断i是不是字符串,如果你打开idle单独输入str()你会发现这是个空字符串,所以你这里的代码变成判断i是不是空字符串,显然和你的想法不一致了
      print(i,end='')        #顺带一提,这里应该是print(i,end = "")这个样子哦,你少写了
    if i == int():        #这里的int()同理
      print(i)

当然你也可以按照上面老哥写的用type(i)去判断
嘿嘿 多看看视频,动手练习,试错
加油学习吧,大家一起进步

fazerse 发表于 2020-9-3 05:01:21

都是过来人,慢慢来,” 拿出自己的手指,盯着看10 秒钟,想象他他一根血管,每一根神经,其实编程也不过是如此。”      小甲鱼可以出0基础学习编程语录了。 {:5_106:}      一说是靠刷题培养思路,有带答案讲解的题刷的话,请来分享
页: [1]
查看完整版本: 第010讲:列表:一个打了激素的数组