蓝桥杯备赛(元音大写:2266)

蓝桥杯备赛(元音大写:2266)

问题描述

输入一个由小写英文字母组成的字符串,请将其中的元音字母 (a, e, i, o, u) 转换成大写,其它字母仍然保持小写。

输入格式

输入一行包含一个字符串。

输出格式

输出转换后的字符串。

样例输入

lanqiao

样例输出

lAnqIAO

题解1

# 请在此输入您的代码
s = input()  # 从标准输入读取一个字符串
ans = ''  # 初始化一个空字符串,用于存储转换后的结果
for i in s:  # 遍历输入字符串中的每个字符
  if i == 'a' or i == 'e' or i == 'i' or i == 'o' or i == 'u':  # 检查当前字符是否为元音字母
    i = chr(ord(i) - 32)  # 如果是元音字母,将其转换成大写字母。ord(i)获取字符的ASCII值,减32后通过chr()转换成大写字母
  ans += i  # 将当前字符(无论是否转换)追加到结果字符串中
print(ans)  # 输出转换后的字符串

题解2

# 请在此输入您的代码
s = input()  # 从标准输入读取一个字符串
x = 'aeiou'  # 定义一个包含所有小写元音字母的字符串
ans = ''  # 初始化一个空字符串,用于存储转换后的结果
for i in s:  # 遍历输入字符串中的每个字符
  if i in x:  # 检查当前字符是否在元音字母字符串x中
    i = i.upper()  # 如果是元音字母,使用upper()方法将其转换成大写字母
  ans += i  # 将当前字符(无论是否转换)追加到结果字符串ans中
print(ans)  # 输出转换后的字符串

结论:

第二种方法在可读性和Pythonic方面更优。它使用了Python内置的字符串方法upper(),这使得代码更简洁、更易于理解。同时,使用in操作符检查元音字母也更符合Python的编程风格。因此,第二种方法更好。
此外,还可以考虑使用列表推导式和字符串的join方法来进一步简化代码,使其更加Pythonic:

s = input()
vowels = 'aeiou'
ans = ''.join([char.upper() if char in vowels else char for char in s])
print(ans)

这种方法将循环和条件判断压缩到一行中,使代码更加紧凑和高效。


你可能感兴趣的:(蓝桥杯,职场和发展)