目录
Python接口测试课程(第一天)-Python基础 Python接口测试课程(第二天)-接口测试快速实践 Python接口测试课程(第三天)-接口安全验证,参数化及断言 Python接口测试课程(第四天)-接口测试框架实现
更多学习资料请加添加作者微信:lockingfree获取
第一天: Python基础
Python简介、环境搭建及包管理
Python简介
特点:Python是一门动态、解释型、强类型语言
动态:在运行期间才做数据检查(不用提前声明变量)- 静态语音(C/Java):编译时检查数据类型(编码时需要声明变量类型)
解释型:在执行程序时,才一条条解释成机器语言给计算机执行(无需编译,速度较慢)- 编译型语言(C/Java):先要将代码编译成二进制可执行文件,再执行
强类型:类型安全,变量一旦被指定了数据类型,如果不强制转换,那么永远是这种类型(严谨,避免类型错误,速度较慢)- 弱类型(VBScript/JavaScript): 类型在运行期间会转化,如 js中的 1+"2"="12", 1会由数字转化为string
编码原则:优雅、明确、简单
优点
简单易学
开发效率高
高级语言
可移植、可扩展、可嵌入
庞大的三方库
缺点
速度慢
代码不能加密
多线程不能充分利用多核cpu(GIL全局解释性锁,同一时刻只能运行一个线程)
应用领域
自动化测试(UI/接口)
自动化运维
爬虫
Web开发(Django/Flask/..)
图形GUI开发
游戏脚本
金融、量化交易
数据分析,大数据
人工智能、机器学习、NLP、计算机视觉
云计算
环境搭建
Windows Python3环境搭建
下载Python3.6.5*.exe安装包
双击安装,第一个节目选中Add Python3.6.5 to PATH,点击Install Now(默认安装pip),一路下一步
验证:打开cmd命令行,输入python,应能进入python shell 并显示为Python 3.6.5版本
包管理
pip安装
pip install 包名 - 卸载: pip uninstall 包名
pip install 下载的whl包.whl
pip install -r requiements.txt(安装requirements.txt中的所有依赖包)
pip list 查看已安装的三方包,pip freeze 已文件格式显示已安装的三方包(用于导出requiremnts.txt文件)
源码安装
下载源码包,解压,进入解压目录
打开命令行,执行 python setup.py install
验证:进入python shell,输入import 包名,不报错表示安装成功
三方包默认安装路径:Python3.6.5/Lib/site-packages/ 下
Python基本语法
缩进
if x > 0:
print("正数")
elif x = 0:
print("0")
else:
print("负数")
def add(x,y):
return x+y
一行多条语句
x=1; y=2; print(x+y)
断行
print("this line is too long, \
so I break it to two lines")
注释
# 单行注释
a = 1
'''这是一段
多行注释'''
def add(x, y):
"""加法函数:这是docstring(函数说明)"""
pass
变量
变量类型(局部变量、全局变量、系统变量)
变量赋值
多重赋值x=y=z=1
多元赋值x,y = y,x
变量自增 x+=1
x-=1
(不支持x++
, x--
)
Python3中没有常量
基本数据类型(6种)
1. 数字Number
种类
整型int(Python3中没有长整型,int长度几乎没有限制)
浮点型float
布尔型bool
False: 0,0.0,'',[],(),{}
True: 除False以外,['']或[[],[]]不是False
复数型complex
操作符: +,-,,/,//(地板除), *(乘方) - Python3中的/是真实除,1/2=0.5
类型转
str(): 其他类型转为字符串, 如str(12)
int(): 字符串数字转为整型(字符串不是纯整数会报错), 如int("12")
float(): 字符串转换为浮点数,如float("1.23")
2. 字符串String
字符串系统方法
len(): 计算字符串长度,如len("abcdefg")
find()/index(): 查找字符串中某个字符第一次出现的索引(index()方法查找不到会报错), 如"abcdefg".find("b"); "abcedfgg".index("g")
lower()/upper(): 将字符串转换为全小写/大写,如"AbcdeF".lower();"abcedF".upper()
isdigit()/isalpha()/isalnum(): 判断字符串是否纯数字/纯字母/纯数字字母组合, 如isdigit("123")
,结果为 True
count(): 查询字符串中某个元素的数量,如"aabcabc".count("a")
join(): 将列表元素按字符串连接,如"".join(["a","b","c"])
会按空字符连接列表元素,得到"abc"
replace(): 替换字符串中的某已部分,如"hello,java".replace("java", "python")
,将java 替换为 python
split(): 和join相反,将字符串按分隔符分割成列表, 如"a,b,c,d".split(",")
得到["a", "b", "c", "d"]
strip()/lstrip()/rstrip(): 去掉字符串左右/左边/右边的无意字符(包括空格,换行等非显示字符),如" this has blanks \n".strip()
得到"this has balnks"
字符串格式化
%: 如"Name: %s, Age: %d" % ("Lily", 12)
或"Name: %(name)s, Age: %(age)d" % {"name": "Lily", "age": 12}
format: 如"Name: {}, Age: {}".format("Lily", 12)
或"Name: {name}, Age: {age}".format(name="Lily",age=12)
substitude(不完全替换会报错)/safe_substitude: 如"Name: ${name}, Age: ${age}".safe_substitude(name="Lily",age=12)
案例 : 利用format生成自定义html报告
tpl='''
{title}
{title}
'''
tr='''{sn}
{case_name}
{result}
'''
title="自动化测试报告"
case_results = [("1", "test_add_normal", "PASS"),("2", "test_add_negative", "PASS"), ("3", "test_add_float", "FAIL")]
trs=''
for case_result in case_results:
tr_format = tr.format(sn=case_result[0], case_name=case_result[1], result=case_result[2])
trs += tr_format
html = tpl.format(title=title, trs=trs)
f = open("report.html", "w")
f.write(html)
f.close()
结果预览
自动化测试报告
序号
用例
结果
1
test_add_normal
PASS
2
test_add_negative
PASS
3
test_add_float
FAIL
3. 列表List
列表元素支持各种对象的混合,支持嵌套各种对象,如["a", 1, {"b": 3}, [1,2,3]]
列表操作
赋值: l = [1, "hello", ("a", "b")]
获取: a = l[0] # 通过索引获取
增: l.append("c");l.extend(["d","e"]);l+["f"]
删: l.pop() # 按索引删除,无参数默认删除最后一个;l.remove("c") # 按元素删除
改:l[1]="HELLO" # 通过索引修改
查: 遍历 for i in l: print(i)
列表系统方法
append()/insert()/extend(): 添加/插入/扩展(连接)
index(): 获取元素索引
count(): 统计元素个数
pop()/remove(): 按索引/元素删除
sort()/reverse(): 排序/反转
案例 : 字符串反转s="abcdefg"; r=''.join(reversed(a))
4. 元组Tuple
不可改变,常用作函数参数(安全性好)
同样支持混合元素以及嵌套
只有一个元素时,必须加","号,如a=("hello",)
- 因为Python中()还有分组的含义,不加","会识别为字符串
字符串/列表/元组统称为序列, 有相似的结构和操作方法
序列相关操作方法
索引
正反索引: l[3];l[-1]
索引溢出(IndexError): 当索引大于序列的最大索引时会报错,如[1,2,3,4]最大索引是3,引用l[4]会报IndexError
切片
l[1:3] # 从列表索引1到索引3(不包含索引3)进行截取, 如 l = [1, 2, 3, 4, 5], l[1:3]为[2, 3]
l[:5:2] # 第一个表示开始索引(留空0), 第二个表示结束索引(留空为最后一个,即-1), 第三个是步长, 即从开头到第5个(不包含第5个),跳一个取一个
案例 : 字符串反转 s="abcdefg";r=s[::-1]
遍历
按元素遍历: for item in l: print(item)
按索引遍历: for index in range(len(l)): print(l[index])
按枚举遍历: for i,v in enumerate(l): print((i,v))
扩展/连接(添加多个元素): extend()/+ "abc"+"123";[1,2,3]+[4,5];[1,2,3].extend([4,5,6,7])
类型互转: str()/list()/tuple()
list转str一般用join(), str转list一般用split()
系统函数
len(): 计算长度
max()/min(): 求最大/最小元素
sorted()/reversed(): 排序/反转并生成新序列(sort()/reverse()直接操作原序列)l_new=sorted(l);l_new2=reversed(l)
5. 集合Set
集合可以通过序列生成a = set([1,2,3])
集合无序,元素不重复(所有元素为可哈希元素)
集合分为可变集合set和不可变集合frozenset
操作方法: 联合|,交集&,差集-,对称差分^
系统函数: add()/update()/remove()/discard()/pop()/clear()
案例1 : 列表去重: l=[1,2,3,1,4,3,2,5,6,2];l=list(set(l))
(由于集合无序,无法保持原有顺序)
案例2 : 100w条数据,用列表和集合哪个性能更好? - 集合性能要远远优于列表, 集合是基于哈希的, 无论有多少元素,查找元素永远只需要一步操作, 而列表长度多次就可能需要操作多少次(比如元素在列表最后一个位置)
6. 字典Dict
字典是由若干key-value对组成, 字典是无序的, 字典的key不能重复,而且必须是可哈希的,通常是字符串
字典操作
赋值: d = {"a":1, "b":2}
获取: a = d['a']
或a = d.get("a") # d中不存在"a"元素时不会报错
增: d["c"] = 3; d.update({"d":5, "e": 6}
删: d.pop("d");d.clear() # 清空
查: d.has_key("c")
遍历:
遍历key: for key in d:
或for key in d.keys():
遍历value: for value in d.values():
遍历key-value对: for item in d.items():
案例 : 更新接口参数 api = {"url": "/api/user/login": data: {"username": "张三", "password": "123456"}},将username修改为"李四" api['data']['username'] = "李四"
或 api['data'].update({"username": "李四"})
哈希与可哈希元素
哈希是通过计算得到元素的存储地址(映射), 这就要求不同长度的元素都能计算出地址,相同元素每次计算出的地址都一样, 不同元素计算的地址必须唯一, 基于哈希的查找永远只需要一步操作, 计算一下得到元素相应的地址, 不需要向序列那样遍历, 所以性能较好
可哈希元素: 为了保证每次计算出的地址相同, 要求元素长度是固定的, 如数字/字符串/只包含数字,字符串的元组, 这些都是可哈希元素
6种类型简单的特点总结
数字/字符串/元祖: 长度固定
序列(字符串/列表/元祖): 有序
集合/字典: 无序, 不重复/键值不重复
条件/循环
条件判断
示例:
if x>0:
print("正数")
elif x=0:
print("0")
else:
print("负数")
三元表达式: max = a if a > b else b
案例 : 判断一个字符串是不ip地址
ip_str = '192.168.100.3'
ip_list = ip_str.split(".") # 将字符串按点分割成列表
is_ip = True # 先假设ip合法
if len(ip_list) != 4:
is_ip= False
else:
for num in ip_list:
if num.lstrip('0')!=num or not isdigit(num) or not 0 <= int(num) <= 255:
is_ip = False
if is_ip:
print("是ip")
else:
print("不是ip")
使用map函数的实现方法(参考):
def check_ipv4(ip_str): ip = ip_str.strip().split(".") return len(ip)==4 and all(map(lambda x: x.lstrip('0')==x and x.isdigit() and 0<=int(x)<= 255, ip))
循环
for in 循环
while 循环
文件读写(文本文件)
html/xml/config/csv也可以按文本文件处理
文件操作方法
open(): 打开f =open("test.txt")
或f =open("test.txt","r", encoding="utf-8")
或with open("test.txt) as f: # 上下文模式,出结构体自动关闭文件
read()/readline()/readlines(): 读取所有内容/读取一行/读取所有行(返回列表) - 注意: 内容中包含\n换行符,可以通过strip()去掉
f.write()/f.save(): 写文件/保存文件
f.seek(): 移动文件指针,如f.seek(0), 移动到文件开头
f.close(): 关闭文件(打开文件要记得关闭)
文件打开模式
r/w/a: 只读/只写/追加模式
rb/wb/ab: 二进制只读/只写/追加模式(支持图片等二进制文件)
r+/rb+, w+/wb+, a+/ab+: 读写,区别在于, r+/w+会清空文件再写内容, r+文件不存在会报错, a+不清空原文件,进行追加, w+/a+文件不存在时会新建文件
文件是可迭代的,可以直接用 for line in f: 遍历
函数/类
函数定义和调用
def add(x, y): # 定义函数
return x+y
print(add(1,3)) # 调用函数
案例 : 用户注册/登录函数
users = {"张三": "123456"}
def reg(username, password):
if users.get(username): # 如果用户中存在username这个key
print("用户已存在")
else:
users[username] = password # 向users字典中添加元素
print("添加成功")
def login(username, password)
if not users.get(username):
print("用户不存在")
elif users['username'] == password:
print("登录成功")
else:
print("密码错误")
参数和返回值
函数没有return默认返回None
参数支持各种对象,包含数字,支付串,列表,元组,也可以是函数和类
参数默认值: 有默认值的参数必须放在最后面, 如```def add(x, y=1, z=2):
不定参数: args和 *kwargs, 如def func(*args, **kwargs):
可以接受任意长度和格式的参数
参数及返回值类型注释(Python3)
def(x:int, y:int) -> int: # x,y为int型,函数返回为int型,只是注释,参数格式非法不会报错
return x+y
函数作为参数(如: 装饰器)
def a():
print("I'm a")
def deco(func):
print("call from deco")
func()
deco(a) # 输出"call from deco"并调用a(),输出"I'm a"
函数嵌套(支持闭包)
def a():
a_var = 1
def b:() # 嵌套函数
a_var += 1
函数递归(自己调用自己,直到满足需求)
案例 : 求N!
def factorial(n):
return 1 if n == 0 or n == 1 else n * factorial(n-1)
模块/包
模块
一个py文件为一个模块
模块导入
import os # 需要通过os调用相关方法, 如os.mkdir(),
form configparser import ConfigParser: 可以直接使用CinfigParser()
支持一次导入多个
包
一个文件夹为一个包(Python3,文件夹中不需要建立init .py文件)
常用系统模块
os: 与操作系统交互
os.name/os.sep/os.linesep: 系统名称/系统路径分隔符/系统换行符
os.makedir()/os.makedirs(): 建立目录/建立多级目录
os.getenv("PATH"): 获取系统PATH环境变量的设置
os.curdir/os.prdir: 获取当前路径/上级路径
os.walk(): 遍历文件夹及子文件
os.path.basename()/os.path.abspath()/os.path.dirname(): 文件名/文件绝对路径/文件上级文件夹名
os.path.join()/os.path.split(): 按当前系统分隔符(os.sep)组装路径/分割路径
os.path.exists()/os.path.isfile()/os.path.isdir(): 判断文件(文件夹)是否存在/是否文件/是否文件夹
案例 : 用例发现, 列出文件夹及子文件夹中所有test开头的.py文件,并输出文件路径
for root,dirs,files in os.walk("./case/"):
for file in files:
if file.startswith("test") and file.endswith(".py"):
print(os.path.join(root, file)
sys: 与Python系统交互
sys.path: 系统路径(搜索路径)
sys.platform: 系统平台,可以用来判断是python2还是3
sys.argv: py脚本接受的命令行参数
sys.stdin/sys.stdout/sys.stderr: 标准输入/输出/错误
常见算法
冒泡排序
def buddle_sort(under_sort_list):
l = under_sort_list
for j in range(len(l)):
for i in range(len(l)-j-1):
if l[i] > l[i+1]:
l[i], l[i+1] = l[i+1], l[i]
快速排序
def quick_sort(l):
if len(l) < 2:
return l # 如果列表只有一个元素, 返回列表(用于结束迭代)
else:
pivot = l[0] # 取列表第一个元素为基准数
low = [i for i in l[1:] if i < pivot] # 遍历l, 将小于基准数pivot的全放入low这个列表
high = [i for i in l[1:] if i >= pivot ]
return quick_sort(low) + [pivot] + quick_sort(high) # 对左右两部分分别进行迭代
二分查找
def bin_search(l, n): # l为有序列表
low, high = 0, len(l) - 1 # low,high分别初始化为第一个/最后一个元素索引(最小/最大数索引)
while low < high:
mid = (high-low) // 2 # 地板除,保证索引为整数
if l[mid] == n:
return mid
elif l[mid] > n: # 中间数大于n则查找前半部分, 重置查找的最大数
high = mid -1
else: # 查找后半部分, 重置查找的最小数
low = mid + 1
return None # 循环结束没有return mid 则说明没找到
作业
查找文件中最长的行
统计文件中字符个数
判断字符串"abacdbdde"中第一个不重复的字符
判断字符串"{{({()[({})])}}"是否括号全部闭合
你可能感兴趣的:(Python接口测试课程(第一天)-Python基础)
【Python】一文详细介绍 py格式 文件
高斯小哥
Python基础【高质量合集】 python 新手入门 学习
【Python】一文详细介绍py格式文件个人主页:高斯小哥高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程希望得到您的订阅和支持~创作高质量博文(平均质量分92+),分享更多关于深度学习、PyTorch、Python领域的优质内容!(希望得到您的关注~)文章目录一、py格式文件简介二、如何创建和编辑py格式文件三、如何运行py
大学播音主持都学什么内容?播音主持专业学什么?
配音新手圈
有些喜欢播音主持并且犹豫要不要报考这个大学专业的小伙伴们就会想要了解大学播音主持都学什么内容吧,毕竟如果不够了解就直接选择这个专业真的等选择完进去学习以后才知道这个专业并不是自己想要学习的东西那就来不及了。下面是小编为大家整理出来的一些播音主持专业学习的内容,请往下看吧。大学播音主持专业主要学习的课程有:播音发声、播音创作基础、广播播音主持、电视播音主持、文艺作品演播学概论、新闻学概论、新闻采编、
3/31总结
静心第一
今日总结:1.上午体验课以及反馈2.p1专注力上课3.情绪精品营上课4.燕子营队辅营以及前台值班5.活动室带孩子接待带到访今日反思:1.合理安排体力2.对于准客户记得跟进3.不要放过每一次成交的机会(这个精品营转发有点失败,后期需调整)今日感受:1.为了效果,后期课程一定想方设法布置家庭,给予一个好的支持系统2.上到下午的课程感觉特别特别的累3.晚上在做辅营一个孩子大声叫喊,后来单独出去沟通,其实
心赏(2018.10.8)
六一节_3928
1.上班第一天,同事彤休完产假,回来上班,给我带了酸奶和水果。她生小孩时,我给她发了一个小红包贺喜,哪知她就记在心里了。心赏这个有心的90后。2.女儿放学回来,说自己当了小组长。一边说不想当,一边得意的样子。心赏老师给了孩子这个锻炼的机会。3.老妈今天做了"蚂蚁上树"的菜,得到女儿的高度肯定。心赏老妈还在不断学习。
谷歌浏览器驱动Chromedriver(114-120版本)文件以及驱动下载教程
pigerr杨
Python python chrome drivers
ChromeDriver官方网站GitHub||GoogleChromeLabs/chrome-for-testingChromeDriver113-125_JSONChromeforTestingavailability123-125zip白月黑羽Python基础|进阶|Qt图形界面|Django|自动化测试|性能测试|JS语言|JS前端|原理与安装
4.24 使用计算命令制作图像合成艺术效果 [Ps教程]
互动教程网
1.本节课程将为您演示,如何使用[计算]命令,将两张示例图片,制作成超酷的图像合成特效。首先点击顶部的文档标签,切换至另一张示例图片。image2.接着依次点击[图像>计算]命令,弹出[计算]窗口。image3.[计算]命令,用于混合两个来自一个或多个源图像的单个通道。然后可以将结果应用到新图像、新通道或当前图像的选区中。image4.在弹出的计算窗口中,点击下拉箭头,选择[计算]命令的源图片。i
感恩日志 第【1210】天:(2019.02.01)(腊月二十七)
山东慧恩贺守金
今日感悟:二十七撇松枝!今日是真正的第一天假期:吃饭找物业看望父母打麻将。时间过的飞快,转眼间,已经放假5天了,保养车,购置年货,送礼,出差,回家。春节假期:陪伴父母、妻儿的时间,反思的时间,规划的时间。白天太忙,忙着各种琐事,晚上才真正有时间留给自己,思考,总结。感恩这一个充实而忙碌的一天。
2018-12-02
子分小
姓名:张颖公司:菲尔德国际英语【反省总结第146天,始于20180709今天是20181202】【知~学习】六项精进大纲背诵3遍每天十个单词坚持第181天每天学习一篇英文文章第94天英语流利说课程第71天学习30分钟【行~实践】一、修身:(对自己个人)步行5000步二、齐家:(对家庭和家人)无三、建功:(对工作)完成与Arti活动课和两节Demo准备开班事宜{积善}:发愿从2018年7月9日起1年
谈教育
浅辙
也许,现在很多人都认为教育是无可避免的一个话题,而且意义深远。然而,究其缘由无非是希望孩子有个好的将来,所以使其奔波与于各个补习班之间,像是被提起的棋子,该落到何处便落到何处!不是吗?那情形,不过是大人的一厢情愿!也许只是鄙人的愚见,毕竟是单身狗,可能没有过多的发言权,不过以我个人的看法,何苦让孩子们如此曲折,这样痛苦的不只是孩子还有自己,文化艺术类的倒是有必要让孩子去学一下,学业课程已有了系统的
2020-04-09
柠_fc84
我和清新冥想的相伴之旅我是来自大二的学生,一名性格活泼的女学生。平时没事喜欢看看书,做做运动,同时也是一名英语爱好者。因一次机遇结识了潘多拉口语课,在此获益良多,但这单单是满足不了我的,也是因为随着现在课程的开展,生活烦心事的增加,情绪波动大,使我紧绷。于是我和清新冥想课程英文版相遇啦。它带给我不一样的体验,使我的心情越来越轻松,那些不好的情绪也愈见愈远,我刚开始接触的时候是好奇,本来加上我对英语
Python极速入门:五分钟开启实战之旅!
知白守黑V
Python 编程语言 系统运维 python 编程语言 python开发 python学习 python入门 python数据分析
1.Python基础语法和结构:了解Python的基本语法,包括变量、数据类型、运算符、注释等。控制流:掌握条件语句(if-elif-else)、循环(for和while)及其控制(break和continue)。函数:学习如何定义和使用函数,包括参数传递、返回值、作用域和闭包。模块和包:理解如何导入和使用模块,以及如何创建和使用自己的包。2.数据处理列表、元组和集合:学习这些序列类型的操作和方法
女人之死(一)
写悦
无戒学堂IP营打卡15天,1708字,累计24069。(10.1日更第一天)江心挺着大肚皮,正在堂姐家沙发上休息。因为自己工作在一个偏远的县城,临近生产,决定在堂姐家住着,等到肚子有了生娃的动静,再去医院。堂姐在老家城区居住,城区的医疗条件好些,毕竟江心也是接近30岁了,还没有生第一胎。电话音乐响起来,是幺叔的电话,电话是传来幺叔心急如焚的声音,这在平时是不会有的。因为幺叔一向是一个自己过高兴了就
【Python】成功解决ModuleNotFoundError: No module named ‘torchinfo‘
高斯小哥
BUG解决方案合集 python pytorch 新手入门 学习 debug
【Python】成功解决ModuleNotFoundError:Nomodulenamed‘torchinfo’个人主页:高斯小哥高质量专栏:Matplotlib之旅:零基础精通数据可视化、Python基础【高质量合集】、PyTorch零基础入门教程希望得到您的订阅和支持~创作高质量博文(平均质量分92+),分享更多关于深度学习、PyTorch、Python领域的优质内容!(希望得到您的关注~)文
美旅同行—深圳蛇口
夕阳醉梦
美旅同行—深圳蛇口9月17号下午3点,开始了美旅同行的第一天。从广之旅总部坐旅游大巴,一个多小时到达深圳蛇口。入住高级酒店,准备明早赶往香港国际机场直飞纽约。其实广州白云机场也有航班直飞纽约的,只是香港来回飞比较便宜,旅行社计算成本,让我们来回折腾罢了。约了深圳的另一位同学来蛇口,在“海上世界”附近的“客家汇饭店”相聚吃晚饭,深圳同学是我们班的开心果,她带给我们快乐,来给我们送行。饭后欣赏蛇口夜景
26/100参加二一设计线下课程前的一点思考
设计师周文斌
再过两天就要参加21设计线下的课程了,对此很兴奋也很期待。平时很少参加线下课程,一来费用高花费的时间场成本肯定是非常大的,首先学费是6000再加上机票1500住宿1000吃饭500左右,就是总共8000元,这些年参加的线下课程也很多,但真正能落地,或者说是有实际行动的却是少之又少,所以这次线下课程是怀着一个学习的心态能落地的心态去参加的。因此要让知识课程学有所值,就一定要全新的投入进去。实习的目的
基于SSM+Vue企业销售培训系统 企业人才培训系统 企业课程培训管理系统 企业文化培训班系统Java
计算机程序老哥
作者主页:计算机毕业设计老哥有问题可以主页问我一、开发介绍1.1开发环境开发语言:Java数据库:MySQL系统架构:B/S后端:SSM(Spring+SpringMVC+Mybatis)前端:Vue工具:IDEA或者Eclipse,JDK1.8,Maven二、系统介绍2.1图片展示注册登录页面:登陆.png前端页面功能:首页、培训班、在线学习、企业文化、交流论坛、试卷列表、系统公告、留言反馈、个
2022.10.8孟母文化研究生院研究生课程《如何激发孩子学习兴趣和动力》(6-1)
维也纳冰咖啡
研究生:淑艳导师:胡中海学习时间:2022/10/8~线上课程如何激发孩子学习兴趣和动力整理:淑艳声音来源:胡中海老师(一)好来,咱们孟母文化研究会咱们各位我们会员朋友们,大家晚上好!今天又是咱们周末会员的线上课程,作为咱们孟母文化研究会的会员朋友啊,很多朋友一直都很关注如何有效的激发孩子的学习兴趣和动力,很多家长朋友也跟我提出问题,咱们这个课程呢系列呢已经讲了快一年的时间了,每一堂课咱们都会针对
选择你所爱,爱你所选择:2019年第一天
傻璐璐
图片发自App白天一天都在美国团体老师HaimWeinberg带领的团体小组上课。说了很多的话,听了很多的话,整整6小时的课,都在说、听。总结下来,两个字:选择。晚上和大学双学位班的两个同学见面,聊天。Rui是我好朋友,双学位时我们同宿舍,大美女。我最好的女性朋友颜值是首选,这是我小学就开始有的好习惯。Rui刚从伊朗旅行回来,已经给我也种草了。席间Rui问了我很多关于咨询师职业的问题。她一边心疼我
【编译原理】一篇就够了——学习笔记与课程实验超详细整理
一棵___大树
编译原理 学习笔记 学习 算法
⭐⭐⭐⭐⭐⭐Github主页https://github.com/A-BigTree更多学习笔记链接https://github.com/A-BigTree/college_assignment编译原理实验https://github.com/A-BigTree/college_assignment/compiler_Experiment如果可以,麻烦各位看官顺手点个star~如果文章对你有所帮助
我的金钱观
冠世墨玉yanzi
昨天微社几个人聚会,说起来钱财的事,我说,我是受过很多困窘的,不过从金钱上的困窘学会的,更是对人的认识,以及金钱对于一个人的意义。有钱有多好,自不必说,我目前想要实现的愿望,比如说说走就走的旅游,比如说想上就上的课程,还有想让自己变得更美也需要投资,但是囊中羞涩时多,放弃的也就多。困窘了就想要改变,也不是没有努力过,节衣缩食也有过,设法开源也试过,总也做不到,还可以借力,可老公也是愚笨,父母又不具
C语言之猴子吃桃
普通的一个普通猿
C语言算法 c语言 算法 开发语言
目录一简介二代码实现循环实现递归实现三时空复杂度A.循环实现B.递归实现一简介猴子吃桃问题是一个经典的递推算法题目,它描述如下:一只猴子第一天摘下若干个桃子,当天吃掉了所摘桃子数的一半多一个。之后每天早上,猴子都会吃掉前一天剩下桃子数的一半多一个。直到第十天早上,猴子只剩下了一个桃子。二代码实现使用C语言来解决这个问题,可以通过循环或者递归的方式来计算猴子第一天到底摘了多少个桃子。以下是两种方法的
开学第一天
18级张轩豪
今天是我们开学的第一天,我们大多数同学都没有踩着点进校,但是有些同学就是踩着点进校的,老师批评他们了。让他们下次改正。然后我们就开始上课了。语文课是强调些纪律。但是今天节节课都是强调纪律纪律。徐老师说了,赵老师也说了,不能在楼道里大声喧哗,还有不能在楼道里跑,行走的时候要慢步轻声靠右行。然后我们就像老师说的那样做了。老师说了我们都都长大了。下午的时候老师还夸我了。那是因为我在做操的时候真的很认真,
2019-3-5晨间日记
龙梅_4c22
今天是什么日子起床:7.15就寝:23天气:晴春风和煦心情:有点颓纪念日:等待妇女节任务清单昨日完成的任务,最重要的三件事:第一天起步改进:胆怯的心习惯养成:读书周目标·完成进度想做就做不后退不胆怯学习·信息·阅读多关注一点时事不做睁眼瞎健康·饮食·锻炼腰痛希望有跑步的习惯人际·家人·朋友不大不小的朋友圈工作·思考计算机二级英语四级驾驶证最美好的三件事1.跟妈妈视频2.为了未来努力3.再慢慢慢慢的
10个不起眼但却利润恐怖的网站
高省张导师
1、张十五笔记这是一个工众号。上面货原课程非常齐全,娴鱼搬砖、小红书卖貨学习资料都有,博主也是位大咖,我通过她的方法,一个月挣3-5000还是挺容易的,建议各位学习一下。2、卖资料就找“笑通学长”上面有很多虚拟课程,比如学习资料、四六级考研、分享,对小白很友好非常建议大家去看看。3、卖课程就找“结果星球”上面课程非常齐全有学习资料有副业资料,还有很多干货资料。4、搬砖就找“高省”“氧惠”利润很恐怖
MATLAB/Simulink 基础入门讲解(一)
紗梨酱
小萌新初学simulink matlab simulink
MATLAB/Simulink基础总结相信很多朋友总是遇到这种情况,学过的知识总是忘记,尤其是针对课外知识较多的专业技巧课程,老师或者是师兄师姐只是带你入门,然后讲几个例子,你认真地听,最开始觉得也就是如此简单的一个东西罢了,轮到实际操作时,又开始梦游,学过但又没完全学过,每次总是重复在第一个学过的技巧点上。本次就全面的总结一个基础视频,把MATLAB/Simulink中需要使用到的基础知识都化成
10分钟打300字可好
初陌雨
今日忙忙碌碌,腿都是软的,本以为一回来就可以倒头便睡,我还是高估了自己。终于熬到了周末,可还有一堆的事情得做,我还心不死的一下给自己报了四门课程。休息时间都被我吃了,不知道能否顺利通过下个月的考试。有时候自己还是挺霸气的,想到了,就做吧。是昨日看到了一则故事才有这样的决断。故事如下:一和尚要云游参学。师傅问:“什么时候动身?”“下个星期。路途远,我托人打了几双草鞋,取货后就动身。”师父沉吟一会儿,
Python随笔29:Python基础编程练习题23~24
挂可挂
注:本文所有代码均经过Python3.7实际运行检验,保证其严谨性。Python基础练习题23:求三角形斜边上的高输入直角三角形两直角边a、b的值,输出斜边上的高,最后结果使用round(x,2)函数四舍五入保留2位小数。输入格式:2行,每行一个整数,分别为a,b的值。输出格式:一个数,即斜边上的高,保留2位小数。输入样例:45输出样例:3.12解答:利用复数求模的方式求出第三条边长c,再利用公式
平平淡淡,吃好喝好,想多了没有用
北集坡吴彦祖
如果没有年初的疫情,今天是高考的日子了。高考距离我已经10多年了,当年大裤衩小背心的淡定,以为是多有把握呢,好歹的考完了,混个大学文凭。高考跟我也没什么关系了。如果非要说高考跟我还有点什么关系吧,还真有,还有6千多天,我姑娘就该高考了。从现在开始,我要督促小姑娘好好学习,明天要学习的一项重要课程就是爬行,加油,好好学习,天天向上。以上跟今天的主要内容也没什么关系。其实今天没什么主要内容,吃饭睡觉带
学习阳明心学《答欧阳崇一书》心得之一
遇见更丰盛的生命
今天学习《答欧阳崇一书》第一天,日日学习,日日反思,日日精进。今天读原文感觉好难懂,听博仁老师的导读,似乎对要点清晰了一些,但再读文章,仍然觉得模糊不清。都有点感觉自己是个文盲了。虽然理解得不清晰,但从心里领会了一些意思。比如:“良知不由见闻而有,而见闻莫非良知之用”,致良知不能从见闻上寻找,但见闻却发自自己的良知。就像博仁老师讲到的,良知是根本,我们事事要心从良知,但不能为了致良知而刻意去求,其
年轻党员干部干部更要内固“四心”,外铸“四力”
月龙葵
第17期《求是》杂志将发表中共中央总书记、国家主席、中央军委主席习近平的重要文章《思政课是落实立德树人根本任务的关键课程》。文章强调,青少年是祖国的未来、民族的希望。正如习近平总书记所说,“青年一代有理想、有本领、有担当,国家就有前途,民族就有希望。”年轻干部作为青年群体的先进代表和中坚力量,是国家的未来、民族的希望,肩负着继承和发展党和国家事业的历史使命。在走进新时代,追梦中国的今天,年轻干部更
java责任链模式
3213213333332132
java 责任链模式 村民告县长
责任链模式,通常就是一个请求从最低级开始往上层层的请求,当在某一层满足条件时,请求将被处理,当请求到最高层仍未满足时,则请求不会被处理。
就是一个请求在这个链条的责任范围内,会被相应的处理,如果超出链条的责任范围外,请求不会被相应的处理。
下面代码模拟这样的效果:
创建一个政府抽象类,方便所有的具体政府部门继承它。
package 责任链模式;
/**
*
linux、mysql、nginx、tomcat 性能参数优化
ronin47
一、linux 系统内核参数
/etc/sysctl.conf文件常用参数 net.core.netdev_max_backlog = 32768 #允许送到队列的数据包的最大数目
net.core.rmem_max = 8388608 #SOCKET读缓存区大小
net.core.wmem_max = 8388608 #SOCKET写缓存区大
php命令行界面
dcj3sjt126com
PHP cli
常用选项
php -v
php -i PHP安装的有关信息
php -h 访问帮助文件
php -m 列出编译到当前PHP安装的所有模块
执行一段代码
php -r 'echo "hello, world!";'
php -r 'echo "Hello, World!\n";'
php -r '$ts = filemtime("
Filter&Session
171815164
session
Filter
HttpServletRequest requ = (HttpServletRequest) req;
HttpSession session = requ.getSession();
if (session.getAttribute("admin") == null) {
PrintWriter out = res.ge
连接池与Spring,Hibernate结合
g21121
Hibernate
前几篇关于Java连接池的介绍都是基于Java应用的,而我们常用的场景是与Spring和ORM框架结合,下面就利用实例学习一下这方面的配置。
1.下载相关内容: &nb
[简单]mybatis判断数字类型
53873039oycg
mybatis
昨天同事反馈mybatis保存不了int类型的属性,一直报错,错误信息如下:
Caused by: java.lang.NumberFormatException: For input string: "null"
at sun.mis
项目启动时或者启动后ava.lang.OutOfMemoryError: PermGen space
程序员是怎么炼成的
eclipse jvm tomcat catalina.sh eclipse.ini
在启动比较大的项目时,因为存在大量的jsp页面,所以在编译的时候会生成很多的.class文件,.class文件是都会被加载到jvm的方法区中,如果要加载的class文件很多,就会出现方法区溢出异常 java.lang.OutOfMemoryError: PermGen space.
解决办法是点击eclipse里的tomcat,在
我的crm小结
aijuans
crm
各种原因吧,crm今天才完了。主要是接触了几个新技术:
Struts2、poi、ibatis这几个都是以前的项目中用过的。
Jsf、tapestry是这次新接触的,都是界面层的框架,用起来也不难。思路和struts不太一样,传说比较简单方便。不过个人感觉还是struts用着顺手啊,当然springmvc也很顺手,不知道是因为习惯还是什么。jsf和tapestry应用的时候需要知道他们的标签、主
spring里配置使用hibernate的二级缓存几步
antonyup_2006
java spring Hibernate xml cache
.在spring的配置文件中 applicationContent.xml,hibernate部分加入
xml 代码
<prop key="hibernate.cache.provider_class">org.hibernate.cache.EhCacheProvider</prop>
<prop key="hi
JAVA基础面试题
百合不是茶
抽象实现接口 String类 接口继承 抽象类继承实体类 自定义异常
/* * 栈(stack):主要保存基本类型(或者叫内置类型)(char、byte、short、 *int、long、 float、double、boolean)和对象的引用,数据可以共享,速度仅次于 * 寄存器(register),快于堆。堆(heap):用于存储对象。 */ &
让sqlmap文件 "继承" 起来
bijian1013
java ibatis sqlmap
多个项目中使用ibatis , 和数据库表对应的 sqlmap文件(增删改查等基本语句),dao, pojo 都是由工具自动生成的, 现在将这些自动生成的文件放在一个单独的工程中,其它项目工程中通过jar包来引用 ,并通过"继承"为基础的sqlmap文件,dao,pojo 添加新的方法来满足项
精通Oracle10编程SQL(13)开发触发器
bijian1013
oracle 数据库 plsql
/*
*开发触发器
*/
--得到日期是周几
select to_char(sysdate+4,'DY','nls_date_language=AMERICAN') from dual;
select to_char(sysdate,'DY','nls_date_language=AMERICAN') from dual;
--建立BEFORE语句触发器
CREATE O
【EhCache三】EhCache查询
bit1129
ehcache
本文介绍EhCache查询缓存中数据,EhCache提供了类似Hibernate的查询API,可以按照给定的条件进行查询。
要对EhCache进行查询,需要在ehcache.xml中设定要查询的属性
数据准备
@Before
public void setUp() {
//加载EhCache配置文件
Inpu
CXF框架入门实例
白糖_
spring Web 框架 webservice servlet
CXF是apache旗下的开源框架,由Celtix + XFire这两门经典的框架合成,是一套非常流行的web service框架。
它提供了JAX-WS的全面支持,并且可以根据实际项目的需要,采用代码优先(Code First)或者 WSDL 优先(WSDL First)来轻松地实现 Web Services 的发布和使用,同时它能与spring进行完美结合。
在apache cxf官网提供
angular.equals
boyitech
AngularJS AngularJS API AnguarJS 中文API angular.equals
angular.equals
描述:
比较两个值或者两个对象是不是 相等。还支持值的类型,正则表达式和数组的比较。 两个值或对象被认为是 相等的前提条件是以下的情况至少能满足一项:
两个值或者对象能通过=== (恒等) 的比较
两个值或者对象是同样类型,并且他们的属性都能通过angular
java-腾讯暑期实习生-输入一个数组A[1,2,...n],求输入B,使得数组B中的第i个数字B[i]=A[0]*A[1]*...*A[i-1]*A[i+1]
bylijinnan
java
这道题的具体思路请参看 何海涛的微博:http://weibo.com/zhedahht
import java.math.BigInteger;
import java.util.Arrays;
public class CreateBFromATencent {
/**
* 题目:输入一个数组A[1,2,...n],求输入B,使得数组B中的第i个数字B[i]=A
FastDFS 的安装和配置 修订版
Chen.H
linux fastDFS 分布式文件系统
FastDFS Home:http://code.google.com/p/fastdfs/
1. 安装
http://code.google.com/p/fastdfs/wiki/Setup http://hi.baidu.com/leolance/blog/item/3c273327978ae55f93580703.html
安装libevent (对libevent的版本要求为1.4.
[强人工智能]拓扑扫描与自适应构造器
comsci
人工智能
当我们面对一个有限拓扑网络的时候,在对已知的拓扑结构进行分析之后,发现在连通点之后,还存在若干个子网络,且这些网络的结构是未知的,数据库中并未存在这些网络的拓扑结构数据....这个时候,我们该怎么办呢?
那么,现在我们必须设计新的模块和代码包来处理上面的问题
oracle merge into的用法
daizj
oracle sql merget into
Oracle中merge into的使用
http://blog.csdn.net/yuzhic/article/details/1896878
http://blog.csdn.net/macle2010/article/details/5980965
该命令使用一条语句从一个或者多个数据源中完成对表的更新和插入数据. ORACLE 9i 中,使用此命令必须同时指定UPDATE 和INSE
不适合使用Hadoop的场景
datamachine
hadoop
转自:http://dev.yesky.com/296/35381296.shtml。
Hadoop通常被认定是能够帮助你解决所有问题的唯一方案。 当人们提到“大数据”或是“数据分析”等相关问题的时候,会听到脱口而出的回答:Hadoop! 实际上Hadoop被设计和建造出来,是用来解决一系列特定问题的。对某些问题来说,Hadoop至多算是一个不好的选择,对另一些问题来说,选择Ha
YII findAll的用法
dcj3sjt126com
yii
看文档比较糊涂,其实挺简单的:
$predictions=Prediction::model()->findAll("uid=:uid",array(":uid"=>10));
第一个参数是选择条件:”uid=10″。其中:uid是一个占位符,在后面的array(“:uid”=>10)对齐进行了赋值;
更完善的查询需要
vim 常用 NERDTree 快捷键
dcj3sjt126com
vim
下面给大家整理了一些vim NERDTree的常用快捷键了,这里几乎包括了所有的快捷键了,希望文章对各位会带来帮助。
切换工作台和目录
ctrl + w + h 光标 focus 左侧树形目录ctrl + w + l 光标 focus 右侧文件显示窗口ctrl + w + w 光标自动在左右侧窗口切换ctrl + w + r 移动当前窗口的布局位置
o 在已有窗口中打开文件、目录或书签,并跳
Java把目录下的文件打印出来
蕃薯耀
列出目录下的文件 文件夹下面的文件 目录下的文件
Java把目录下的文件打印出来
>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
蕃薯耀 2015年7月11日 11:02:
linux远程桌面----VNCServer与rdesktop
hanqunfeng
Desktop
windows远程桌面到linux,需要在linux上安装vncserver,并开启vnc服务,同时需要在windows下使用vnc-viewer访问Linux。vncserver同时支持linux远程桌面到linux。
linux远程桌面到windows,需要在linux上安装rdesktop,同时开启windows的远程桌面访问。
下面分别介绍,以windo
guava中的join和split功能
jackyrong
java
guava库中,包含了很好的join和split的功能,例子如下:
1) 将LIST转换为使用字符串连接的字符串
List<String> names = Lists.newArrayList("John", "Jane", "Adam", "Tom");
Web开发技术十年发展历程
lampcy
android Web 浏览器 html5
回顾web开发技术这十年发展历程:
Ajax
03年的时候我上六年级,那时候网吧刚在小县城的角落萌生。传奇,大话西游第一代网游一时风靡。我抱着试一试的心态给了网吧老板两块钱想申请个号玩玩,然后接下来的一个小时我一直在,注,册,账,号。
彼时网吧用的512k的带宽,注册的时候,填了一堆信息,提交,页面跳转,嘣,”您填写的信息有误,请重填”。然后跳转回注册页面,以此循环。我现在时常想,如果当时a
架构师之mima-----------------mina的非NIO控制IOBuffer(说得比较好)
nannan408
buffer
1.前言。
如题。
2.代码。
IoService
IoService是一个接口,有两种实现:IoAcceptor和IoConnector;其中IoAcceptor是针对Server端的实现,IoConnector是针对Client端的实现;IoService的职责包括:
1、监听器管理
2、IoHandler
3、IoSession
ORA-00054:resource busy and acquire with NOWAIT specified
Everyday都不同
oracle session Lock
[Oracle]
今天对一个数据量很大的表进行操作时,出现如题所示的异常。此时表明数据库的事务处于“忙”的状态,而且被lock了,所以必须先关闭占用的session。
step1,查看被lock的session:
select t2.username, t2.sid, t2.serial#, t2.logon_time
from v$locked_obj
javascript学习笔记
tntxia
JavaScript
javascript里面有6种基本类型的值:number、string、boolean、object、function和undefined。number:就是数字值,包括整数、小数、NaN、正负无穷。string:字符串类型、单双引号引起来的内容。boolean:true、false object:表示所有的javascript对象,不用多说function:我们熟悉的方法,也就是
Java enum的用法详解
xieke90
enum 枚举
Java中枚举实现的分析:
示例:
public static enum SEVERITY{
INFO,WARN,ERROR
}
enum很像特殊的class,实际上enum声明定义的类型就是一个类。 而这些类都是类库中Enum类的子类 (java.l