我坚持为什么我的代码不计算元音的数量(包括不区分大小写的字母),并打印一个句子,报告在单词“和”中发现的元音数量。
import sys
vowels = sys.argv[1]
count = 0
for vowel in vowels:
if(vowel =='a' or vowel == 'e' or vowel =='i' or vowel =='o' or vowel =='u' or vowel
=='A' or vowel =='E' or vowel =='I' or vowel =='O' or vowel =='U'):
count += 1
if count == 0:
print('There are 0 vowels in '.format(count))
elif count < 2:
print('There is 1 vowel in '.format(count))
else:
print('There are {} vowels'.format(count, vowels))
在我的终端机上:
用户$ python vowel_counter.py和
有0个元音
其中有0个元音
答案 0 :(得分:2)
sys.argv是运行参数的列表,其中第一个元素始终是您的运行文件。因此,您无需遍历文本,而是遍历参数['vowel_counter.py','and']。
您应该执行以下操作:
vowels=sys.argv[1]
答案 1 :(得分:0)
代码的主要问题之一是缩进,根据您提供代码的方式,检查count
的块在循环的每次迭代中运行。
第二,您没有输出要检查的单词,这可能表明您正在读取错误的参数。这是一些有效的代码-尽管像原始代码一样保存,但是有很多更好的方法可以执行此逻辑
import sys
vowels = sys.argv[1]
count = 0
for vowel in vowels:
if(vowel =='a' or vowel =='i' or vowel =='o' or vowel =='u' or vowel
=='A' or vowel =='E' or vowel =='I' or vowel =='O' or vowel =='U'):
count += 1
if count == 0:
print('There are 0 vowels in {}'.format(vowels))
elif count < 2:
print('There is 1 vowel in {}'.format(vowels))
else:
print('There are {} vowels in {}'.format(count,vowels))
注意:您的支票中缺少vowel =='e'
。
答案 2 :(得分:-1)
以下内容将处理在命令行中传递的单个或多个参数。像python vowel_count.py foo
和python vowel_count.py foo bar
$ cat vowel_count.py
import sys
args = sys.argv[1:]
print(args)
count = 0
for arg in args: # handling multiple commandline args
for char in arg:
if char.lower() in ['a','e','i','o','u']:
count += 1
print("The {} contains {} vowels".format(' ',join(args), count))