python 小白自己写了几行,老是显示无效命令哪位大神指点一下错在了哪里?

favorite_languages={
	'jen':['python','ruby'],
	'sarah':['c'],
	'edward':['ruby','go'],
	'phil':['python','haskell'],
	}
for name,languages in favorite_languages.items():
	for language in languages:
		if str(len(languages))==1:
			print("\n"+name.title()+"has "+str(len(languages)+" favorite language.it's "+"\n\t"+language.title())
		else:
			print("\n"+name.title()+"has "+str(len(languages)+" favorite languages.they are "+"\n\t"+language.title())
	

 

1楼说的对啊,就是转字符串的时候 str(len(languages)) 少了个右括号,两个print 语句都少

 

另外,你的 if 里面用字符串和数字进行比较是几个意思,这不明摆着全为否都走 else 了

favorite_languages = {

    'jen': ['python', 'ruby'],

    'sarah': ['c'],

    'edward': ['ruby', 'go'],

    'phil': ['python', 'haskell'],

}

for name, languages in favorite_languages.items():

    for language in languages:

        if len(languages) == 1:
            print("\n" + name.title() + "has " + str(len(languages)) + " favorite language.it's " + "\n\t" + language.title())
        else:
            print("\n" + name.title() + "has " + str(len(languages)) + " favorite languages.they are " + "\n\t" + language.title())

print("\n"+name.title()+"has "+str(len(languages))+" favorite languages.they are "+"\n\t"+language.title())

  str这里少了个括号