求大佬帮忙 姓氏问题
给定一个来自标准输入的家族名称列表,希望计算惟一名称的数量(多个相同的名称被计算为1),然后将其打印到标准输出。每个姓都以一行文本的形式输入。当输入文本为空时,程序结束。 你的这个家族名称到底是个列表,还是输入的啊?
#若是一个列表,程序如下
names=['Green','Li','Brown','Zhang','Li','Trump']
print(*set(names),sep='\n')
#若是输入的,程序如下
names=set()
while True:
name=input()
if not name:
break
names.add(name)
print(*names,sep='\n') sunrise085 发表于 2020-11-23 14:36
你的这个家族名称到底是个列表,还是输入的啊?
是这样的输入
Tanaka
Sugimoto
Wang
Tanaka
Wang
Tanaka Tac 发表于 2020-11-23 14:40
是这样的输入
Tanaka
Sugimoto
那就是第二个程序咯 sunrise085 发表于 2020-11-23 14:41
那就是第二个程序咯
为什么输入后没输出呢? Tac 发表于 2020-11-23 14:43
为什么输入后没输出呢?
是不是你的输入最后没有输入空行啊
你的要求是输入空行的时候结束程序,所以输入完这些姓之后,再输入一个空行以结束程序 sunrise085 发表于 2020-11-23 14:45
是不是你的输入最后没有输入空行啊
你的要求是输入空行的时候结束程序,所以输入完这些姓之后,再输入一 ...
解决了。。但是我想输出的是一共有多少个姓氏,不是这些姓氏都是那些。。。 本帖最后由 jackz007 于 2020-11-23 14:59 编辑
s = input() . strip()
if s:
d = list(set(s . split()))
print(len(d)) jackz007 发表于 2020-11-23 14:52
可以只输出数字嘛 不要姓氏名 Tac 发表于 2020-11-23 14:56
可以只输出数字嘛 不要姓氏名
没想到,画蛇添足了!8 楼的代码再测 jackz007 发表于 2020-11-23 15:00
没想到,画蛇添足了!8 楼的代码再测
多谢多谢 jackz007 发表于 2020-11-23 15:00
没想到,画蛇添足了!8 楼的代码再测
可以改一下成允许输入为
Tanaka
Sugimoto
Wang
Tanaka
Wang
Tanaka
这种形式的吗?
因为我输入的时候好像只能并排输入不能跨行输入 Tac 发表于 2020-11-23 15:11
可以改一下成允许输入为
Tanaka
Sugimoto
s = ''
while True:
x = input() . strip()
if x : s = s + ' ' + x
else : break
s = s . strip()
if s:
print(len(list(set(s . split())))) jackz007 发表于 2020-11-23 15:33
多谢多谢
页:
[1]