繁体   English   中英

如何消除此功能中的重复单词?

[英]How to get rid of a repeating word in this function?

我不知道这叫什么问题,并且在网站上找不到与此相关的东西。 我正在尝试制作一个功能,该功能在第一行中先打印出单词的第一个字母,然后再输出后两个字母,依此类推。 但是,我不确定如何防止重复完整的单词。 例如,在“酒吧”一词中,它应该

b
ba
bar
ba
b

但是我的函数重复两次bar。 谢谢!

a= []

def letters():
    x = input("Enter a string")
    count = 0
    for c in x:
        count +=1
    y = 0
    while y <= count:
        z = (x[:y])
        a.append(z)
        y += 1
    negWords = a[::-1]
    for words in a:
        print (words)
    for words in negWords:
        print (words)

您似乎在做一些不必要的工作,只是想打印一些东西。 您可以使用len来获取单词的长度,而不必经过循环来获取大小。

另外,似乎不需要收集列表中的数据。

为了通过while循环保持方法的本质,可以遍历单词的整个长度, 然后再次返回直到“ 0”。 因此,对我来说,我看到的长度是单词长度的两倍。 考虑到这一点,那将是我对while循环的控制。 然后,我只需检查增量器何时达到单词的长度,然后从那里开始倒退:

w = "bar"
l = len(w)

i = 0
while i <= l*2:
    if i > l:
        print(w[:(l - i)])
    else:
        print(w[:i])
    i += 1

输出:

b
ba
bar
ba
b

尝试这个:

negWords= a[:-1:-1]

第二次将不包括完整单词

另外,您的代码可能需要进行大量清理。 例如:

count = len(x)

比你拥有的更有意义

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM