题目一
获得用户输入的一个整数N,输出N中所出现不同数字的和。
例如:用户输入 123123123,其中所出现的不同数字为:1、2、3,这几个数字和为6。
代码
a=set(input())
print(a)
b=str(a)
j=len(b)
s=0
print(b)
for i in range(2,j,5):
s+=eval(b[i])
print(s)
输入
1222333344111
输出结果
{'4', '3', '2', '1'}
{'4', '3', '2', '1'}
10
讨论
好像我的集合、列表{" ", " "}逗号和双引号之间都存在一个空格,以至于后面步长为5。
而且str(set)是真的把set全搞成字符了,即{'4', '3', '2', '1'}这个集合变成了"{'4', '3', '2', '1'}"这个字符串。
题目二
编程模板中给出了一个字符串,其中包含了含有重复的人名,请直接输出出现最多的人名。
代码
import jieba
s = '''双儿 洪七公 赵敏 赵敏 逍遥子 鳌拜 殷天正 金轮法王 乔峰 杨过 洪七公 郭靖
杨逍 鳌拜 殷天正 段誉 杨逍 慕容复 阿紫 慕容复 郭芙 乔峰 令狐冲 郭芙
金轮法王 小龙女 杨过 慕容复 梅超风 李莫愁 洪七公 张无忌 梅超风 杨逍
鳌拜 岳不群 黄药师 黄蓉 段誉 金轮法王 忽必烈 忽必烈 张三丰 乔峰 乔峰
阿紫 乔峰 金轮法王 袁冠南 张无忌 郭襄 黄蓉 李莫愁 赵敏 赵敏 郭芙 张三丰
乔峰 赵敏 梅超风 双儿 鳌拜 陈家洛 袁冠南 郭芙 郭芙 杨逍 赵敏 金轮法王
忽必烈 慕容复 张三丰 赵敏 杨逍 令狐冲 黄药师 袁冠南 杨逍 完颜洪烈 殷天正
李莫愁 阿紫 逍遥子 乔峰 逍遥子 完颜洪烈 郭芙 杨逍 张无忌 杨过 慕容复
逍遥子 虚竹 双儿 乔峰 郭芙 黄蓉 李莫愁 陈家洛 杨过 忽必烈 鳌拜 王语嫣
洪七公 韦小宝 阿朱 梅超风 段誉 岳灵珊 完颜洪烈 乔峰 段誉 杨过 杨过 慕容复
黄蓉 杨过 阿紫 杨逍 张三丰 张三丰 赵敏 张三丰 杨逍 黄蓉 金轮法王 郭襄
张三丰 令狐冲 赵敏 郭芙 韦小宝 黄药师 阿紫 韦小宝 金轮法王 杨逍 令狐冲 阿紫
洪七公 袁冠南 双儿 郭靖 鳌拜 谢逊 阿紫 郭襄 梅超风 张无忌 段誉 忽必烈
完颜洪烈 双儿 逍遥子 谢逊 完颜洪烈 殷天正 金轮法王 张三丰 双儿 郭襄 阿朱
郭襄 双儿 李莫愁 郭襄 忽必烈 金轮法王 张无忌 鳌拜 忽必烈 郭襄 令狐冲
谢逊 梅超风 殷天正 段誉 袁冠南 张三丰 王语嫣 阿紫 谢逊 杨过 郭靖 黄蓉
双儿 灭绝师太 段誉 张无忌 陈家洛 黄蓉 鳌拜 黄药师 逍遥子 忽必烈 赵敏
逍遥子 完颜洪烈 金轮法王 双儿 鳌拜 洪七公 郭芙 郭襄 赵敏'''
c=jieba.lcut(s)
counts = {}
for word in c:
if len(word) == 1:
continue
else:
rword = word
counts[rword] = counts.get(rword,0) + 1
items = list(counts.items())
items.sort(key=lambda x:x[1], reverse=True)
word, count = items[0]
print ("{0:<10}".format(word))
想不用jieba库,然而???
奇怪的问题
s = '''双儿 洪七公 赵敏 赵敏 逍遥子 鳌拜 殷天正 金轮法王 乔峰 杨过 洪七公 郭靖
杨逍 鳌拜 殷天正 段誉 杨逍 慕容复 阿紫 慕容复 郭芙 乔峰 令狐冲 郭芙
金轮法王 小龙女 杨过 慕容复 梅超风 李莫愁 洪七公 张无忌 梅超风 杨逍
鳌拜 岳不群 黄药师 黄蓉 段誉 金轮法王 忽必烈 忽必烈 张三丰 乔峰 乔峰
阿紫 乔峰 金轮法王 袁冠南 张无忌 郭襄 黄蓉 李莫愁 赵敏 赵敏 郭芙 张三丰
乔峰 赵敏 梅超风 双儿 鳌拜 陈家洛 袁冠南 郭芙 郭芙 杨逍 赵敏 金轮法王
忽必烈 慕容复 张三丰 赵敏 杨逍 令狐冲 黄药师 袁冠南 杨逍 完颜洪烈 殷天正
李莫愁 阿紫 逍遥子 乔峰 逍遥子 完颜洪烈 郭芙 杨逍 张无忌 杨过 慕容复
逍遥子 虚竹 双儿 乔峰 郭芙 黄蓉 李莫愁 陈家洛 杨过 忽必烈 鳌拜 王语嫣
洪七公 韦小宝 阿朱 梅超风 段誉 岳灵珊 完颜洪烈 乔峰 段誉 杨过 杨过 慕容复
黄蓉 杨过 阿紫 杨逍 张三丰 张三丰 赵敏 张三丰 杨逍 黄蓉 金轮法王 郭襄
张三丰 令狐冲 赵敏 郭芙 韦小宝 黄药师 阿紫 韦小宝 金轮法王 杨逍 令狐冲 阿紫
洪七公 袁冠南 双儿 郭靖 鳌拜 谢逊 阿紫 郭襄 梅超风 张无忌 段誉 忽必烈
完颜洪烈 双儿 逍遥子 谢逊 完颜洪烈 殷天正 金轮法王 张三丰 双儿 郭襄 阿朱
郭襄 双儿 李莫愁 郭襄 忽必烈 金轮法王 张无忌 鳌拜 忽必烈 郭襄 令狐冲
谢逊 梅超风 殷天正 段誉 袁冠南 张三丰 王语嫣 阿紫 谢逊 杨过 郭靖 黄蓉
双儿 灭绝师太 段誉 张无忌 陈家洛 黄蓉 鳌拜 黄药师 逍遥子 忽必烈 赵敏
逍遥子 完颜洪烈 金轮法王 双儿 鳌拜 洪七公 郭芙 郭襄 赵敏'''
c=s.split(" ")
counts = {}
for word in c:
if len(word) == 1:
continue
else:
rword = word
counts[rword] = counts.get(rword,0) + 1
items = list(counts.items())
items.sort(key=lambda x:x[1], reverse=True)
word, count = items[0]
print ("{0:<10}".format(word))
我想把s里面按照 空格" " 进行划分。运行结果为:
>>>
啥也没有,但我试了,把c打印出来确实是个列表
['双儿', '洪七公', '赵敏', '赵敏', '逍遥子', '鳌拜', '殷天正', '金轮法王', '乔峰', '杨过', '洪七公', '郭靖', '\n', '', '', '', '', '', '', '杨逍', '鳌拜', '殷天正', '段誉', '杨逍', '慕容复', '阿紫', '慕容复', '郭芙', '乔峰', '令狐冲', '郭芙', '\n', '', '', '', '', '', '', '金轮法王', '小龙女', '杨过', '慕容复', '梅超风', '李莫愁', '洪七公', '张无忌', '梅超风', '杨逍', '\n', '', '', '', '', '', '', '鳌拜', '岳不群', '黄药师', '黄蓉', '段誉', '金轮法王', '忽必烈', '忽必烈', '张三丰', '乔峰', '乔峰', '\n', '', '', '', '', '', '', '阿紫', '乔峰', '金轮法王', '袁冠南', '张无忌', '郭襄', '黄蓉', '李莫愁', '赵敏', '赵敏', '郭芙', '张三丰', '\n', '', '', '', '', '', '', '乔峰', '赵敏', '梅超风', '双儿', '鳌拜', '陈家洛', '袁冠南', '郭芙', '郭芙', '杨逍', '赵敏', '金轮法王', '\n', '', '', '', '', '', '', '忽必烈', '慕容复', '张三丰', '赵敏', '杨逍', '令狐冲', '黄药师', '袁冠南', '杨逍', '完颜洪烈', '殷天正', '\n', '', '', '', '', '', '', '李莫愁', '阿紫', '逍遥子', '乔峰', '逍遥子', '完颜洪烈', '郭芙', '杨逍', '张无忌', '杨过', '慕容复', '\n', '', '', '', '', '', '', '逍遥子', '虚竹', '双儿', '乔峰', '郭芙', '黄蓉', '李莫愁', '陈家洛', '杨过', '忽必烈', '鳌拜', '王语嫣', '\n', '', '', '', '', '', '', '洪七公', '韦小宝', '阿朱', '梅超风', '段誉', '岳灵珊', '完颜洪烈', '乔峰', '段誉', '杨过', '杨过', '慕容复', '\n', '', '', '', '', '', '', '黄蓉', '杨过', '阿紫', '杨逍', '张三丰', '张三丰', '赵敏', '张三丰', '杨逍', '黄蓉', '金轮法王', '郭襄', '\n', '', '', '', '', '', '', '张三丰', '令狐冲', '赵敏', '郭芙', '韦小宝', '黄药师', '阿紫', '韦小宝', '金轮法王', '杨逍', '令狐冲', '阿紫', '\n', '', '', '', '', '', '', '洪七公', '袁冠南', '双儿', '郭靖', '鳌拜', '谢逊', '阿紫', '郭襄', '梅超风', '张无忌', '段誉', '忽必烈', '\n', '', '', '', '', '', '', '完颜洪烈', '双儿', '逍遥子', '谢逊', '完颜洪烈', '殷天正', '金轮法王', '张三丰', '双儿', '郭襄', '阿朱', '\n', '', '', '', '', '', '', '郭襄', '双儿', '李莫愁', '郭襄', '忽必烈', '金轮法王', '张无忌', '鳌拜', '忽必烈', '郭襄', '令狐冲', '\n', '', '', '', '', '', '', '谢逊', '梅超风', '殷天正', '段誉', '袁冠南', '张三丰', '王语嫣', '阿紫', '谢逊', '杨过', '郭靖', '黄蓉', '\n', '', '', '', '', '', '', '双儿', '灭绝师太', '段誉', '张无忌', '陈家洛', '黄蓉', '鳌拜', '黄药师', '逍遥子', '忽必烈', '赵敏', '\n', '', '', '', '', '', '', '逍遥子', '完颜洪烈', '金轮法王', '双儿', '鳌拜', '洪七公', '郭芙', '郭襄', '赵敏']
破案了,空字符""产生了许多,也在这个列表里,怪不得结果是个空呢。
增加一句elif就完了
最终
s = '''双儿 洪七公 赵敏 赵敏 逍遥子 鳌拜 殷天正 金轮法王 乔峰 杨过 洪七公 郭靖
杨逍 鳌拜 殷天正 段誉 杨逍 慕容复 阿紫 慕容复 郭芙 乔峰 令狐冲 郭芙
金轮法王 小龙女 杨过 慕容复 梅超风 李莫愁 洪七公 张无忌 梅超风 杨逍
鳌拜 岳不群 黄药师 黄蓉 段誉 金轮法王 忽必烈 忽必烈 张三丰 乔峰 乔峰
阿紫 乔峰 金轮法王 袁冠南 张无忌 郭襄 黄蓉 李莫愁 赵敏 赵敏 郭芙 张三丰
乔峰 赵敏 梅超风 双儿 鳌拜 陈家洛 袁冠南 郭芙 郭芙 杨逍 赵敏 金轮法王
忽必烈 慕容复 张三丰 赵敏 杨逍 令狐冲 黄药师 袁冠南 杨逍 完颜洪烈 殷天正
李莫愁 阿紫 逍遥子 乔峰 逍遥子 完颜洪烈 郭芙 杨逍 张无忌 杨过 慕容复
逍遥子 虚竹 双儿 乔峰 郭芙 黄蓉 李莫愁 陈家洛 杨过 忽必烈 鳌拜 王语嫣
洪七公 韦小宝 阿朱 梅超风 段誉 岳灵珊 完颜洪烈 乔峰 段誉 杨过 杨过 慕容复
黄蓉 杨过 阿紫 杨逍 张三丰 张三丰 赵敏 张三丰 杨逍 黄蓉 金轮法王 郭襄
张三丰 令狐冲 赵敏 郭芙 韦小宝 黄药师 阿紫 韦小宝 金轮法王 杨逍 令狐冲 阿紫
洪七公 袁冠南 双儿 郭靖 鳌拜 谢逊 阿紫 郭襄 梅超风 张无忌 段誉 忽必烈
完颜洪烈 双儿 逍遥子 谢逊 完颜洪烈 殷天正 金轮法王 张三丰 双儿 郭襄 阿朱
郭襄 双儿 李莫愁 郭襄 忽必烈 金轮法王 张无忌 鳌拜 忽必烈 郭襄 令狐冲
谢逊 梅超风 殷天正 段誉 袁冠南 张三丰 王语嫣 阿紫 谢逊 杨过 郭靖 黄蓉
双儿 灭绝师太 段誉 张无忌 陈家洛 黄蓉 鳌拜 黄药师 逍遥子 忽必烈 赵敏
逍遥子 完颜洪烈 金轮法王 双儿 鳌拜 洪七公 郭芙 郭襄 赵敏'''
c=s.split(" ")
print(c)
counts = {}
for word in c:
if len(word) == 1:
continue
elif len(word)==0:
continue
else:
rword = word
counts[rword] = counts.get(rword,0) + 1
items = list(counts.items())
items.sort(key=lambda x:x[1], reverse=True)
word, count = items[0]
print ("{0:<10}".format(word))