class Conjugaison:
def Simple_Present(self):
self.group = {"Je":'e', "Tu":'es', "Il ou
Elles":'e' , "Nous":'ons' ,"Vous":'ez' ,"Ils ou Elles":'ent'}
self.verb = str(input("Enter a veb here:"))
for keys in self.group:
print(keys,self.verb[:-2]+self.group(keys))
Em1 = Conjugason()
Em1.Simple_Present()
当我修改上面的代码时,我就是这样:
Enter a verb here: entrer
Vous entrez
Tu entres
Ils ou Elles entrent
Il ou Elles entre
Nous entrons
Je entre
我被期待这样的事情: Je entre ..... tu entres .... il ou elle entre ..... nous entrons ..... vous entrez ...... ils ou elles entrent。
我不知道我在哪里做错了。
谢谢!
答案 0 :(得分:0)
这里的类名是'Conjugaison' 但你在这里创造的对象是'Conjugason' Em1 = Conjugason()
调用与创建的类不同的类。
答案 1 :(得分:0)
我看到人们没有回答你问的实际问题。
当然,您调用的课程有一个拼写错误Conjugason
而不是Conjugaison
,但这里不会产生任何错误。
但您抱怨打印顺序不正确。 好吧,在Python中,标准字典不是有序的。
我建议您使用OrderedDict。这样,你的for循环将遵循你在创建字典时定义的顺序。
from collections import OrderedDict
class Conjugaison:
def Simple_Present(self):
self.group = OrderedDict([("Je", "e"), ("Tu", "es"), ("Il ou Elle", "e"),
("Nous", "ons"), ("Vous", "ez"),
("Ils ou Elles", 'ent')])
self.verb = str(input("Enter a verb here:"))
for keys in self.group:
print(keys,self.verb[:-2]+self.group(keys))
Em1 = Conjugaison()
Em1.Simple_Present()
PS:我是法国人,你可以添加一个额外的逻辑。如果您的动词以元音开头,则需要使用J'
而不是Je
。
对于单数第三人,它将是Il ou Elle
而不是Il ou Elles
。
这里没有真正需要的课程,你可以在课堂外调用你的功能。
答案 2 :(得分:0)
字典是unordered
关联表。
这意味着当您使用for-each循环遍历它时,您不能依赖键值对的顺序。这不是你的错误,它是字典的设计行为。
您可以拥有一个键列表,这些键将保留您对输出的顺序:
subjects = ['Je', 'Tu', 'Il ou Elle', 'Nous', 'Vous', 'Ils ou Elles']
terminaisons = ['e', 'es', 'e', 'ons', 'ez', 'ent']
for subject, terminaison in zip(subjects, terminaisons):
print(subject, terminaison)
但这并没有使用字典。 如果要播放和测试字典,可以编写以下内容:
conjugaisonTable = {subject: terminaison for subject, terminaison in zip(subjects, terminaisons)}
for subject in subjects:
print(subject, conjugaisonTable[subject])