【发布时间】:2020-02-25 02:26:58
【问题描述】:
目标是从用户的段落中创建一个列表并进行迭代,以便我可以计算有多少单词包含特殊字母“j,x,q,z”。
示例输入:
在地下的一个洞里,住着一个霍比特人。不是一个肮脏、肮脏、潮湿、满是虫子末端和渗出气味的肮脏、肮脏、潮湿的洞,也不是一个干燥、裸露、沙质的洞,里面没有东西可以坐下或吃东西;这是一个霍比特人洞,这意味着舒适。
示例输出: 1 个带有稀有字符的单词
我已经开始编写代码,将用户的段落分成一个列表,但我很难遍历列表并找到特殊字母的每个实例。
这是我目前所拥有的:
def rareChar(words):
rareWords = 0
rareChars = ['j', 'x', 'q', 'z']
for astring in words:
wds = words.split()
for char in wds:
if char in rareChars:
rareWords = rareWords + 1
return rareWords
def CoolPara(words):
print(rareChar(words), 'word(s) with a rare character')
# DO NOT CHANGE CODE BELOW
print(CoolPara(input("Enter: ")))
如果我使用示例输入运行,我会得到“0 个带有稀有字符的单词”的输出。我该如何解决这个问题才能获得预期的输出。任何帮助将不胜感激,因为我对编码还比较陌生
还有一个简短的说明:我只被允许使用 split() 和 Len() 的方法/函数
【问题讨论】:
-
.index应该做的工作 -
您应该遍历输出并添加一些打印语句以确保满足语句和条件。
-
错字。内循环上面的行不应该是 wds = astring.split()
-
for astring in words:的目的是什么? -
从变量名来看,我觉得你很困惑。将“for astring in words:”更改为“for word in words.split():”。然后将“for char in wds:”改为for char in word:”。然后删除“wds = words.split()”。
标签: python python-3.x