【发布时间】:2020-08-08 03:30:33
【问题描述】:
我是 python 编程的新手。现在在程序的一部分中,我想为频率分析定义一个类并以漂亮的样式打印它:
Letter Occurrence Percentage
a 12 4.12%
b 7 3.15%
c 21 7.67%
... ... ...
这是我的代码:
class Analysis():
def __init__(self, sentence, freq_dict = {}):
self.sentence = sentence
self.freq_dict = freq_dict
@property
def frequency(self):
print("\t\tLetter\t\tOccurrence\t\tPrecentage")
for letter, occurrence in enumerate(self.freq_dict):
return f"\t\t{letter}\t\t{occurrence}\t\t{round(occurrence*100/len(sentence), 2)}%"
@frequency.setter
def frequency(self, sentence):
self.sentence = sentence
for letter in sentence:
freq_dict[letter] = self.sentence.count(letter)
return freq_dict
sentence = input("please enter your sentence: ").lower()
object = Analysis(sentence)
print(object.frequency())
我想在类中定义输入语句,而不是全局变量。
也许它可以更短或改变一些行。 (而不是字典,也许我可以使用 collections.Counter(sentence),它返回一个元组)。
【问题讨论】:
标签: python python-3.x class properties