【问题标题】:python how to use a for loop to print out vowels in a string [duplicate]python如何使用for循环打印出字符串中的元音[重复]
【发布时间】:2019-03-01 16:59:33
【问题描述】:
我需要使用 for 循环按照它们出现的顺序打印出 horton 中的元音,这就是我目前所拥有的。
horton = "A person's a person, no matter how small."
vowels = "aeiouAEIOU"
for letters in horton:
if letters == vowels[0:9]:
print(letters)
【问题讨论】:
标签:
python
loops
for-loop
【解决方案1】:
单线:
print(''.join([i for i in horton if i.lower() in 'aeiou']))
输出:
Aeoaeooaeoa
如果需要换行符:
print('\n'.join([i for i in horton if i.lower() in 'aeiou']))
输出:
A
e
o
a
e
o
o
a
e
o
a
或正则表达式:
import re
print(''.join(re.findall(r'[aeiou]',"mississippi")))
输出:
Aeoaeooaeoa
如果换行:
import re
print('\n'.join(re.findall(r'[aeiou]',"mississippi")))
输出:
A
e
o
a
e
o
o
a
e
o
a
【解决方案2】:
欢迎来到 StackOverflow!
将if letters == vowels[0:9]: 替换为if letters in vowels: 将解决您的问题。
简单解释:== 将检查左侧元素是否与右侧元素相同,在您的情况下,== 左侧是单个字母,而右侧是“aeiouAEIO”(是的,有一个大写的 U 也不见了),它们在任何情况下都不可能相同。
完整节目:
horton = "A person's a person, no matter how small."
vowels = "aeiouAEIOU"
for letters in horton:
if letters in vowels:
print(letters)
# A
# e
# o
# a
# e
# o
# o
# a
# e
# o
# a