python入门教程NO.3 用python破解谍报密码

本文涉及的python基础语法为:列表及其方法

列表

咱们发现了一段存在[]中的谍报密码,为了破解他,咱们必须先来学习一下,这个存放着谍报密码的[]python

  • 列表是python内置的一种序列,其余的序列咱们后面会一一介绍
  • 序列中的每一个元素都分配一个数字 - 它的位置,或索引,第一个索引是0,第二个索引是1,依此类推
  • 建立一个列表,只要把逗号分隔的不一样的数据项使用方括号括起来便可。以下所示
list1 = ['西游记', '三国演义', '水浒传', '红楼梦']   #字符串格式必定要记得加上引号
list2 = [2, 4, 6, 8]  #一段偶数序列

读取列表的值

上面咱们讲到了列表的索引,咱们能够经过列表的索引来获取它的元素,示例以下:app

list1 = ['西游记', '三国演义', '水浒传', '红楼梦']   #字符串格式必定要记得加上引号
print(list1[0])    #list1[0]就是'西游记'的索引
#输出:西游记   

print(list1[1])    #list1[1]就是'三国演义'的索引
#输出:三国演义   

print(list1[2])     #list1[2]就是'水浒传'的索引
#输出:水浒传    

print(list1[3])    #list1[3]就是 '红楼梦'的索引
#输出:红楼梦

列表的切片

列表的切片格式是list[start:end:step]函数

  • start:起始索引,从0开始,-1表示结束
  • end:结束索引
  • step:步长,步长为正时,从左向右取值。步长为负时,反向取值

注意切片的结果不包含结束索引,即不包含最后的一位,一般咱们称为 左闭右开, -1表明列表的最后一个位置索引学习

list1 = ['西游记', '三国演义', '水浒传', '红楼梦'] 

#从左至右,list1的元素用正向的索引来取值的方式:
list1[0], list1[1], list1[2], list1[3]

#从左至右,list1的元素用反向的索引来取值的方式:
list1[-4], list1[-3], list1[-2], list1[-1]

若是我只想要list1的前三个元素,该怎么写呢?code

list1 = ['西游记', '三国演义', '水浒传', '红楼梦'] 

print(list1[0 : 3])
#输出:['西游记', '三国演义', '水浒传']

注意切片的左闭右开原则,不包含结束索引,即不包含最后的一位

假若有一组从0-10的列表,咱们只想要这个列表里面的全部偶数元素,那么该怎么取值呢?对象

list2 = [0 , 1 , 2 , 3 , 4 , 5 , 6 , 7 , 8 , 9 , 10]

print(list2[0 : 11 : 2])    #注意左闭右开,为了取得元素10,因此咱们的索引值要+1
#输出:[0, 2, 4, 6, 8, 10]

列表脚本操做符

表达式 描述 结果
len( [0 , 1 , 2 , 3 , 4 , 5 ]) len()获取列表的长度 6
[1, 2, 3] + [4, 5, 6] + 表示多个列表组合 [1, 2, 3, 4, 5, 6]
['逻辑课'] * 2 * 表示重复列表 ['逻辑课' , '逻辑课']
5 in [1, 2, 5] in 表示元素是否存在于列表中 True

列表的函数

函数 描述
cmp(list1, list2) 比较两个列表的元素
len(list) 列表元素个数
max(list) 返回列表元素最大值
min(list) 返回列表元素最小值
list(seq) 将元组转换为列表(后面咱们会讲到元组)

列表的方法

方法 描述
list.append(obj) 在列表末尾添加新的对象
list.count(obj) 统计某个元素在列表中出现的次数
list.extend(seq) 在列表末尾一次性追加另外一个序列中的多个值(用新列表扩展原来的列表)
list.index(obj) 从列表中找出某个值第一个匹配项的索引位置
list.insert(index, obj) 将对象插入列表
list.pop([index=-1]) 移除列表中的一个元素(默认最后一个元素),而且返回该元素的值
list.remove(obj) 移除列表中某个值的第一个匹配项
list.reverse() 反向列表中元素
list.sort(cmp=None, key=None, reverse=False) 对原列表进行排序

如何破解谍报密码?

如今个人手头有这样一份谍报密码,请你按照提示完成密码的破解,下面,让咱们来开始吧!排序

report = [
  'u', 'b', '1', 't', 's', '0', '3', '9', 'k', 'b',
  '4', 'n', ' ', '7', 'b', 'f', 'h', 'r', '3', '6',
  's', 'v', 'f', ' ', '-', 'z', 'e', 'b', '8', '5',
  'ə', 'j', 'u', '2', 'o', 'l', '8', 'b', 'i', 'q',
  'b', '7', '9', 'b', 'm', 'i', 's', '3', 'i', '8',
  '$', 'u', '0', 't', '9', ';', 'q', 'w', ' ', '!',
]

#取出列表 report 中第 12 到 13 个元素(包含 12 和 13),存放在到变量里,好比 secret 变量里;
#列表 secret 尾部追加 report 列表中最中间的一个元素;
#列表 secret 尾部追加 report 列表中元素'b'出现的次数
#列表 secret 尾部追加 report 列表中最后的两个元素;
#将字符串'ʌo'插入到列表索引 secret[3]的位置
#使用print(''.join(secret))将列表 secret 转为字符串并打印到屏幕上。

如今请按照上面的提示来破解这封谍报,看看这位它写了什么信息。索引

问题的中涉及的python列表方法都已经在上面的表格里面
相关文章
相关标签/搜索