美文网首页
计算机科学与编程导论 五章节 元组 字典 列表及常用函数方法

计算机科学与编程导论 五章节 元组 字典 列表及常用函数方法

作者: S_Valley_DiDa | 来源:发表于2018-07-23 23:49 被阅读0次

    一.基本概念

    1.元组:一些元素的不可变有序序列,其中单个元素可以是任意类型,且彼此间的类型可以不同。

    2.range函数会返回一个range类型的对象。range函数接受3个整数参数:start,stop和step。最常用在for循环中。

    3.列表:值的有序序列,每个值都可以有索引进行标识。列表使用的是中括号,元组使用的是小括号。

    常用列表方法:

    1).ls.extend(object)

    向列表ls中插入object中的每个元素,object可以是字符串,元组和列表(字符串“abc”中包含3个元组),相当于ls和object合并。注意:object如果是整型,必须以列表的方式传入,不可以以整型或元组的方式传入

    2).ls.append(object)

    将object作为一个整体插入到ls最后,object可以是字符串,元组,列表和字典

    3).ls.insert(index, object)

    将object作为一个整体插入到ls指定的索引位置,object可以是字符串,元组,列表和字典

    4).ls.pop([index])

    删除指定索引位置的元素,返回被删除的元素,如果参数为空,则默认删除最后一个索引位置的元素。注意:有返回值

    5).ls.remove(value)

    删除指定的元素。注意:value是序列里面的值,不是索引

    6).ls.reverse()

    将列表中元素进行逆向排列

    7).ls.sort(cmp=None, key=None, reverse=False)

    默认将列表中元素进行升序排列,可以通过reverse参数将升序设为降序

    4.map()函数和lambda()函数

    python map(fun,[arg]+)函数最少有两个参数,第一参数为一个函数名,第二个参数是对应的这个函数的参数(一般为一个或多个list)。

    lambda表达式:有人说类似于一种匿名函数,通常是在需要一个函数,但是又不想费神去命名一个函数的场合下使用。

    5.字符串的常用方法

    1).string.count(sub[, start[, end]])

    计数字符串中某子集的数量,可以通过start和stop参数设置搜索范围

    2).len(string)

    获取字符串的长度

    3).list(string)

    字符串转列表

    4).string.join(iterable)

    列表转字符串,用于将序列中的元素以指定的字符string连接生成一个新的字符串。注意:iterable只能是字符串类型,否则会报出异常

    5).string.split([sep [,maxsplit]])

    用来根据指定的分隔符将字符串进行分割,不包含分隔符,结果存为列表,不指定sep时,默认将将空格作为分隔符

    6).string.islower()

    返回字符串中是否全为小写 --> True/False

    7).string.upper()

    将字符串全部转为大写

    6.字典

    字典是一种通过名字或者关键字引用的得数据结构,其键可以是数字、字符串、元组,这种结构类型也称之为映射。字典类型是Python中唯一內建的映射类型,基本的操作包括如下:

    1)len():返回字典中键—值对的数量;

    2)d[k]:返回关键字对于的值;

    3)d[k]=v:将值关联到键值k上;

    4)del d[k]:删除键值为k的项;

    5)key in d:键值key是否在d中,是返回True,否则返回False。

    二.作业练习

    题目:现在你将开始实现(完整的游戏)程序hangman, 它有一个输入参数 –用户需要去猜测的单词 secretWord(后续程序用到的变量名). 由它开始游戏程序Hangman用户与计算机的交互过程。确保你用到之前部分设计完成的辅助函数isWordGuessed, getGuessedWord, 和 getAvailableLetters.

    #单词是否在列表

    def isWordGuessed(secretWord, lettersGuessed):

        for i in secretWord:

            if i not in lettersGuessed:

                return False

        return True

    #返回单词猜测状态指示

    def getGuessedWord(secretWord, lettersGuessed):

        txt = ''

        for i in secretWord:

            if i in lettersGuessed:

                txt = txt + ' ' + i

            else:

                txt = txt + ' _ '

        return txt

    #返回单词猜测状态指示

    def getAvailableLetters(lettersGuessed):

        bz = 'abcdefghijklmnopqrstuvwxyz'

        txt = ''#返回的列表指示for i in bz:

    if i not in lettersGuessed:

    txt += i

        return txt

    #游戏主体

    def hangman(secretWord):

    lettersGuessed = []

    mistakesMade = 8

    print 'welcome to the game, Hangman!'

    while mistakesMade > 0.01 and not isWordGuessed(secretWord, lettersGuessed):

    #当猜测次数大于0 和 not true状态下(小于0游戏结束)

    print 'You have ',str(mistakesMade),' guesses left.'

    print 'Available letters:',getAvailableLetters(lettersGuessed)

    guess = raw_input('Please guess a letter:').lower()

    #猜测开始(.lower())为小写

    if guess in lettersGuessed:

    print "Oops! You've already guessed that letter:", getGuessedWord(secretWord, lettersGuessed)

    #猜测的单词在列表里,提示重复猜测,调用getGuessedWord返回单词猜测状态指示

    else:

    if guess in secretWord:

    lettersGuessed.append(guess)

    print 'Good guess:', getGuessedWord(secretWord, lettersGuessed)

    #猜测的单词在正确词语,将猜测的单词加入列表,调用getGuessedWord返回单词猜测状态指示

    else:

    lettersGuessed.append(guess)

    mistakesMade -= 1

    print 'Oops! That letter is not in my word:', getGuessedWord(secretWord, lettersGuessed)

    #猜测的单词不在正确词语,将猜测的单词加入列表,猜测次数-1,调用getGuessedWord返回单词猜测状态指示

    if mistakesMade > 0.01:

    print 'Congratulations, you won!'

    else:

    print 'Sorry, you ran out of guesses. The word was else.'

    #猜测结束后,猜测次数大于0下,返回成功,否则返回失败

    secretWord = chooseWord(wordlist).lower()

    hangman(secretWord)

    相关文章

      网友评论

          本文标题:计算机科学与编程导论 五章节 元组 字典 列表及常用函数方法

          本文链接:https://www.haomeiwen.com/subject/dmysmftx.html