Skip to main content
 首页 » 编程设计

Python 3 异常 : TypeError: function missing 1 required positional argument: 'words'

2025年05月04日69pengyingh

我的函数需要一个参数词,但我希望程序在没有参数时不会崩溃。

def get_count(words): 
    try: 
        consonants_str = "bcdfghjklmnpqrstvwxyzBCDFGHJKLMNPQRSTVWXYZ" 
        vowels_str = "aeiouAEIOU" 
        consonants_ls = [] 
        vowels_ls = [] 
        words_ls = [] 
        result = {"vowels": 0, "consonants": 0}` 
 
        for element in consonants_str: 
            consonants_ls.append(element) 
 
        for element in vowels_str: 
            vowels_ls.append(element) 
 
        if type(words) != type(None): 
            for element in words: 
                words_ls.append(element) 
 
            for element in words_ls: 
                if element in vowels_ls: 
                    result["vowels"] += 1 
                if element in consonants_ls: 
                    result["consonants"] += 1 
                else: 
                    continue 
            else: 
                result["vowels"] = 0 
                result["consonants"] = 0 
 
    except TypeError: 
        result["vowels"] = 0 
        result["consonants"] = 0 
 
    answer = {"vowels": result["vowels"],"consonants": result["consonants"]} 
 
    return answer` 

所以如果我用

执行函数
print(get_count()) 

我希望程序不会向我显示标题中的错误。异常(exception)情况应该在 get_count 的 def 中,因为它应该是一个关闭的文件。我不在同一个文件中执行,所以异常应该独立于其他文件。

我希望你明白我的意思...

感谢您的回答! 无抗体

请您参考如下方法:

你没有向你的函数传递参数,当你声明你想要一个名为 words 和 def(words) 的参数时,像这样调用你的函数或使用您想要的任何字符串输入

print(get_count('AAAABBBKDKDKDKDA')) 

如果你想让程序在没有传递参数时退出,这样做(记住单词现在是一个元组)

import sys 
 
def get_count(*words): 
    if not words: # if words is empty, no argument was passed 
        sys.exit('You passed in no arguments') 
    else: 
        pass # do something with the items in words