本文以总结和归类别人的知识点为学习目标,如有侵权,联系本人,可以删除。

文章目录

  • 第一章 机器学习
    • 1.1 DataFrame 新增列的方法
    • 1.2 推荐训练过程的系统
    • 1.3 安全领域下的机器学习注意事项
    • 1.4 keras实例学习-双向LSTM
  • 第二章 jupyter notebook
    • 2.1 Jupyter Notebook学习笔记
    • 2.2 扩展插件
  • 第三章 语言类
    • 3.1 PHP
    • 3.2 Python
      • 3.2.1 函数参数
      • 3.2.2 Python保留指定位数的小数
      • 3.2.3 返回真实商
      • 3.2.4 判断是否是数字
      • 3.2.5 Python之信息整理
      • 3.2.6 python 统计list中各个元素出现的次数
      • 3.2.7 np.vstack, np.hstack
      • 3.2.8 break,continue
      • 3.2.9 python 依赖版本符号~
      • 3.2.10 创建多级目录
      • 3.2.11 Python中“if __name__=='__main__':”理解与总结
      • 3.2.12 python如何求阶乘
      • 3.2.13 解决pycharm导入自己创建包错误的问题
      • 3.2.14 求列表中字符串中最长字符串
      • 3.2.15 报错TypeError: 'builtin_function_or_method' object is not subscriptable
      • 3.2.16 列表去重
      • 3.2.17 python如何以换行分割
      • 3.2.18 #!/usr/bin/env python 有什么用?
      • 3.2.18 Python3集合最常用三种操作
      • 3.2.19 Python3之字典的遍历
      • 3.2.20 Python推荐的库
      • 3.2.21 Python调用库求列表list的平均数--mean()函数
    • 3.3 Mysql
  • 第四章 快捷键
  • 第五章 操作系统
    • 5.1 Linux进程间通信的方式
  • 第六章 密码学
    • 6.1 统一安全管控之密钥管理KMS
    • 6.2 雪崩效应
  • 第7章 Web安全
    • 7.1 什么是SYN Flood攻击?
    • 7.2 Sqlmap基础用法、CTF实战及请求参数设置详解
    • 7.3 快速下载github项目
    • 7.4 Redis 常见漏洞利用方法总结
    • 7.5 HTML - 如何水平居中iframe?
    • 7.6 反弹shell汇总
    • 7.7 Python SSTI docker 端口映射问题
    • 7.8 2021-6 领英7亿条用户记录泄露事件
    • 7.9 WAF机制及绕过方法总结:注入篇
    • 7.10 常规36个WEB渗透测试漏洞描述及修复方法--很详细
  • 第8章 kali
    • 8.1 快捷键
    • 8.2 nl命令
    • 8.3 linux 用find查找文件名或字符串
  • 第9章 正则表达式
    • 9.1 通用正则, 抓取a标签href属性
    • 9.2 IP地址正则表达式
  • 第10 章 计算机网络
    • 10.1 HTTP keep-alive和TCP keepalive的区别
    • 10.2 简单聊聊 TCP 的可靠性
    • 10. 3 HTTP PUT方法利用的几种方式
    • 10.4 《网络安全基础》——习题集
    • 10.5 我终于知道post和get的区别
  • 第11章 编程题
    • 11.1 水仙花数
    • 11.2 加减乘除运算
    • 11.3 快速排序
    • 11.4 爬楼梯
    • 11.5 买口罩--01背包问题
    • 11.6 三角形三边数字求和
    • 11.7 shopee-数的划分
    • 11.8 shopee-数组的平衡点
    • 11.9 阿里 子集
    • 11.10 小米--合法IP
    • 11.11 阿里--小强爱数学
    • 11.20 加减乘除表达式

第一章 机器学习

1.1 DataFrame 新增列的方法

  • DataFrame 新增列的五种方法

推荐第一种和第二种办法。

打印结果,两个办法

print(df)
display(df) #推荐这一种

1.2 推荐训练过程的系统

尽量在ubuntu系统里面训练数据,还可以快照;
windows系统容易报错,同样的版本,前者可以运行,后者还报错。

1.3 安全领域下的机器学习注意事项

  • 安全领域下的机器学习注意事项

1.4 keras实例学习-双向LSTM

  • keras实例学习-双向LSTM进行imdb情感分类

  • keras实战教程二(文本分类BiLSTM)

  • Keras情感分析(Sentiment Analysis)实战—自然语言处理技术(2)

  • Keras(一)Sequential与Model模型、Keras基本结构功能

model=sequential()#初始化
model.add 添加层
model.compile 模型训练的BP模式设置
model.fit 模型训练参数设置和训练
evaluate()模型评估
predict()模型预测

第二章 jupyter notebook

2.1 Jupyter Notebook学习笔记

  • Jupyter Notebook学习笔记

ctrl+c 停止服务。

2.2 扩展插件

  • 打造实用的Jupyter Notebook 扩展插件

为了 安装Table of Contents这个插件。

需要重启jupyter notebook

# 安装并激活 jupyter_contrib_nbextensions,
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple flask
pip install jupyter_contrib_nbextensions
jupyter contrib nbextension install --user#安装并启用 Jupyter Nbextensions Configurator
pip install jupyter_nbextensions_configurator
jupyter nbextensions_configurator enable --user

第三章 语言类

3.1 PHP

  • php 给对象私有及受保护的成员变量赋值的几种方法
1.构造方法赋值
2.魔术方式赋值和调用:__set()、__get()
3.调用类常规方法传参赋值

tip:
魔术方法中,__set()方法可用,__get()方法报错。
纠正,__get()方法只有一个参数,也即属性名。
实例化的过程中,不能赋值,否则报错。默认调用默认值。

3.2 Python

3.2.1 函数参数

  • 11个案例讲透 Python 函数参数

参数类型以此为:必选参数,可选参数(有默认参数),可变参数元组类型,可变关键字参数字典类型。

tip:

*args: 在它前面有一个 *,这就表明了它是一个可变参数,可以接收任意个数的不指定参数名的参数。
args:代表参数的意思,arg:(函数的)自变量

**kw: kw 参数和上面的 *args 还多了一个 * ,总共两个 ** ,这个意思是 kw 是一个可变关键字参数,可以接收任意个数的带参数名的参数。
kw: key words,关键字

四种参数类型可以在一个函数中出现,但一定要注意顺序

def demo_func(arg1, arg2=10, *args, **kw):print("arg1: ", arg1)print("arg2: ", arg2)print("args: ", args)print("kw: ", kw)

试着调用这个函数,输出如下:

>>> demo_func(1,12, 100, 200, d=1000, e=2000)
arg1:  1
arg2:  12
args:  (100, 200)
kw:  {'d': 1000, 'e': 2000}

3.2.2 Python保留指定位数的小数

  • Python保留指定位数的小数

推荐 format()函数

format(1.23456, '.2f')

3.2.3 返回真实商

from __future__ import division #返回真实商

3.2.4 判断是否是数字

isdigit()—isdigit() 方法检测字符串是否只由数字组成

3.2.5 Python之信息整理

  • Python之信息整理

3.2.6 python 统计list中各个元素出现的次数

  • python 统计list中各个元素出现的次数

推荐第一种,利用字典来完成计数。

a = [1, 2, 3, 1, 1, 2]
dict = {}
for key in a:dict[key] = dict.get(key, 0) + 1
print (dict)

3.2.7 np.vstack, np.hstack

  • np.vstack, np.hstack

np.vstack(tup) 沿着竖直方向将矩阵堆叠起来
np.hstack(tup) 沿着水平方向将数组堆叠起来

3.2.8 break,continue

break,条件满足就终止循环;
continue,过滤某种信息;

3.2.9 python 依赖版本符号~

~ version

tensorflow 2.5.0 requires numpy~=1.19.2, but you have numpy 1.21.0 which is incompatible.

umpy~=1.19.2 的意思是 1.19.2=<1.19.3 ,1.19.4…<1.20.0

3.2.10 创建多级目录

os.makedirs(path)  #多层创建目录
os.mkdir(path)   #只能创建一层目录

3.2.11 Python中“if name==‘main’:”理解与总结

  • Python中“if name==‘main’:”理解与总结

当你要导入某个模块,但又不想改模块的部分代码被直接执行,那就可以这一部分代码放在“if name==‘main’:”内部。

3.2.12 python如何求阶乘

  • python如何求阶乘

推荐for和调用math库,递归的时候,python会报错的。

for方法

def for_num(n):num = 1if n == 0:return 1else:for i in range(1,n+1):num = num *ireturn num

math库

import math
value = math.factorial(6)
print(value)

3.2.13 解决pycharm导入自己创建包错误的问题

  • 解决pycharm导入自己创建包错误的问题

在自己的主目录上面

3.2.14 求列表中字符串中最长字符串

list = ['ale', 'apple', 'plea']
res = max(list, key=len, default='')
print(res)

注释:如果最长字符串多个长度一致,优先返回索引小的元素,且返回一个。
default:如果取不到默认返回的值,这里设置为空字符串。

3.2.15 报错TypeError: ‘builtin_function_or_method’ object is not subscriptable

  • TypeError: ‘builtin_function_or_method’ object is not subscriptable的一种错误情况

len(numbers)打成len[numbers]了,小括号打成了中括号,函数不能当字典用,因此返回 ‘builtin_function_or_method’ object is not subscriptable。

3.2.16 列表去重

  • Python对列表去重的4种方法

推荐下面这个方法:去重,再按照索引再次排序

orgList = [1,0,3,7,7,5]
formatList = list(set(orgList))
formatList.sort(key=orgList.index)
print (formatList)
--------结果
[1, 0, 3, 7, 5]

3.2.17 python如何以换行分割

  • python如何以换行分割
str1 = 'ab c\n\nde fg\rkl\r\n'
print (str1.splitlines())
#输出
['ab c', '', 'de fg', 'kl']

3.2.18 #!/usr/bin/env python 有什么用?

  • #!/usr/bin/env python 有什么用?

加上#!/usr/bin/env python
在执行脚本文件的时候,可以用./demo.py形式执行脚本

不加的话,相当于python demo.py

而,env python ,env | grep PATH 路径里去依次查找名为python的可执行文件。

3.2.18 Python3集合最常用三种操作

a={1,2}
b={3,2}
#求并集
a.union(b)
#求交集
a.intersection(b)
#求差集
a.difference(b)

结果

3.2.19 Python3之字典的遍历

  • Python3之字典遍历的5种方法

3.2.20 Python推荐的库

  • 哪些 Python 库让你相见恨晚?

3.2.21 Python调用库求列表list的平均数–mean()函数

  • Python中如何求列表list的平均数

3.3 Mysql

常规操作

进入数据库: myql -u root - p 123456
显示数据库: show database;
选择数据库 :(use mysql_name)
显示库的表: show tables;
查询数据: select * from tables_name where 条件

有用的查询:
当前的数据库,select database();
当前的版本,select version();
当前的用户,select user();

  • SQL注入 | exp()函数报错
  • 关于SQL注入的五大报错注入函数

floor()和exp()复现有错误,updatexml()和extarctvlaue()复现成功。

第四章 快捷键

1.   ctrl+shift+b ,书签关闭/打开,用于截图的时候,避免没有必要的打码。
2.  整体缩进:  tab
3. 整体取消缩进: tab+shift
4. 多行注释:ctrl+/
5. 多行取消注释:ctrl+/

第五章 操作系统

5.1 Linux进程间通信的方式

  • Linux进程间通信的几种方式

管道,套接字,共享内存,消息队列,信号,信号量。

第六章 密码学

6.1 统一安全管控之密钥管理KMS

  • 统一安全管控之密钥管理KMS

信息安全—>数据加密----->密钥相关问题---->硬件HSM(Hardware Security Module)成本高—>软硬件结合,KMS(Key Management Service)

架构图

6.2 雪崩效应

雪崩效应–一个小的因素导致意想不到的结果—输入发生微小的改变(比如,改变一个二进制位),输出结果和之前有很大差距。

DES加密;序列密码的生成;哈希函数都具有雪崩效应;
RSA加密不具有雪崩效应;

Skipjack是一个密钥长度为80位。

https有对称加密;非对称加密;密钥交换;哈希算法

非对称加密算法:DSA,RSA,SM2,SM9,
对称加密算法:DES,AES,3DES、DESX、Blowfish、IDEA、RC4、RC5、RC6、SM4、SM1、SM7
SM3:哈希算法

第7章 Web安全

7.1 什么是SYN Flood攻击?

  • 什么是SYN Flood攻击?

TCP三次握手过程:

SYN Flood攻击 原理:

7.2 Sqlmap基础用法、CTF实战及请求参数设置详解

  • Sqlmap基础用法、CTF实战及请求参数设置详解

7.3 快速下载github项目

  • 再也不怕访问不了GitHub 啦!

更换域名就可以,具体如下:

https://github.com/TonyChen56/WeChatRobothttps://hub.fastgit.org/TonyChen56/WeChatRobot


这个,只能下载,再用git上传的时候,登录失败。

7.4 Redis 常见漏洞利用方法总结

  • Redis 常见漏洞利用方法总结

利用 Redis 写入 Webshell
利用 Redis 写入 SSH 公钥
利用 Redis 写入计划任务
Redis 未授权访问漏洞在 SSRF 中的利用

7.5 HTML - 如何水平居中iframe?

  • HTML - 如何水平居中iframe?
<p align="center"><iframe src="http://www.google.com/" width=500 height="500"></iframe></p>

其中width和height将是html页面中iframe的大小。

7.6 反弹shell汇总

  • 反弹shell汇总

7.7 Python SSTI docker 端口映射问题

因为平台:启动的话默认参数
docker run -itd -P 镜像名称
-i: 以交互模式运行容器,通常与 -t 同时使用;
–interactive Keep STDIN open even if not attached
-t: 为容器重新分配一个伪输入终端,通常与 -i 同时使用;
–tty Allocate a pseudo-TTY
-d: 后台运行容器,并返回容器ID;
–detach Run container in background and print container ID

其中-P ,随机端口,但是SSTI,设置端口了,5000默认
先-p指定端口,和SSTI一致就行,再commit打包,再-P就可以啦。
commit:从容器创建一个新的镜像。

7.8 2021-6 领英7亿条用户记录泄露事件

  • 超7亿领英用户数据暗网出售
  • 英文原文链接

事件分析

上述链接,分享了三张图

第一张,暗网售卖信息

6月22日,有黑客在暗网平台出售超过7亿的领英用户数据,并发布了一个包含100万领英用户的样本数据集。

第二张,样本数据

从中可以看到用户全名、领英用户名、Facebook用户名、邮件地址、手机号码、职业数据、工资数据等。

第三张,研究人员与该黑客在telegram上的对话:

可以看出黑客对完整数据集要价5000美元,称该数据集是通过领英API获取的。

泄露的原因:很大可能是API。具体漏洞不得而知。

建议:
1:设置密码的时候,不同网站设置不同的密码,能定期更新最好了。
2:APP或网站,能不填写个人真实信息,尽量不填写,或者随意填写信息即可。

7.9 WAF机制及绕过方法总结:注入篇

  • WAF机制及绕过方法总结:注入篇

7.10 常规36个WEB渗透测试漏洞描述及修复方法–很详细

  • 常规36个WEB渗透测试漏洞描述及修复方法–很详细

第8章 kali

8.1 快捷键

进入退出终端全屏: F11
退出终端全屏: ctrl+alt+F7
   cp -r   --recursive   递归复制目录及其子目录内的所有内容cp --recursive testcases(连目录一块复制)  /opcode/(绝对路径)

8.2 nl命令

  • 每天一个 Linux 命令(11):nl 命令

nl命令在 linux系统中用来计算文件中行号。

8.3 linux 用find查找文件名或字符串

  • linux 用find查找文件名或字符串
find  |xargs grep -ri 'flag*' -l

第9章 正则表达式

  • 通用正则, 抓取a标签href属性

9.1 通用正则, 抓取a标签href属性

regex=re.compile(pattern) #匹配正则表达式
regex.findall(str)#寻找结果

9.2 IP地址正则表达式

正则表达式,从简单到精确,比如,匹配IP地址,四段,0-255。

先匹配四段,不考虑范围;

\d+.\d+.\d+.\d+

考虑三位数;

\d{1,3}.\d{1,3}.\d{1,3}.\d{1,3}

将0-255,分解,0-99,100-199,200-249,250-255

[1-9]?\d
1\d{2}
2[0-4]\d
25[0-5]

然后通过|和(),组合就可以了。

(([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5]).){3}([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])

第10 章 计算机网络

10.1 HTTP keep-alive和TCP keepalive的区别

  • HTTP keep-alive和TCP keepalive的区别

HTTP的keep-alive机制是用来复用TCP连接用的,而TCP的keepalive机制是用来保证TCP连接双方的连通性用的。

TCP keepalive时间长,2+小时;HTTP keep-alive 取决于timeout参数,一般是10秒左右。

10.2 简单聊聊 TCP 的可靠性

  • 简单聊聊 TCP 的可靠性

可靠性:确保一个进程从其接收缓存中读出的数据流是无损坏,无间隔,非冗余和按序的数据流;即字节流与连接的另一方端系统发送出的字节流是完全相同的

解决干扰–checksum
解决乱序和冗余—seq序列号
解决丢包—ACK+超时+重传

10. 3 HTTP PUT方法利用的几种方式

  • HTTP PUT方法利用的几种方式

PUT与POST的区别:
PUT方法是幂等的:调用一次与连续调用多次是等价的(即没有副作用),而连续调用多次POST方法可能会有副作用,比如将一个订单重复提交多次。
PUT应答

利用PUT方法的工具

Netcat,BurpSuite,Nmap,Metasploit,CURL,QuickPuT等

10.4 《网络安全基础》——习题集

  • 《网络安全基础》——习题集

10.5 我终于知道post和get的区别

  • 我终于知道post和get的区别

在http协议中没有对url长度进行限制(不仅仅是querystring的长度),这个限制是特定的浏览器及服务器对他的限制

第11章 编程题

11.1 水仙花数

打印出所有的三位“水仙花数”。所谓“水仙花数”是指一个三位数,其各位数字立方和等于该数本身

# import lib# def funcitons
def sxhs():num = []for i in range(100,1000):if i==sum_3(i):#立方和判断num.append(i)return numdef sum_3(x):#判断一个数是否是三位数a,b,c=0,0,0#个位,十位,百位a=x%10 # 取模,个位b=x//10%10 #整除,取模,十位c=x//100#整除,百位sum =pow(a,3)+pow(b,3)+pow(c,3)#立方和return sum# main
if __name__ == "__main__":result=sxhs()for i in result:print(i)

结果

123
153
370
371
407

way 2----通过遍历str类型的数字,来求立方和

for i in range(100,1000):i_str=str(i)#字符串num=0for j in i_str:#挨个遍历,百位,十位,个位#num+=int(j)*int(j)*int(j)num+=pow(int(j),3)if i==num :print (i)

11.2 加减乘除运算

  • 2021小米编程之KiKi实现一个简单计算器,实现两个数的“加减乘除”运算

11.3 快速排序

# import lib# arr[]---->排序数组
# low --->起始索引
# high --->结束索引
# def functions
def partition(arr, low, high):pivot = arr[high]  # 基准为最后一个元素# index = -1 #索引,第一个从0开始,且要加1# print(pivot)index = low - 1  # 最小元素索引for j in range(low, high):# 当前元素小于或等于 pivotif arr[j] <= pivot:index = index + 1arr[index],arr[j] = arr[j],arr[index]#互换位置,不能分行写arr[index + 1],arr[high] = arr[high],arr[index+1] # 基准放在中间,另一个元素放在后面# print(arr)return (index + 1)  # 基准索引def quickSort(arr, low, high):if low < high:#直到剩余两个比较,基准前面只有一个元素,1-1=0,0<0,条件为假pi = partition(arr, low, high)quickSort(arr, low, pi - 1)#小端quickSort(arr, pi + 1, high)#大端# main
if __name__ == "__main__":arr = [11, 99, 33, 69, 77, 88, 55, 11, 33, 36, 39, 66, 44, 22]n = len(arr)quickSort(arr, 0, n-1)for i in range(n):print(arr[i])

结果

11
11
22
33
33
36
39
44
55
66
69
77
88
99

11.4 爬楼梯

  • 【leetcode】Python实现-70.爬楼梯
# import lib#def functions
# def way(n):
#     if n<3:
#         return n
#     a,b,temp = 1,2,0
#     for i in range(3,n+1):
#         temp = a+b
#         a=b
#         b=temp
#     return temp
def way1(n):condition = [0]*(n+1)#condition[0]=1condition[1]=1 #一个楼梯一个方法condition[2]=2for i in range(3,n+1):condition[i] =condition[i-1]+condition[i-2]return condition[n]#mainif __name__ == "__main__":n = int(input())#result = way(n)result = way1(n)print(result)

示例

8
34

如果使用循环,程序的性能会更高。如果使用递归,程序更容易理解。

11.5 买口罩–01背包问题

# 01 背包问题
# import lib# def fuction
def mask(money, a, b):#创建二维数组,[[列数]横数]dp = [[0 for i in range(money+1)] for j in range(0,7)]print(dp)for i in range(1, 7):for j in range(1, money + 1):if (j < b[i]):dp[i][j] = dp[i - 1][j]  # 钱不够用了elif (j>= b[i]):# dp[i-1][j-b[i]]+a[i]:i-1,上一个值,j-b[i],剩余钱数,a[i],当前钱数dp[i][j] = max(dp[i - 1][j], dp[i - 1][j - b[i]] + a[i])return dp[-1][-1]# mainif __name__ == "__main__":money = int(input())a = [0, 2, 3, 1, 5, 4, 3]  # 个数b = [0, 2, 2, 3, 1, 5, 2]  # 钱result = mask(money, a, b)print(result)

示例

9
13

11.6 三角形三边数字求和

# import lib#def functionsdef sum(str):a = str[0]+str[1]+str[2]+str[3]b = str[3] + str[4] + str[5] + str[6]c = str[6] + str[7] + str[8] + str[0]if a==b and a==c and b==c:print('yes')else:print('no')#mianif __name__ == "__main__":n = input()#print(n)n=n.split(",",-1)#以,为分隔符对字符串进行切片,默认分割所有#rint(n)str = []for i in n:str.append(int(i))#字符串转int类型#print(str)sum(str)

示例

3,4,8,5,2,6,7,1,9
yes3,4,8,5,2,6,9,7,1
no

11.7 shopee-数的划分

# import lib
#https://blog.csdn.net/elma_tww/article/details/86538836
# def functions
#dp[i][j]表示将整数i划分为j份的方案数
#dp[i-j],拿出j个数,分别放上1,dp[i-j][2],2表示分为两份
def divide(n,k,dp):for i in range(1,n+1):for j in range(1,k+1):if i>=j:#划分的分数不能超过给定的整数dp[i][j]=dp[i-j][j]+dp[i-1][j-1]#裂项相消print(i,j,dp[i][j])return dp[n][k]#main
if __name__ == "__main__":n,k = map(int,input().split(','))# n = int(n)# k = int(k)dp = [[0] *(k+1)  for i in range(n+1)]dp [0][0]=1#print(dp)result = divide(n,k,dp)print(result)

11.8 shopee-数组的平衡点

def findBalancedIndex(arr):for temp in range(1,len(arr)):# a=sum(arr[:temp])# print(a)# b=sum(arr[temp+1:])# print(b)if sum(arr[:temp])==sum(arr[temp+1:]):#print(temp)return temp
result1 = findBalancedIndex([1,2,3,4,6])
result2 = findBalancedIndex([1,2,1])
result3 = findBalancedIndex([1,2,2,2,1])
print(result1)
print(result2)
print(result3)

11.9 阿里 子集

#核心思路是将X排序,这样就可以在排序好的X对应的Y中,寻找最长的递增不一定连续的子序列了,这样的子序列代表最后的能挑出的最多的物品。from bisect import bisect_left#二分查找T = int(input())
for _ in range(T):n = int(input())X = map(int, input().split())Y = map(int, input().split())#排序,x[0]代表x从小到大,-x[1]表示在x相等的情况下,y从大到小a = sorted(zip(X, Y), key=lambda x: (x[0], -x[1]))total = 0tails = [a[0][1]]for i in range(1, n):if a[i][1] > tails[-1]:#列表中最后一个元素比较tails.append(a[i][1])else:#在tails中找到a[i][1]合适的插入点以维持有序idx = bisect_left(tails, a[i][1])#返回插入位置tails[idx] = a[i][1]#会替换之前的位置print(len(tails))

11.10 小米–合法IP

import re
# def funcitons
def mat(n):rule = '^(([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5]).){3}([1-9]?\d|1\d{2}|2[0-4]\d|25[0-5])$'pattern = re.compile(rule)m = pattern.match(n)#print(m.group(0))if m:return ("YES")else:return ("NO")# main
if __name__ == "__main__":while True:try:n = input()result = mat(n)print(result)except:break

11.11 阿里–小强爱数学

'''
感觉是一个递归问题,数学问题,分类,偶数和奇数
'''
mod = int(1e9+7)
def calculate(A,B,N):if N == 1:return Aelif N == 2:return (A**2-2*B)%modelse:if N%2==0:AnBn = 1for i in range(N//2):AnBn = AnBn*B%modAnplusBn = calculate(A,B,N//2)return (AnplusBn * AnplusBn - 2 * AnBn) % modelse:AnBn = 1for i in range(N//2):AnBn = AnBn*B%modreturn (calculate(A,B,N//2)*calculate(A,B,N//2+1) - A * AnBn) % modT = int(input())
for _ in range(T):inp = input().split(" ")A = int(inp[0]) % modB = int(inp[1]) % modN = int(inp[2])print(int(calculate(A, B, N)))

11.20 加减乘除表达式

参考资料:
https://blog.csdn.net/guge907/article/details/23536901

#import lib
import re#def functions
#四则运算
def operator(x,y,ope):x=float(x)y=float(y)if ope=="+":return x+yelif ope=="-":return x-yelif ope=="*":return x*yelif ope=="/":return x/y
def getnum(s):temp = re.split('[+*/-]', s)print(temp)return temp
def getchar(s):char=[]opration = ["+", "*", "/", "-"]for i in range(0,len(s)):if s[i] in opration:char.append(s[i])print(char)return chardef getresult(a,b):# for i in range(0,len(b)):i=0#乘除while(i<len(b)):if(b[i]=="*" or b[i]=="/"):a[i]=operator(a[i],a[i+1],b[i])b.remove(b[i])a.remove(a[i+1])i=i+1# for i in range(0,len(a)):#     if len(a)>1:#按序加减操作while(len(a)>1):a[0]=operator(a[0],a[1],b[0])b.remove(b[0])a.remove(a[1])return a[0]#mainif __name__== "__main__":express=input()#print(list(express))num=getnum(express)char=getchar(list(express))result=getresult(num,char)print(result)

日常学习之总结(1机器学习,2jupyter notebook,3语言类,4快捷键,5操作系统,6密码学,7Web安全,8Kali,9正则表达式,10计算机网络,11编程题目)相关推荐

  1. 《Raytracing In One Weekend》学习笔记 Chapter 1、2、3、4、5、6、7、8、9、10、11、12、13

    根据师兄推荐,打算从 Peter Shirley 的<Ray Tracing in OneWeekend>等系列图书入门光线追踪,学习过程中记录了一些经验总结笔记.这些笔记中包含了学习过程 ...

  2. 机器学习和深度学习的区别 深度学习的完全取代机器学习吗

    首先看看深度学习的定义: "Deep learning is a particular kind of machine learning that achieves great power ...

  3. 机器学习 深度学习 ai_人工智能,机器学习,深度学习-特征和差异

    机器学习 深度学习 ai Artificial Intelligence (AI) will and is currently taking over an important role in our ...

  4. 2021 年最值得学习的 5 大机器学习编程语言!

    [编者按]提起机器学习,绝大部分开发者想到的第一种编程语言都是 Python,Python 的确是学习机器学习的利器.但现在,如果想研究更多的编程语言,那你还有其他4种语言可选. 英文:Top 5 M ...

  5. 【深度学习】深入浅出对抗机器学习(AI攻防)

    [深度学习]深入浅出对抗机器学习(AI攻防) 文章目录 1 Attack ML Model概述 2 基本概念 3 攻击分类 4 经典的对抗性样本生成算法 5 经典的对抗防御方法 6 人工智能安全现状概 ...

  6. Android:日常学习笔记(8)———探究UI开发(2)

    Android:日常学习笔记(8)---探究UI开发(2) 对话框 说明: 对话框是提示用户作出决定或输入额外信息的小窗口. 对话框不会填充屏幕,通常用于需要用户采取行动才能继续执行的模式事件. 提示 ...

  7. Android:日常学习笔记(6)——探究活动(3)

    Android:日常学习笔记(6)--探究活动(3) 活动的生命周期 返回栈 Android中的活动是可以叠加的,我们每启动一个新活动,就会覆盖在原来的活动上,点击Back以后销毁最上面的活动,下面的 ...

  8. Android:日常学习笔记(8)———探究UI开发(5)

    Android:日常学习笔记(8)---探究UI开发(5) ListView控件的使用 ListView概述 A view that shows items in a vertically scrol ...

  9. 吴恩达《机器学习》学习笔记十二——机器学习系统

    吴恩达<机器学习>学习笔记十二--机器学习系统 一.设计机器学习系统的思想 1.快速实现+绘制学习曲线--寻找重点优化的方向 2.误差分析 3.数值估计 二.偏斜类问题(类别不均衡) 三. ...

最新文章

  1. 基于python的一个运维自动化的项目(进度更新)【已开源】
  2. Ubuntu16.04 Table无法自动补全
  3. @Aspect注解无效
  4. Netty源码分析第7章(编码器和写数据)----第2节: MessageToByteEncoder
  5. Netflix Play API:我们为什么构建了一个演进式架构?
  6. 主键可以增加查询速度吗_米脂起重信号工含金量高吗 可不可以联网查询在哪里查c...
  7. SAP License管理
  8. SpringBoot整合 Shiro
  9. linux基本命令-ls
  10. linux端口接收中文乱码,linux中显示中文乱码如何解决
  11. 【java】java中的线程池 ThreadPoolExecutor源码分析
  12. 单片机C语言任何位置跳转到任何指定地址 -转
  13. Android presentation
  14. Google的自定义搜索-GOOD!
  15. SWFObject 2.0 官方文档二
  16. Laravel第二章
  17. linux怎么cat结果导出txt,cat 输出文件内容
  18. 湖南大学计算机学硕经验分享,2021湖南大学计算机专硕备考经验分享
  19. ftt传感器_FTTTB温度传感器温度特性实验仪介绍及实验数据(新).doc
  20. Scons入门指南 使用教程 笔记

热门文章

  1. 微信小程序获取输入框(input)内容
  2. UVA1335-Beijin Guards(二分)
  3. 有没有html做的平安夜页面或者圣诞节,送给同学的平安夜圣诞节祝福语
  4. RUA!ERROR!
  5. 【现代密码学】仿射密码加密
  6. JDBC编程(Java操作数据库 MySQL)
  7. 简单的java实现分解质因数。
  8. js 中有endswith_函数 ENDSWITH()函数 - 闪电教程JSRUN
  9. Android 仿淘宝属性标签页
  10. 《长尾理论》读书笔记