创建一个名为countVowels的程序.py的函数接收字符串,然后打印字符串中唯一元音的数量(不管是大写还是小写).

countVowels.py

import sys

def count_vowels(args):
    vowels = set()

    for arg in args:
        for char in arg:
            if char.lower() in 'aeiou':
                vowels.add(char)
    return len(vowels)

print(count_vowels(sys.argv[1:]))

Test Cases

python3 countVowels.py Data
python3 countVowels.py 'Python Python'
python3 countVowels.py 'eiOuayOI j_#Ra'

The following is the error message displayed:

Traceback (most recent call last):
  File "countVowels.py", line 14, in <module>
    count_vowels(args)
NameError: name 'args' is not defined

推荐答案

对,因为它没有定义.你需要通过考试.函数的argv子集.现在,您正在通过覆盖参数args来丢弃它.

您应该做的是删除函数中的sys.argv引用:

def count_vowels(args):
    count = 0 
...

并将主菜单更改为:

count_vowels(sys.argv[1:])

改善效果追踪

要获得唯一元音的数量,你应该将它们收集到一个集合中,然后计算集合的长度.

def count_vowels(args):
    vowels = set() 
    for arg in args:
        for char in arg:
            if char.lower() in 'aeiou':
                vowels.add(char)
    return len(vowels)

print(count_vowels(args))

Python相关问答推荐

为什么符号没有按顺序添加?

如何请求使用Python将文件下载到带有登录名的门户网站?

Pre—Commit MyPy无法禁用非错误消息

如何设置视频语言时上传到YouTube与Python API客户端

所有列的滚动标准差,忽略NaN

如何在Pyplot表中舍入值

手动设置seborn/matplotlib散点图连续变量图例中显示的值

交替字符串位置的正则表达式

在Google Drive中获取特定文件夹内的FolderID和文件夹名称

如何使用正则表达式修改toml文件中指定字段中的参数值

统计numpy. ndarray中的项目列表出现次数的最快方法

如何使用matplotlib查看并列直方图

获取git修订版中每个文件的最后修改时间的最有效方法是什么?

Python OPCUA,modbus通信代码运行3小时后出现RuntimeError

来自Airflow Connection的额外参数

当我定义一个继承的类时,我可以避免使用`metaclass=`吗?

Polars定制函数返回多列

使用xlsxWriter在EXCEL中为数据帧的各行上色

Numpy`astype(Int)`给出`np.int64`而不是`int`-怎么办?

多个布尔条件的`jax.lax.cond`等效项