Python 设置要计数的循环
我是:Python 设置要计数的循环,python,loops,count,Python,Loops,Count,我是: 以字符串形式获取用户输入 使用嵌套for循环计算每个字母的出现次数 现在,假设一切都是小写的 这是我所寻求的理想输出 please enter a sentence: this is a test a : 1 e : 1 h : 1 i : 2 s : 3 t : 3 到目前为止,在Python中,我可以做到这一点: sentence = input("Please enter a sentence: ") 我知道答案需要一个计数器和一个嵌套的for循环 for alph
please enter a sentence: this is a test
a : 1
e : 1
h : 1
i : 2
s : 3
t : 3
到目前为止,在Python中,我可以做到这一点:
sentence = input("Please enter a sentence: ")
我知道答案需要一个计数器和一个嵌套的for循环
for alpha in
['a','b','c',........,'z']:
您不能使用采集模块中的内置函数 只需从“集合”模块导入计数器,然后执行以下操作:
cString = Counter(SomeString)
#return the cString object
#returns the object in order of occurrence.
cString.most_common
编辑:
然而,如果像我假设的那样,这是家庭作业,你需要以最基本的方式做(并且不给你答案),那么这些就是你需要采取的步骤
无论如何,这里有一个提示:在这个循环中,你想知道
alpha
在句子中出现了多少次,对吗?所以,您可以在句子:
中对alpha2执行,然后在alpha==alpha2:
时比较。你能从那里做些什么?否决票并不是对你个人的反映,而是对你的问题是让网站(一个有好的、广泛有用答案的问题库)变得更好还是更差的反映。如果您打算像这样以个人的眼光看待问题,那么您不会从堆栈溢出中得到太多帮助。我给了你一个提示,Jared Reeves给了你一个可能不是你想要的答案,加上一个可能是的提示,你是提前出来的,对吧?有一些方法可以避免将句子中的每个字母与字母表中的每个字母进行比较,例如。,通过将其中一个序列转换为集合
或dict
,它可以立即执行查找,而不是使用额外的循环。但我现在还不担心。你还没有学过这方面的知识,而且很明显你被直接要求编写两个嵌套循环,所以两个嵌套循环并不是最有效或最简洁的方法这一事实并不成问题。事实上,在你编写代码之后,如果你能找出嵌套循环让你感到不舒服的原因,问你的老师为什么带计数器的版本要快得多,你可能会学到一些东西,给老师留下深刻印象。再说一次,你也可能会跳到前面,打乱老师僵硬的教案,从而惹恼老师;你可能比我更了解他,可以自己决定。:)我同意,但我是那种不会接受答案并继续回答的人,我会一直看下去,直到我对它进行反向工程,并理解它说这就是我所在的地方这是一个测试,测试abc在['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']:对于句子中的字母:如果abc==字母:打印(abc),这不符合“痛苦的基本”的要求,尤其是在没有解释它是如何工作的情况下。它也不提供设计的输出,这显然是按字母顺序排列的,至少不是最常见的,很难想象OP会在没有帮助的情况下想出如何做到这一点。我称之为基本输出,但我也假设这是为了某种家庭作业。因此,我给出了我将如何实现这一目标的答案。是的,它是不符合规格的,但我给了这个,以防我弄错了,这不是家庭作业。谢谢大家,我需要帮助构建它。这是一个学校项目的问题,但不是全部问题这只是问题的一小部分我只是不确定如何构造for循环我可以得到输入(简单),然后我不确定如何在['a','b',…,'z'中使用for alpha在for循环中的一部分,以字母顺序向下显示输出,而不显示没有字符的输出。我想我需要一个for循环来计数,但我们不能使用导入字符串或任何计数模式。只是基本的循环。我们几乎还没有讨论过。您需要在外部有一个循环来循环alpha列表,以及一个内部循环(在字符串上),用于根据alpha的当前位置检查/计数字符串。这有帮助吗?谢谢,今晚我会试一试。这个项目周四到期,但是。我想我能理解第二部分。我们刚刚学习了for循环和嵌套for循环,所以我不确定如何设置它。谢谢你的回复。如果我需要更多的帮助,我会回来的
sentence = input("Enter the sentence: ")
count = 0
sentence = sentence.lower()
for letters in ['a','b','c','d','e','f','g','h','i','j','k','l','m','n','o','p','q','r','s','t','u','v','w','x','y','z']:
for letter in sentence:
if letters == letter:
count += 1
if (count != 0):
print (letters,":",count)
count = 0