python20讲课后作业
请用已学过的知识编写程序,统计下边这个长字符串中各个字符出现的次数并找到小甲鱼送给大家的一句话str1 = '''拷贝过来的字符串'''
list1 = []
for each in str1:
if each not in list1:
if each == '\n':
print('\\n', str1.count(each))
else:
print(each, str1.count(each))
list1.append(each)
大佬们,我想请问这个list列表用字这里是要干什么呢,for下面的if语句是说当str1中的字符不存在list1里面时,那么既然list1是空列表,应该不存在这种情况啊
str1 = '''拷贝过来的字符串'''
list1 = []
for each in str1:
print(each, str1.count(each))
list1.append(each)
这样的代码输出结果也和上面的一样啊,所以说二者有何差别呢以及这列表放在这里有什么用处呢 本帖最后由 Twilight6 于 2020-7-5 10:46 编辑
大佬们,我想请问这个list列表用字这里是要干什么呢,for下面的if语句是说当str1中的字符不存在list1里面时,那么既然list1是空列表,应该不存在这种情况啊
循环过程中会循环到相同字符,你第一次循环时候不在列表里,所以 if 里的 list1.append(each) 会将循环过的字符加入列表中作为记录
下一次循环到这个字符就会发现在 列表中了 ,就不在打印这个字符的统计结果
str1 = '''拷贝过来的字符串'''
list1 = []
for each in str1:
print(each, str1.count(each))
list1.append(each)
这样的代码输出结果也和上面的一样啊,所以说二者有何差别呢以及这列表放在这里有什么用处呢
输出结果不同,你的代码会多出个空行,和空行值,是因为 打印\n 的时候 print 函数以为你要换行,所以帮你换行了,还有重复打印一些字符
而实际上,我们是想要打印 \n 这个字符,而不是想换行,而 \n 想要打印必须转义,所以必须单独 列出一个 if 判断 是否为 \n ,是 \n 时候将 \n 多加个 \ 转义了才能成功打印出 \n 字符,而不是换行
你把 '''拷贝过来的字符串'''换成别的,其中有重复内容的就发现不同了。如 '''拷贝过来的字符串贝贝'''
甲鱼用list检查筛选掉了重复的字符,而你的就不能,重复的也重复着打印出来了。
if each == '\n':就是判断是否回车键,我们不想以回车的方式打印出来,而希望是以\n表示出来。 谢谢
痒痒它老叔 发表于 2020-7-5 10:41
你把 '''拷贝过来的字符串'''换成别的,其中有重复内容的就发现不同了。如 '''拷贝过来的字符串贝贝'''
甲 ...
明白了谢谢 Twilight6 发表于 2020-7-5 10:03
循环过程中会循环到相同字符,你第一次循环时候不在列表里,所以 if 里的 list1.append(each) 会 ...
明白了,谢谢 Comica1 发表于 2020-7-5 10:59
明白了,谢谢
客气了 ~加油~~~
页:
[1]