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)

浙公网安备 33010602011771号