Aber 发表于 2020-6-4 16:41:14

020闭包及内嵌函数课后作业第一题求助。

str = list(string)

def find():
    list1 = []
    a = 0
    b = 0
    c = 0
    d = 0
    e = 0
    f = 0
    g = 0
    h = 0
    i = 0
    j = 0
    k = 0
    l = 0
    m = 0
    for each in str:

      if each == "*":
            a += 1
      elif each == "}":
            b += 1
      elif each == "$":
            c += 1
      elif each == "^":
            d += 1
      elif each == "(":
            e += 1
      elif each == "{":
            f += 1
      elif each == "%":
            g += 1
      elif each == "!":
            h += 1
      elif each == "+":
            i += 1
      elif each == "&":
            j += 1
      elif each == "_":
            k += 1
      elif each == "]":
            l += 1
      elif each == "[":
            m += 1
      else:
            list1.append(each)
    return a,b,c,d,e,f,g,h,i,j,k,l,m,list1
#string = 小甲鱼给的一大串乱码
请问我这个看起来是不是有点那种感觉,就是你们抽烟用打火机,而我在钻木取火{:10_277:}

测试第一次的时候在return里面忘记加list1了,第1次运行正常,加上list1之后返回值为什么。。。是个我我没见过的东西 我发出来你们看看


这是个啥{:10_243:}

Twilight6 发表于 2020-6-4 16:42:39

这个只是 IDEL 屏蔽显示的文本了实际上有 一千多行的意思

冬雪雪冬 发表于 2020-6-4 16:42:45

要显示的内容太多,需要点击一下。

Twilight6 发表于 2020-6-4 16:44:11

Twilight6 发表于 2020-6-4 16:42
这个只是 IDEL 屏蔽显示的文本了实际上有 一千多行的意思

不是屏蔽 是压缩哈哈你可以右击 复制

qiuyouzhi 发表于 2020-6-4 16:44:16

IDLE比较弱鸡,要是把这些打印出来,IDLE肯定会卡死
这里它帮你压缩了起来,你可以展开或者复制或者在一个专门的窗口里面看内容。

Aber 发表于 2020-6-4 16:46:53

我刚刚去偷看答案了,我果然是钻木取火{:10_277:}原来count还有这个用法 我都不知道耶

Aber 发表于 2020-6-4 16:53:26

Twilight6 发表于 2020-6-4 16:44
不是屏蔽 是压缩哈哈你可以右击 复制

str1 = '''拷贝过来的字符串'''
list1 = []

for each in str1:
    if each not in list1:#怎么没有跟这一条if对应的else呀,这条什么意思呀,list1本来就是个空列表呀?是因为最后面append了一些东西来判断的吗?count能分清每一个字符?还把字母分的开,装到list1里面了?
      if each == '\n':
            print('\\n', str1.count(each))

      else:
            print(each, str1.count(each))
      list1.append(each)

#这是给的答案,str1.count(each)就会吧for循环里面each的每一个元素都数一遍并且把不一样的东西一一分开列出来吗?

#“\n"是回车符吧,每一行结尾都是一个这个吧?

qiuyouzhi 发表于 2020-6-4 16:56:46

Aber 发表于 2020-6-4 16:53
#这是给的答案,str1.count(each)就会吧for循环里面each的每一个元素都数一遍并且把不一样的东西一 ...

1,你可以每次打印list1,会发现只有第一次列表是空的。
2,str1.count(each)是返回str1里面each出现的次数。
3,应该是

Twilight6 发表于 2020-6-4 16:57:55

Aber 发表于 2020-6-4 16:53
#这是给的答案,str1.count(each)就会吧for循环里面each的每一个元素都数一遍并且把不一样的东西一 ...

怎么没有跟这一条if对应的else呀,这条什么意思呀
if 不一定要和 else 搭配的哦 看情况,这里只要满足 不在列表里就执行 if 代码块
而在列表里就不执行 而开始下一次的循环 所以没有必要加else 哦

list1本来就是个空列表呀?是因为最后面append了一些东西来判断的吗?还把字母分的开,装到list1里面了?
对 刚刚开始列表里没有元素嘛,就是为了放元素进去的,嗯 每个字符都分开来遍历统计嘛
“\n"是回车符吧,每一行结尾都是一个这个吧?
是\n换行符号 \r 是回车符换行时候就会有这个符号滴
页: [1]
查看完整版本: 020闭包及内嵌函数课后作业第一题求助。