python 返回‘tatktssat’字符串中‘t’所有的位置

def find_pos(str,tobefind):
    l=len(tobefind)
    def xiter():
        for i,c in enumerate(str):
            if c==tobefind[0] and str[i:i+l]==tobefind:
                yield i            
    return list(xiter())



另外用了这个小程序写了一个小游戏

猜4个字母的单词

根据提示输入:

def isWordGuessed(secretWord, lettersGuessed):
    for char in secretWord:
        if char in lettersGuessed:
            continue
        else:
            return False
    return True
def getGuessedWord(secretWord, lettersGuessed):
    s=''
    import string
    for char in secretWord:
        if char in lettersGuessed:
            s+=char
        else:
            s+='_ '
    return s
def getAvailableLetters(lettersGuessed):
    s=''
    import string
    for char in string.ascii_lowercase:
        if char in lettersGuessed:
            continue
        else:
            s+=char
    return s
def find_pos(str,tobefind):
    l=len(tobefind)
    def xiter():
        for i,c in enumerate(str):
            if c==tobefind[0] and str[i:i+l]==tobefind:
                yield i            
    return list(xiter())
def hangman(secretWord):
    print 'Loading word list from file...'
    print '%s words loaded.'%(len(secretWord))
    print 'Welcome to the game, Hangman!'
    print 'I am thinking of a word that is 4 letters long.'
    mistakesMade=8
    import string
    availableLetters=string.ascii_lowercase
    s='____'
    print '-------------'
    while '_' in s and mistakesMade:
        print 'You have %d guesses left.'%mistakesMade
        print 'Available letters: %s'%availableLetters
        c=raw_input('Please guess a letter:')
        if availableLetters.find(c)==-1:
            print 'Oops! You\'ve already guessed that letter:%s',s
        elif c in secretWord:
            #c在secretWord中的所有位置
            li=find_pos(secretWord,c)
            ss=s
            for i in li:
                if i:
                    s=ss[:i]
                else:
                    s=''
                s+=c
                s+=ss[i+1:]
                ss=s
            ss=availableLetters
            availableLetters=ss[:ss.find(c)]
            availableLetters+=ss[ss.find(c)+1:]
            print 'Good guess:%s'%s
        else:
            print 'Oops! That letter is not in my word:%s'%s
            mistakesMade-=1
            s2=availableLetters
            b=s2.find(c)
            availableLetters=s2[:b]
            availableLetters+=s2[b+1:]
        print '-------------'  
    if mistakesMade:
        print 'Congratulations, you won!'
    else:
        print 'Sorry, you ran out of guesses. The word was else. '
  
hangman('tatk')         


  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值