python實驗課代碼心得

  1. 在交互狀態下格式化打印

image.png
image.png
image.png
image.png
image.png
①注意看 % 和 {} 格式化打印的區別,將它們與C語言的格式化打印區分開來。算法


2.凱撒加密算法
①原理:字母表一共有26個英文字母,加密時,咱們須要將某個明文字母作N位偏移獲得密文,這個N最多爲26,並且偏移爲26時和偏移爲0時同樣,明文和密文對應相等,實際上能夠說最大的偏移量爲25,這裏的偏移量是這個加密解密算法的核心。app

公式:n爲偏移量dom

加密公式: f(a)=(a+n)mod 26
解密公式: f(a)=(a+26-n) mod 26

③代碼:函數

import string
def kaisa(s, k):     //定義函數接受一個字符串s和一個偏移量k
lower = string.ascii_lowercase     //小寫字母
upper = string.ascii_uppercase   //大寫字母
before = string.ascii_letters    //無偏移的字母順序小寫+大寫
after = lowerk] + lower[k] + upper(k] + upper[:k]   //偏移後的字母順序仍是小寫+大寫;分別把小寫字母和大寫字母偏移後再加到一塊兒

table = ' '.maketrans(before, after)  
//建立映射表,before一一對應到after中相應位置的字符
//注意:兩個字符串的長度要一致這裏的' '.maketrans()中的' '能夠換成str,也能夠寫成'sadwq';這裏只是形式化的做用。
//要清楚函數和方法實際上是不一樣的,函數前面不須要實例,好比len () . print (),而方法須要;這也是爲何之前寫的時候不懂何時前面要加變量,何時不要加(方法和函數是不同的,針對某個實例時,函數就變成了方法)

return s.translate(table)    //對s進行偏移即加密
s = input("請輸入一個字符串:")

3.隨機生成10個,六位數數字的驗證碼,保存爲其餘人沒法更改的格式加密

import random
code = [random.randint(100000, 999999) for x in range(10)]
acode = tuple(code)     //tuple()函數建立元組
print(acode)

image.png


4.隨機生成10個,6位大寫字母驗證碼spa

import random,string
code = []
for i in range(10):
    x = ' '     //x起到刷新的做用,每向列表中插入一個值之後,選出下一個值時,要把上一個值清空
    for j in range(6):
        x = x + random.choice(string.ascii_uppercase)   #random.c.haice(seq)函數:從非空序列中隨機選取一個數據並返回,該序列能夠是list、tuple、str、set。默認選一個
    code.append(x)
print(code)

image.png


5.隨機生成10個,6位大寫字母驗證碼,且不可重複。code

import random,string
code = set()
while len(code) != 10:  //len ()函數能夠用於求list、tuple、dict中的元素個數,也能夠用於求str的長度
    x = ''
    for i in range(6):
        x = x + random.choice(string.ascii_uppercase)
    code.add(x)         //集合中增長元素的方法是code.add(seq)
print(code)

image.png


6.現有八部電影對其評分,有1-10分。
①用字典記錄下其豆瓣評分,並輸出字典blog

films = {'肖申克的救贖':9.7, '摔跤吧!爸爸':9.0,'阿甘正傳':9.5,'我和個人祖國':8.0,'哪吒之魔童降世':8.5, '千與千尋':9.3,'瘋狂動物城':9.2,'攀登者':6.5}
print(films)

image.png

②現又新出了兩部影片及其評分(中國機長: 7.0,銀河補習班: 6.2),將此影評加入1)中的字典中,同時輸出字典中全部的影片名稱。ci

films_new = {'中國機長':7.0,'銀河補習班':6.2}
films.update(films_new)  #字典中元素的插入 dict.update()函數
print("全部影片名稱: ", films.keys())

image.png

③ 找出②中的字典中影評得分最高的影片。字符串

③print("影片得分最高的影片: ", max(films,key=films.get))  //max(seq,key=None)函數的用法。dict.get(key)返回指定鍵的值
//因此max(films,key=films.get))返回films字典中最大值的鍵

image.png

相關文章
相關標籤/搜索