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列表方法都已經在上面的表格裏面
相關文章
相關標籤/搜索