|
马上注册,结交更多好友,享用更多功能^_^
您需要 登录 才可以下载或查看,没有账号?立即注册
x
请用已学过的知识编写程序,统计下边这个长字符串中各个字符出现的次数并找到小甲鱼送给大家的一句话
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 字符,而不是换行
|
|