python练习,不能使用find函数,命令中至少构建3个函数,要求python2.7版本,希望尽

python练习,不能使用find函数,命令中至少构建3个函数,要求python2.7版本,希望尽量容易理解些... python练习,不能使用find函数,命令中至少构建3个函数,要求python2.7版本,希望尽量容易理解些 展开
 我来答
neosicifore
2014-11-03 · TA获得超过2258个赞
知道小有建树答主
回答量:446
采纳率:66%
帮助的人:499万
展开全部
#coding=utf-8
'''
Created on 2014-11-03

@author: Neo
'''

def myFind(key, word):
    flag = False
    ret = []
    for i in range(0, word.__len__()):
        if key == word[i]:
            flag = True
            ret.append(i)        
    if flag:
        return ret
    else:
        return flag
    
def setSecretWord():
    word = raw_input("Enter the secret word(all in lowercase):")  
    ret = []
    for i in range(0, word.__len__()):
        ret.append(word[i])       
    return ret

def showWord(word):
    show = ['*']*word.__len__()
    i = 1
    while True:
        print "Word so far: %s" % ''.join(show)
        key = raw_input("Take guess number %d:" % i)
        flag = myFind(key, word)
        if flag:
            for k in range(0,flag.__len__()):
                show[flag[k]] = key
            print 'Got it.\r\n'
        else:
            print 'Sorry.\r\n'
        i += 1
        ret = myFind('*', ''.join(show))
        if ret == False:
            print "Congratulations. You correctly guessd the word: %s\r\n" % ''.join(word)
            break
            

def main(again):
    if again == 'y':
        word = setSecretWord()
        print "============================================"
        showWord(word)
        again = raw_input("Do you want to play one more time?y/n?")
        main(again)

if __name__ == "__main__":  
    main('y')

运行结果:

Enter the secret word(all in lowercase):hello

============================================

Word so far: *****

Take guess number 1:e

Got it.


Word so far: *e***

Take guess number 2:s

Sorry.


Word so far: *e***

Take guess number 3:l

Got it.


Word so far: *ell*

Take guess number 4:h

Got it.


Word so far: hell*

Take guess number 5:o

Got it.


Congratulations. You correctly guessd the word: hello


Do you want to play one more time?y/n?y

Enter the secret word(all in lowercase):two

============================================

Word so far: ***

Take guess number 1:e

Sorry.


Word so far: ***

Take guess number 2:

..................

追问
十分感谢
wodesitanfu
2014-11-03 · TA获得超过2235个赞
知道大有可为答主
回答量:1908
采纳率:80%
帮助的人:889万
展开全部
没看懂输入和输出的关系
追问
猜单词的一个游戏
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
百度网友f0f9883
2014-11-03 · TA获得超过317个赞
知道小有建树答主
回答量:258
采纳率:100%
帮助的人:157万
展开全部
简单,回家之后给你代码
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
匿名用户
2014-11-03
展开全部
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
收起 更多回答(2)
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式