描述
KiKi开始学习英文字母,BoBo老师告诉他,有五个字母A(a), E(e), I(i), O(o),U(u)称为元音,其他所有字母称为辅音,请帮他编写程序判断输入的字母是元音(Vowel)还是辅音(Consonant)。
输入描述:
多组输入,每行输入一个字母。
输出描述:
针对每组输入,输出为一行,如果输入字母是元音(包括大小写),输出“Vowel”,如果输入字母是非元音,输出“Consonant”。
示例1
输入:
Ab
输出:
VowelConsonant
解答:
解法一
list_alpha = []
while len(list_alpha) < 2:
try:
list_alpha.append(input())
except:
break
# print(list_alpha)
def sort_alpha(sort_name):
"""
整理输入的字母,变形为大写字母
:param sort_name: 输入的字母
:return: sort_name.upper() 整理后的字母
"""
return sort_name.upper()
# 使用map对列表内字母进行变形
list_alpha = map(sort_alpha, list_alpha)
for i in list_alpha:
if i in ('A', 'E', 'I', 'O', 'U'):
print('Vowel')
else:
print('Consonant')
解法二
list_alpha = []
while len(list_alpha) < 2:
try:
list_alpha.append(input())
except:
break
# print(list_alpha)
for i in list_alpha:
if i in ('A', 'E', 'I', 'O', 'U', 'a', 'e', 'i', 'o', 'u'):
print('Vowel')
else:
print('Consonant')
解法三
while True:
try:
print("Vowel" if input() in 'aeiouAEIOU' else 'Consonant')
except:
break
特殊解法
# 输入非单字母提示输入内容有误
list_alpha = []
while len(list_alpha) < 2:
try:
list_alpha.append(input())
except:
break
# print(list_alpha)
for i in list_alpha:
if (i.isalpha() is False) or len(i) > 1:
print('{0}不是单字母元素'.format(i))
elif i in ('A', 'E', 'I', 'O', 'U', 'a', 'e', 'i', 'o', 'u'):
print('Vowel')
else:
print('Consonant')
解析
题目考察包含关系##,解法多种多样,最简单的解法是解法3,特殊限制可以参考解法4。
要求是输入多组,每次输入1行,输出也是1行,判断输入的类型符合哪个条件。
1.输入1行,多组输入,直接以列表实现,每次输入使用append进行追加;输入可以使用特殊处理,也可不用特殊处理,此处使用map转换成大写进行判断,也可以直接判断;
2.完成输入后,即可进行输出的判断,这里for循环读取列表,逐一进行判断,符合对应条件进行输出。
3.在特殊解法里新增了对输入的判断,输人非单字母的情况会被拦截,故判断的时候先判断是否是非单字母,是单字母进入判断程序先匹配元音,匹配不到就是辅音。
2021年11月19日