从字符串中查找和打印元音

时间:2017-09-24 08:40:12

标签: python-3.x

学习作业(使用python-3):

对于研究作业,我需要编写一个程序,打印字符串中所有元音的索引,最好使用'while-loop'。 到目前为止,我已经设法设计了一个'for-loop'来完成工作,但我肯定需要一些关于'while-loop'的帮助

for-loop solution:

string = input( "Typ in a string: " )
vowels = "a", "e", "i", "o", "u"
indices = ""

for i in string:
    if i in vowels:
        indices += i
print( indices )

while循环解决方案:

string = input( "Typ in a string: " )
vowels = "a", "e", "i", "o", "u"
indices = ""

while i < len( string ):
    <code>
    i += 1
print( indices )

使用'index()''find()'会在这里使用吗?

2 个答案:

答案 0 :(得分:0)

您可以通过执行string[x]来获取字符串索引x处的字符!

i = 0 # initialise i to 0 here first!
while i < len( string ):
    if string[i] in vowels:
        indices += str(i)
    i += 1
print( indices )

但是,indices str是否真的合适?我不这么认为,因为你不会在指数之间有分隔符。字符串"12"是否意味着索引1和2有2个元音,或者一个元音索引12?您可以尝试使用列表来存储索引:

indices = []

您可以通过执行以下操作添加i

indices.append(i)
顺便说一句,你的for循环解决方案将打印元音字符,而不是索引。

如果您不想使用列表,您还可以在每个索引后添加额外的空格。

indices += str(I) + " "

答案 1 :(得分:0)

  

试试这个:

   string = input( "Typ in a string: " )
    vowels = ["a", "e", "i", "o", "u"]




        higher_bound=1
        lower_bound=0

        while lower_bound<higher_bound:
            convert_str=list(string)
            find_vowel=list(set(vowels).intersection(convert_str))
            print("Vowels in {} are {}".format(string,"".join(find_vowel)))

            lower_bound+=1

你也可以将higher_bound设置为len(string),然后它将打印结果与len的字符串一样多次。

由于这是您的学习作业,您应该自己查看并练习而不是复制粘贴。以下是解决方案的其他信息:

  

在数学中,两组A和B的交点A∩B是该组   包含A的所有元素也属于B(或   等价地,B的所有元素也属于A),但没有其他元素   元素。有关本文中使用的符号的说明,请参阅   到数学符号表。

在python中:

  

Python中的intersection()语法是:

     

A.intersection(* other_sets)

A = {2, 3, 5, 4}
B = {2, 5, 100}
C = {2, 3, 8, 9, 10}

print(B.intersection(A))
print(B.intersection(C))
print(A.intersection(C))
print(C.intersection(A, B))