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

2018-07-23  本文已影响0人  S_Valley_DiDa

一.基本概念

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)

上一篇下一篇

猜你喜欢

热点阅读