这个程序是一个元音检查器,接受来自命令行的参数,但它不能正常工作。为什么计数总是返回0?这有什么不对?
import sys
string = sys.argv[1:]
def is_vowel(c):
vowel = (c == 'a' or c == 'e' or c == 'i' or c == 'o' or c == 'u' or c == 'y')
return vowel
def count_vowels(string):
count = 0
for v in string:
if is_vowel(v) == True:
count += 1
return count
print(count_vowels(string))
编辑:当我将string = sys.argv [1:]更改为string = sys.argv [1]
时,我发现该程序有效有人可以解释为什么会这样吗?
答案 0 :(得分:1)
string
是list
,因为您将其设置为sys.argv[1:]
argv
。因此,当您遍历string
时,实际上是在迭代其元素而不是实际的str
。
如果您想进行多项输入,可以尝试:
for i in sys.argv[1:]:
print(count_vowels(i))
答案 1 :(得分:0)
这将有效
string = sys.argv[1:]
def is_vowel(c):
vowel = (c == 'a' or c == 'e' or c == 'i' or c == 'o' or c == 'u' or c == 'y')
return vowel
def count_vowels(string):
count = 0
for v in string:
if is_vowel(v) == True:
count += 1
return count
for i in string:
print(count_vowels(i))