化身天使的博客

python学习笔记第2章:计算

2.1运算符

==    判断是否相等,返回布尔值,一个=是赋值,=赋值优先级高于判断

is 判断是否引用同一个数据,返回布尔值true or false,不同于==,

判断none时,可用is或is not,不能用==,none逻辑运算时,

看作false

!=     不等于

 

a=5,b=6

print('a<b ',a<b)   返回true,直接布尔运算

false    None ,  0,  “”, [] {}

 

2.2数学计算

b  /  c 正常除法 15 / 2 = 7.5

b  //  c 取整15 // 2 = 7  

b  % c 取余15 % 2 = 1

a,b = divmod(7,3)    #同时计算7除以3的商和余数

b  **  5          b的五次方

round(user_gdl, 8)   #小数点后保留8位

“b” > “a”     #字符串可直接比较大小, 大小写字母不能比较

import math

math.ceil(7.5)    #向上取整,得到8

float('nan')       #获取nan类型,不分大小写

2.3随机数

from random import randint

from random import random

from random import choice   

randint(6,9)            输出整数6~9之间的随机数,包含6和9         

random()              输出0.0到1.0之间的随机小数       

 

l = [1,2,3]

choice(l)              #从列表l随机选一个元素

 

 

 

 

 

2.4ASCII码转换

chr(97)   #数字97转为ascii码对应的字符

ord(a)    #字符转ascii码对应的数字

 

2.5 rsa加解密

2.5.1 生成秘钥

import rsa

open_pem, self_pem = rsa.newkeys(2048)    # 生成公钥、私钥

#私钥

self_pem = self_pem.save_pkcs1()  # 保存为 .pem 格式

with open("self.pem", "wb") as x:  # 写入私钥到文件

    x.write(self_pem)

#公钥

open_pem = open_pem.save_pkcs1()  

with open("open.pem", "wb") as x:  

x.write(open_pem)

 

2.5.2 加解密

import rsa

#解密

def decryption(b):

    with open("self.pem", "rb") as x:   #读取私钥

        self_pem = rsa.PrivateKey.load_pkcs1(x.read())    

        self_pem = rsa.decrypt(b, self_pem)

 #解密的数据是二进制类型

        return  str(self_pem, encoding="utf-8")  #转为字符串

#加密   

def encryption(b):

    with open("open.pem", "rb") as x:

        open_pem = x.read()

        open_pem = rsa.PublicKey.load_pkcs1(open_pem) # load 公钥

#加密时需要二进制类型,

        b = bytes(b, encoding="utf8")     #字符串转二进制

        return rsa.encrypt(b, open_pem)  

posted @ 2021-08-07 19:42  化身天使  阅读(63)  评论(0)    收藏  举报