python判断是元音还是辅音

描述

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日

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值