JAVASCRIPT
JAVASCRIPT
JavaScript介绍
JavaScript是运行在浏览器端的脚本语言,JavaScript主要解决的是前端与用户交互的问题,包括使用交互与数据交互,JavaScript是浏览器解释执行的,前端脚本语言还是Jscript(微软,ID独有),ActionScript(Adoble公司,需要插件)等
前端三大块
HTML:页面结构
CSS:页面表现:元素大小,颜色,位置,隐藏或显示,部分动画效果
JavaScript:页面行为:部分动画效果,页面与用户的交互,页面功能
JavaScript嵌入页面的方式
行间事件(主要用于事件)
< input type= "button" name= "" οnclick= " alert ( 'ok!' ); " value= " 点击我!" >
页面script标签嵌入(内嵌JS)
< script type= "text/javascript" > alert("ok!”); script >
外部引入
< script type= "text/javascript" src= "js/hello.js" > script >
变量
JavaScript是一种弱类型语言,JavaScript的变量类型由它的值来决定的,定义变量需要用关键字var
Var isNum = 123;
Var sTr = ”asdf”
//同时定义多个变量可以使用“,”隔开,公用一个“var”关键字
Var isNum = 45,sTr=”hello world”,sCount=’68’;
变量类型:
5种年基本数据类型:
number 数字类型
string 字符串类型
boolean 布尔类型 true或false
undefined undefined类型,变量声明没有初始化,它的值就是undefined
null null类型,表示空对象,如果定义的变量将来准备保存对象,可以将变量初始化为null,在页面生获取不到对象,返回值就是null
1种复合类型
Object
Javascript语句与注释
一条JavaScript语句应该以“;”结尾
JavaScript注释
单行注释: //
多行注释: /* */
变量、函数、属性、函数参数命名规范:
区分大小写
第一个字符必须是字母,下划线(_)或者美元符号($)
其他字符可以是字母,下划线,美元符号或数字
匈牙利命名风格:
对象o Object 比如:oDiv
数组 a Array 比如:altems
字符串s String 比如:sUserName
整数i Integer 比如:iItemCount
布尔值 b Boolean 比如:bIsComlpete
浮点数 f Float 比如:fPrice
函数 fn Function 比如:fnHandler
正则表达式 re RegExp 比如:reEmailCheck
获取元素方法一
可以使用内置对象document上的getElementById方法来获取页面上设置id属性的元素,获取的是一个html对象,然后将它赋值给一个变量,比如:
< script type= "text/javascript" > var odi = document . getElementById ( "div1" ) script >
上面的语句,如果把JavaScript写在元素的上面,就会报错,因为页面上从上往下加载执行的,JavaScript去页面上获取元素div1的时候,元素div1还没有加载,解决方法有2种:
第一种方法:将JavaScript放到页面最下边
..........
这是第一个div元素
.......
< script type= "text/javascript" > var odi = document . getElementById ( "div1" ) script >
第二种方法:将JavaScript语句放到window.onload触发的函数里面,获取元素的语句会在页面加载完成后才执行,就不会出错了。
< script type= "text/javascript" >
window.onload = function(){ var odi = document . getElementById ( "div1" )
} script >
.......
操作元素属性
获取的页面元素,就可以对页面元素的属性进行操作,属性的操作包括属性的读和写
操作属性的方法
“.”操作
“[]”操作
属性写法
html 的属性和js里面属性写法一样
“class”属性写成“className”
“style” 属性里面的属性,有横杆的改写驼峰式,比如:“font-size”,改写成“style.fontSize”
通过“.”操作属性
< script type= "text/javascript" >
window . onload = function (){
// 通过ID名获取元素赋值给oDiv变量
var oDiv = document . getElementById ( "div1" )
var oa = document . getElementById ( "link" )
// 读取属性
var sId = oDiv . id
alert ( sId )
// 改变元素的属性(写属性)
oDiv . style . color = "red"
oDiv . style . fontSize = "20px"
oa . href = "http://www.baidu.com"
oa . title = " 这是跳转到百度的网址"
var oa2 = document . getElementById ( "div2" )
oa2 . className = "box2"
}
通过“[]”操作属性
< script type= "text/javascript" >
window . onload = function (){
// 通过ID名获取元素赋值给oDiv变量
var oDiv = document . getElementById ( "div1" )
var sMystyle = "color"
var sValue = "red"
/* 属性用变量来替代的话需要用【】来操作 */
oDiv . style [ sMystyle ] = sValue
}
script >
innerHTML
innerHTML 可以读取或者写入标签包裹的内容
< script type= "text/javascript" >
window . onload = function (){
// 通过ID名获取元素赋值给oDiv变量
var oDiv = document . getElementById ( "div1" )
// 读取元素里面的内容
var text = oDiv . innerHTML ;
alert ( text )
// 改写元素里面的内容
//oDiv.innerHTML = "修改一个元素"
oDiv . innerHTML = " 传智播客"
}
script >
< body >
< div id= "div1" > 这是一个元素 div >
body >
函数
函数就是重复执行的代码片。
< head >
< meta charset= "UTF-8" >
< title > JS 函数 title >
< script type= "text/javascript" >
function fnMyalert (){
alert ( "hello world !" )
}
function fnChange (){
var oDiv = document . getElementById ( "div1" )
oDiv . style . color = "red"
oDiv . style . fontSize = "20px"
}
script >
head >
< body >
< div id= "div1" οnclick= " fnMyalert () " > 这是一个div元素 div >
< input type= "button" name= "" value= " 改变div" οnclick= " fnChange () " >
body >
< head >
< meta charset= "UTF-8" >
< title > JS 函数 title >
< script type= "text/javascript" >
function fnMyalert (){
alert ( "hello world !" )
}
function fnChange (){
var oDiv = document . getElementById ( "div1" )
oDiv . style . color = "red"
oDiv . style . fontSize = "20px"
}
script >
head >
< body >
< div id= "div1" οnclick= " fnMyalert () " > 这是一个div元素 div >
< input type= "button" name= "" value= " 改变div" οnclick= " fnChange () " >
body >
匿名函数
定义函数可以不给名称,这个叫做匿名函数,可以将匿名函数直接赋值给元素绑定的事件来完成匿名函数的调用。
< head >
< meta charset= "UTF-8" >
< title > JS 函数 title >
< script type= "text/javascript" >
window . onload = function (){
var oBtn = document . getElementById ( "btn01" );
oBtn .onclick = function (){
var oDiv = document . getElementById ( "div1" )
oDiv . style . color = "red"
oDiv . style . fontSize = "20px"
};
}
script >
head >
< body >
< div id= "div1" > 这是一个div元素 div >
< input id = "btn01" type= "button" name= "" value= " 改变div" >
body >
变量与函数预解析
JavaScript 解析过程分为两个阶段,先是编译阶段,然后执行阶段,在编译阶段将会function定义的函数提前,并且将var定义的变量声明提前,将它赋值undefined.
< script type= "text/javascript" >
// 预解析会把变量的声明提前
alert ( iNum ); // 弹出undefined
alert (iNum01); // 系统会崩溃或出错,因为iNum01没有定义,也没有声明
var iNum = 12 ;
script >
< script type= "text/javascript" >
// 预解析会让函数的声明和定义提前,正常用它
myalert ();
function myalert (){
alert ( "hello world!" );
}
script >
函数传参
< script type= "text/javascript" >
function fnMyalert (a){
alert (a);
}
fnMyalert ( "hello world!" )
fnMyalert ( 12 )
script >
< script type= "text/javascript" >
window . onload = function (){
function fnChangestyle (myStyle,val){
var oDiv = document . getElementById ( "div01" )
oDiv . style [myStyle] = val;
}
fnChangestyle ( 'fontSize' , '30px' );
fnChangestyle ( 'color' , 'red' );
fnChangestyle ( 'backgroundColor' , 'pink' );
}
script >
函数return关键字
函数中‘return’关键字的作用
返回函数执行的结果
结束函数的运行
阻止默认行为
< script type= "text/javascript" >
function fnAdd (a,b){
var c = a + b
return c ;
}
var isResult = fnAdd ( 2 , 5 );
alert ( isResult )
script >
条件语句
通过条件来控制程序的走向,就需要用到条件语句
运算符
算术运算符:+(加),-(减),*(乘),/(除),%(求余)
赋值运算: =,+=,-=,*=,/=,%=,++(自增1)
条件运算符:==,===(先比较两边的类型,然后在比较值),>,>=,<,<=,!=,&&(而且),||(或者),!(否)
If else
< script type= "text/javascript" >
var iNum01 = 2 ;
var sNum01 = '2' ;
if ( iNum01 === sNum01 ){
alert ( " 相等" );
} else {
alert ( " 不相等" );
}
if ( 3 != 4 ){
alert ( "true" );
} else {
alert ( "false" );
}
if (! 4 > 3 ){
alert ( " 大于" );
} else {
alert ( " 非大于" );
}
if ( 4 > 3 && 5 > 2 ){
alert ( " 满足" );
} else {
alert ( " 不满足" );
}
if ( 4 > 3 || 5 < 2 ){
alert ( " 部分满足" );
} else {
alert ( " 全部不满足" );
}
script >
Switch语句
多重if else语句可以换成性能更高的switch语句
< head >
< meta charset= "UTF-8" >
< title > 网页换肤 title >
< link id = "link01" type= "text/css" rel= "stylesheet" href= "css/skin01.css" >
< script type= "text/javascript" >
window . onload = function (){
var iWeek = 3 ;
var oBody = document . getElementById ( 'body01' );
switch ( iWeek ){
case 1 :
oBody . style . backgroundColor = 'gold' ;
break ;
case 2 :
oBody . style . backgroundColor = 'pink' ;
break ;
case 3 :
oBody . style . backgroundColor = 'green' ;
break ;
case 4 :
oBody . style . backgroundColor = 'yellowgreen' ;
break ;
case 5 :
oBody . style . backgroundColor = 'lightblue' ;
break ;
case 6 :
oBody . style . backgroundColor = 'lightgreen' ;
break ;
default :
break ;
}
}
script >
head >
< body id= "body01" >
body >
数组及操作方法
数组就是一组数据的集合,JavaScript中,数组里面的数据可以是不同类型的。
定义数组的方法
< script type= "text/javascript" >
// 对象的实例创建
var aList01 = new Array( 1 , 2 , 3 , 4 );
// 直接创建(通常使用这个方法来创建数组)
var aList02 = [ 1 , 2 , 3 , 4 , 5 ];
script >
操作数组中数据的方法
获取数组的长度:aList.length;
< script type= "text/javascript" >
var aList02 = [ 1 , 2 , 3 , 4 , 5 ];
// 通过 length 来 获取数组的长度
alert ( aList02 . length );
script >
用下标操作数组的某个数量:aList[0];
Join()将数组成员通过一个分隔符合并成字符串
< script type= "text/javascript" >
var aList02 = [ 1 , 2 , 3 , 4 , 5 ];
var sTr = aList02.join(“-”);
alert(sTr);// 弹出1-2-3-4-5
Push()和pop()从数组最后增加成员或删除成员
< script type= "text/javascript" >
var aList02 = [ 1 , 2 , 3 , 4 , 5 ];
//Push() 和pop()从数组最后增加成员或删除成员
aList02 . push ( 'b' );
alert ( aList02 );
aList02 . pop ()
alert ( aList02 );
script >
Unshift()和shift()从数组前面增加成员或删除成员
< script type= "text/javascript" >
var aList02 = [ 1 , 2 , 3 , 4 , 5 ];
aList02 . unshift ( 'b' )
alert ( aList02 )
aList02 . shift ()
alert ( aList02 );
script >
reverse()将数组反转
< script type= "text/javascript" >
var aList02 = [ 1 , 2 , 3 , 4 , 5 ];
aList02 . reserve ()
alert ( aList02 );
script >
indexof()返回数组中元素第一次出现的索引值
< script type= "text/javascript" >
var aList03 =[ 'a' , 'b' , 'c' , 'a' , 'b' , 'c' ]
alert ( aList03 . indexOf ( 'b' ))
script >
splice()在数组中增加或删除成员
第一个参数是开始的位置,第二个参数是从起始位置删除多少个成员,第三个之后(包括第三个)的是要增加的成员的值
< script type= "text/javascript" >
var aList03 =[ 'a' , 'b' , 'c' , 'd' , 'a' , 'b' , 'c' ];
// aList03.splice(1,0,'e') ;// 从第2个开始不删除,在1的位置增加一个e
// alert(aList03);//'a','e','b','c','d','a','b','c'
aList03 . splice ( 1 , 2 , 'f' , 'g' ); // 从第2个开始删除b,c,在1的位置增加一个f,g
alert ( aList03 ); // a,f,g,d,a,b,c
script >
多维数组
多维数组指的是数组的成员也是数组的数组
< script type= "text/javascript" >
var aList = [[ 1 , 2 , 3 ],[ 'a' , 'b' , 'c' , 'd' ],[ 4 , 5 , 6 ],[ 6 , 7 , 8 ]];
alert ( aList . length ) //4
alert ( aList [ 0 ]. length ) //3
alert ( aList [ 0 ][ 1 ]); //2
script >
循环
批量操作数组中的数据,需要使用到循环语句
循环语句
程序中进行有规律的重复性操作,需要使用到循环语句
For 循环
< script type= "text/javascript" >
for ( var i = 0 ; i i ++){
.....
}
script >
< script type= "text/javascript" >
var aList =[ 1 , 2 , 3 , 4 , 5 , 6 ];
var iLen = aList . length ;
for ( var i = 0 ; i < iLen ; i ++){
alert ( aList [ i ]);
}
script >
While 循环
< script type= "text/javascript" >
var i =0;
While(i<0){
i++;
}
script >
数组去重
< script type= "text/javascript" > var aList = [ 1 , 2 , 3 , 2 , 3 , 4 , 6 , 7 , 8 , 5 , 9 , 3 , 2 , 1 , 8 , 5 , 4 , 5 , 6 ]; var aList2 =[]; for ( var i = 0 ; i < aList . length ; i ++){ if ( aList . indexOf ( aList [ i ])== i ){ aList2 . push ( aList [ i ]); } } alert ( aList2 ); script
获取元素方法二
可以使用内置对象document上的getElementByTagName方法来获取页面上的某一标签,获取的是一个选择集,不是数组,但可以用下标的方式操作选择集里面的标签元素
< script type= "text/javascript" > window . onload = function (){ // 通过标签名称获取li元素,生成一个选择集,赋值给aLi /* var aLi = document.getElementsByTagName("li"); var iLen = aLi.length; //读取选择集内元素的个数 //alert(aLi.length); //同时给所有的li加背景色 for(var i=0;i //设置背景色 aLi[i].style.background = "gold"; }*/ //给指定li加背景色 var oUl = document . getElementById ( "list1" ); var aList = oUl . getElementsByTagName ( "li" ); var iLen = aList . length alert ( aList . length ) for ( var i = 0 ; i < iLen ; i ++) { if ( i % 2 == 0 ){ aList [ i ]. style . background = "gold" ; } } } script >
Javascript组成
ECMAscript JavaScript的语法(变量,函数,循环语句等语法)
DOM文档对象模型 操作html和css的方法
BOM浏览器对象模型 操作浏览器的一些方法
字符串处理方法:
字符串合并操作:“+”
ParseInt()将数字字符串转化为整数
ParseFloat()将数字字符串转为小数
Split()把一个字符串分割成字符串组成的数组
ChartAt()获取字符串中的某一个字符
Indexof()查找字符串是否含有某字符
Substring()截取字符串用法:substring(start,end)(不包括end)
toUpperCase()字符串转大写
toLowerCase()字符串转小写
< script type= "text/javascript" > var iNum01 = 12 ; var sTr = "abc" ; var iNum02 = "34" ; // 数字和字符串相加 等同于字符串拼接 alert ( iNum01 + iNum02 ); // 弹出1234 alert ( iNum02 + sTr ); // 弹出34abc var sTr = '12.35' ; // 将数字字符串转化为整数 alert ( parseInt ( sTr )); // 弹出12 //将数字字符串转化为小数 alert ( parseFloat ( sTr )); // 弹出12.35 //把一个字符串分割成字符串组成的数组 var sTr = "2017-4-22" ; var aList = sTr . split ( "-" ); alert ( aList ); // 弹出['2017','4','22'] var aList02 = sTr . split ( "" ); alert ( aList02 ); // 弹出['2','0','1','7','-','4','-','2','2'] //获取字符串中的某一个字符 var sTr04 = "#div" ; var sTr05 = sTr04 . charAt ( 0 ); alert ( sTr05 ); // 弹出# //查找字符串是否含有某字符,indemxOf(),如果不存在的话就会弹出-1,找到的话就会弹出对应的索引值 var sTr06 = "abcdf microsoft asdf1" ; alert ( sTr06 . indexOf ( 'microsoft' )); // 弹出 6,弹出-1 //截取字符串用法 var sTr07 = "abcdf123456gh" ; var sTr08 = sTr07 . substring ( 5 , 11 ); alert ( sTr08 ); //// 弹出 123456 script >
用最快的方式实现字符串反转
< script >
var sTr09 = "abcdfmicrosoft12345asdf1" var sTr10 = sTr09 . split ( "" ). reverse (). join (); alert ( sTr10 ); // 弹出1,f,d,s,a,5,4,3,2,1,t,f,o,s,o,r,c,i,m,f,d,c,b,a script >
定时器
制作动画
异步操作
函数缓冲与节流
定时器类型及语法
定时器有2种:
setTimeout 只执行一次的定时器
setInterval 反复执行的定时器
clearTimeout 关闭只执行一次的定时器
clearInterval 关闭反复执行的定时器
变量作用域
变量作用域指的是变量的作用域范围,JavaScript中的变量分为全局变量和局部变量
全局变量:在函数之外定义的变量,为整个项目页面共用,函数内部外部都可以访问有
局部变量:在函数内部定义变量,只能在定义该变量的函数内部访问,外部无法访问。
封闭函数
封闭函数是JavaScript中匿名函数的另外一种写法,创建一个开始就执行而比用命名的函数。
一般定义函数和执行函数
Function myAlert(){
Alert(“hello world!”);
}
myAlert()
封闭函数:
(function myAlert(){
Alert(“hello world!”);
} )();
还可以在函数定义前加上“~”和“!”等符号来定义匿名函数
!function myAlert(){
Alert(“hello world!”);
}
在封闭函数前加一个“;”,可以避免JS压缩时候出错 ;(function myalert(){ alert("hello world!") })();
常用内置对象
document
< script type= "text/javascript" >
// 通过Id获取元素
document . getElementById ()
// 通过标签获取元素
document . getElementsByTagName ()
// 获取上一个页面跳转页面的地址
document . referrer
script >
location
// 获取或重定URL地址
window . location . href
// 获取地址参数部分
window . location . search
// 获取页面锚点或者叫哈希值
window . location . hash
Math
//获取0-1的随机数,不包括1
Math.random
//向下取整
Math.floor
//向上取整
Math.ceil
< script type= "text/javascript" > var iPi = Math . PI ; alert ( iPi ); //Math.random() 只能返回从0到1之间的随机数,不包括1 var iNum = Math . random (); var aArr =[]; for ( var i = 0 ; i < 20 ; i ++){ aArr . push ( iNum ) } //alert(aArr); console . log ( aArr ); // 向下取整,去除小数部分 alert ( Math . floor ( 5.6 )); //5 // 向上取整,去除小数部分,整体加1 alert ( Math . ceil ( 5.2 )); //6 //10-20 之间的随机数 var iN01 = 10 ; var iN02 = 20 ; var aList02 =[]; for ( var i = 0 ; i < 40 ; i ++){ var iNum = Math . floor (( iN02 - iN01 )* Math . random ()+ 1 ) + iN01 ; aList02 . push ( iNum ); } console . log ( aList02 ); script >
调试程序的方法
alert :直接弹出框给你看你想要看的变量
console.log:在console里面看得到你想要的变量值
document.title
你可能感兴趣的:(Python,前端)
python 读excel每行替换_Python脚本操作Excel实现批量替换功能
weixin_39646695
python 读excel每行替换
Python脚本操作Excel实现批量替换功能大家好,给大家分享下如何使用Python脚本操作Excel实现批量替换。使用的工具Openpyxl,一个处理excel的python库,处理excel,其实针对的就是WorkBook,Sheet,Cell这三个最根本的元素~明确需求原始excel如下我们的目标是把下面excel工作表的sheet1表页A列的内容“替换我吧”批量替换为B列的“我用来替换的
day15|前端框架学习和算法
universe_01
前端 算法 笔记
T22括号生成先把所有情况都画出来,然后(在满足什么情况下)把不符合条件的删除。T78子集要画树状图,把思路清晰。可以用暴力法、回溯法和DFS做这个题DFS深度搜索:每个边都走完,再回溯应用:二叉树搜索,图搜索回溯算法=DFS+剪枝T200岛屿数量(非常经典BFS宽度把树状转化成队列形式,lambda匿名函数“一次性的小函数,没有名字”setup语法糖:让代码更简洁好写的语法ref创建:基本类型的
python笔记14介绍几个魔法方法
抢公主的大魔王
python python
python笔记14介绍几个魔法方法先声明一下各位大佬,这是我的笔记。如有错误,恳请指正。另外,感谢您的观看,谢谢啦!(1).__doc__输出对应的函数,类的说明文档print(print.__doc__)print(value,...,sep='',end='\n',file=sys.stdout,flush=False)Printsthevaluestoastream,ortosys.std
Anaconda 和 Miniconda:功能详解与选择建议
古月฿
python入门 python conda
Anaconda和Miniconda详细介绍一、Anaconda的详细介绍1.什么是Anaconda?Anaconda是一个开源的包管理和环境管理工具,在数据科学、机器学习以及科学计算领域发挥着关键作用。它以Python和R语言为基础,为用户精心准备了大量预装库和工具,极大地缩短了搭建数据科学环境的时间。对于那些想要快速开展数据分析、模型训练等工作的人员来说,Anaconda就像是一个一站式的“数
环境搭建 | Python + Anaconda / Miniconda + PyCharm 的安装、配置与使用
本文将分别介绍Python、Anaconda/Miniconda、PyCharm的安装、配置与使用,详细介绍Python环境搭建的全过程,涵盖Python、Pip、PythonLauncher、Anaconda、Miniconda、Pycharm等内容,以官方文档为参照,使用经验为补充,内容全面而详实。由于图片太多,就先贴一个无图简化版吧,详情请查看Python+Anaconda/Minicond
你竟然还在用克隆删除?Conda最新版rename命令全攻略!
曦紫沐
Python基础知识 conda 虚拟环境管理
文章摘要Conda虚拟环境管理终于迎来革命性升级!本文揭秘Conda4.9+版本新增的rename黑科技,彻底告别传统“克隆+删除”的繁琐操作。从命令解析到实战案例,手把手教你如何安全高效地重命名Python虚拟环境,附带版本检测、环境迁移、故障排查等进阶技巧,助你提升开发效率10倍!一、颠覆认知:Conda居然自带重命名功能?很多开发者仍停留在“Conda无法直接重命名环境”的认知阶段,实际上自
centos7安装配置 Anaconda3
Anaconda是一个用于科学计算的Python发行版,Anaconda于Python,相当于centos于linux。下载[root@testsrc]#mwgethttps://mirrors.tuna.tsinghua.edu.cn/anaconda/archive/Anaconda3-5.2.0-Linux-x86_64.shBegintodownload:Anaconda3-5.2.0-L
Pandas:数据科学的超级瑞士军刀
科技林总
DeepSeek学AI 人工智能
**——从零基础到高效分析的进化指南**###**一、Pandas诞生:数据革命的救世主****2010年前的数据分析噩梦**:```python#传统Python处理表格数据data=[]forrowincsv_file:ifrow[3]>100androw[2]=="China":data.append(float(row[5])#代码冗长易错!```**核心痛点**:-Excel处理百万行崩
【Jupyter】个人开发常见命令
TIM老师
# Pycharm & VSCode python Jupyter
1.查看python版本importsysprint(sys.version)2.ipynb/py文件转换jupyternbconvert--topythonmy_file.ipynbipynb转换为mdjupyternbconvert--tomdmy_file.ipynbipynb转为htmljupyternbconvert--tohtmlmy_file.ipynbipython转换为pdfju
用 Python 开发小游戏:零基础也能做出《贪吃蛇》
本文专为零基础学习者打造,详细介绍如何用Python开发经典小游戏《贪吃蛇》。无需复杂编程知识,从环境搭建到代码编写、功能实现,逐步讲解核心逻辑与操作。涵盖Pygame库的基础运用、游戏界面设计、蛇的移动与食物生成规则等,让新手能按步骤完成开发,同时融入SEO优化要点,帮助读者轻松入门Python游戏开发,体验从0到1做出游戏的乐趣。一、为什么选择用Python开发《贪吃蛇》对于零基础学习者来说,
基于Python的AI健康助手:开发与部署全攻略
AI算力网络与通信
AI算力网络与通信原理 AI人工智能大数据架构 python 人工智能 开发语言 ai
基于Python的AI健康助手:开发与部署全攻略关键词:Python、AI健康助手、机器学习、自然语言处理、Flask、部署、健康管理摘要:本文将详细介绍如何使用Python开发一个AI健康助手,从需求分析、技术选型到核心功能实现,再到最终部署上线的完整过程。我们将使用自然语言处理技术理解用户健康咨询,通过机器学习模型提供个性化建议,并展示如何用Flask框架构建Web应用接口。文章包含大量实际代
AI人工智能中的数据挖掘:提升智能决策能力
AI人工智能中的数据挖掘:提升智能决策能力关键词:数据挖掘、人工智能、机器学习、智能决策、数据分析、特征工程、模型优化摘要:本文深入探讨了数据挖掘在人工智能领域中的核心作用,重点分析了如何通过数据挖掘技术提升智能决策能力。文章从基础概念出发,详细介绍了数据挖掘的关键算法、数学模型和实际应用场景,并通过Python代码示例展示了数据挖掘的全流程。最后,文章展望了数据挖掘技术的未来发展趋势和面临的挑战
lesson20:Python函数的标注
你的电影很有趣
python 开发语言
目录引言:为什么函数标注是现代Python开发的必备技能一、函数标注的基础语法1.1参数与返回值标注1.2支持的标注类型1.3Python3.9+的重大改进:标准集合泛型二、高级标注技巧与最佳实践2.1复杂参数结构标注2.2函数类型与回调标注2.3变量注解与类型别名三、静态类型检查工具应用3.1mypy:最流行的类型检查器3.2Pyright与IDE集成3.3运行时类型验证四、函数标注的工程价值与
vue element 封装表单
影子信息
vue vue.js javascript 前端
背景:在前端系统开发中,系统页面涉及到的表单组件比较多,所以进行了简单的封装。封装的包括一些Form表单组件,如下:input输入框、select下拉框、等实现效果:理论知识:表单组件官方链接:点击跳转封装组件:封装组件的思路:不封装element组件,每一个input组件绑定一个form对象,例如官网。简单封装element组件,利用for循环生成form表单的每一项el-form-item。进
前端面试每日 3+1 —— 第39天
浪子神剑
今天的面试题(2019.05.25)——第39天[html]title与h1、b与strong、i与em的区别分别是什么?[css]写出你知道的CSS水平和垂直居中的方法[js]说说你对模块化的理解[软技能]公钥加密和私钥加密是什么?《论语》,曾子曰:“吾日三省吾身”(我每天多次反省自己)。前端面试每日3+1题,以面试题来驱动学习,每天进步一点!让努力成为一种习惯,让奋斗成为一种享受!欢迎在Iss
Jupyter Notebook:数据科学的“瑞士军刀”
a小胡哦
机器学习基础 人工智能 机器学习
在数据科学的世界里,JupyterNotebook是一个不可或缺的工具,它就像是数据科学家手中的“瑞士军刀”,功能强大且灵活多变。今天,就让我们一起深入了解这个神奇的工具。一、JupyterNotebook是什么?JupyterNotebook是一个开源的Web应用程序,它允许你创建和共享包含实时代码、方程、可视化和解释性文本的文档。它支持多种编程语言,其中Python是最常用的语言之一。Jupy
Django学习笔记(一)
学习视频为:pythondjangoweb框架开发入门全套视频教程一、安装pipinstalldjango==****检查是否安装成功django.get_version()二、django新建项目操作1、新建一个项目django-adminstartprojectproject_name2、新建APPcdproject_namedjango-adminstartappApp注:一个project
Python 程序设计讲义(26):字符串的用法——字符的编码
睿思达DBA_WGX
Python 讲义 python 开发语言
Python程序设计讲义(26):字符串的用法——字符的编码目录Python程序设计讲义(26):字符串的用法——字符的编码一、字符的编码二、`ASCII`编码三、`Unicode`编码四、使用`ord()`函数查询一个字符对应的`Unicode`编码五、使用`chr()`函数查询一个`Unicode`编码对应的字符六、`Python`字符串的特征一、字符的编码计算机默认只能处理二进制数,而不能处
【Python】pypinyin-汉字拼音转换工具
鸟哥大大
Python python 自然语言处理
文章目录1.主要功能2.安装3.常用API3.1拼音风格3.2核心API3.2.1pypinyin.pinyin()3.2.2pypinyin.lazy_pinyin()3.2.3pypinyin.load_single_dict()3.2.4pypinyin.load_phrases_dict()3.2.5pypinyin.slug()3.3注册新的拼音风格4.基本用法4.1库导入4.2基本汉字
python编程第十四课:数据可视化
小小源助手
Python代码实例 信息可视化 python 开发语言
Python数据可视化:让数据“开口说话”在当今数据爆炸的时代,数据可视化已成为探索数据规律、传达数据信息的关键技术。Python凭借其丰富的第三方库,为数据可视化提供了强大而灵活的解决方案。本文将带你深入了解Matplotlib库的基础绘图、Seaborn库的高级可视化以及交互式可视化工具Plotly,帮助你通过图表清晰地展示数据背后的故事。一、Matplotlib库基础绘图Matplotlib
Python数据可视化:用代码绘制数据背后的故事
AAEllisonPang
Python 信息可视化 python 开发语言
引言:当数据会说话在数据爆炸的时代,可视化是解锁数据价值的金钥匙。Python凭借其丰富的可视化生态库,已成为数据科学家的首选工具。本文将带您从基础到高级,探索如何用Python将冰冷数字转化为引人入胜的视觉叙事。一、基础篇:二维可视化的艺术表达1.1Matplotlib:可视化领域的瑞士军刀importmatplotlib.pyplotaspltimportnumpyasnpx=np.linsp
python学习笔记(汇总)
朕的剑还未配妥
python学习笔记整理 python 学习 开发语言
文章目录一.基础知识二.python中的数据类型三.运算符四.程序的控制结构五.列表六.字典七.元组八.集合九.字符串十.函数十一.解决bug一.基础知识print函数字符串要加引号,数字可不加引号,如print(123.4)print('小谢')print("洛天依")还可输入表达式,如print(1+3)如果使用三引号,print打印的内容可不在同一行print("line1line2line
前端数据库:IndexedDB从基础到高级使用指南
文章目录前端数据库:IndexedDB从基础到高级使用指南引言一、IndexedDB概述1.1什么是IndexedDB1.2与其他存储方案的比较二、基础使用2.1打开/创建数据库2.2基本CRUD操作添加数据读取数据更新数据删除数据三、高级特性3.1复杂查询与游标3.2事务高级用法3.3性能优化技巧四、实战案例:构建离线优先的待办事项应用4.1数据库设计4.2同步策略实现五、常见问题与解决方案5.
PDF转Markdown - Python 实现方案与代码
Eiceblue
Python Python PDF pdf python 开发语言 vscode
PDF作为广泛使用的文档格式,转换为轻量级标记语言Markdown后,可无缝集成到技术文档、博客平台和版本控制系统中,提高内容的可编辑性和可访问性。本文将详细介绍如何使用国产Spire.PDFforPython库将PDF文档转换为Markdown格式。技术优势:精准保留原始文档结构(段落/列表/表格)完整提取文本和图像内容无需Adobe依赖的纯Python实现支持Linux/Windows/mac
使用Python和Gradio构建实时数据可视化工具
PythonAI编程架构实战家
信息可视化 python 开发语言 ai
使用Python和Gradio构建实时数据可视化工具关键词:Python、Gradio、数据可视化、实时数据、Web应用、交互式界面、数据科学摘要:本文将详细介绍如何使用Python和Gradio框架构建一个实时数据可视化工具。我们将从基础概念开始,逐步深入到核心算法实现,包括数据处理、可视化技术以及Gradio的交互式界面设计。通过实际项目案例,读者将学习如何创建一个功能完整、响应迅速的实时数据
Python Gradio:实现交互式图像编辑
PythonAI编程架构实战家
Python编程之道 python 开发语言 ai
PythonGradio:实现交互式图像编辑关键词:Python,Gradio,交互式图像编辑,计算机视觉,深度学习,图像处理,Web应用摘要:本文将深入探讨如何使用Python的Gradio库构建交互式图像编辑应用。我们将从基础概念开始,逐步介绍Gradio的核心功能,并通过实际代码示例展示如何实现各种图像处理功能。文章将涵盖图像滤镜应用、对象检测、风格迁移等高级功能,同时提供完整的项目实战案例
数据可视化:数据世界的直观呈现
卢政权1
信息可视化 数据分析 数据挖掘
在当今数字化浪潮中,数据呈爆炸式增长。数据可视化作为一种强大的技术手段,能够将复杂的数据转化为直观的图形、图表等形式,让数据背后的信息一目了然。无论是在商业决策、科学研究还是日常数据分析中,数据可视化都发挥着极为重要的作用。它帮助我们快速理解数据的分布、趋势、关联等特征,从而为进一步的分析和行动提供有力支持。接下来,我们将深入探讨数据可视化的奥秘,并通过代码示例展示其实际应用。一、Python数据
Python 程序设计讲义(25):循环结构——嵌套循环
Python程序设计讲义(25):循环结构——嵌套循环目录Python程序设计讲义(25):循环结构——嵌套循环一、嵌套循环的执行流程二、嵌套循环对应的几种情况1、内循环和外循环互不影响2、外循环迭代影响内循环的条件3、外循环迭代影响内循环的循环体嵌套循环是指在一个循环体中嵌套另一个循环。while循环中可以嵌入另一个while循环或for循环。反之,也可以在for循环中嵌入另一个for循环或wh
【Java Web实战】从零到一打造企业级网上购书网站系统 | 完整开发实录(三)
笙囧同学
java 前端 状态模式
核心功能设计用户管理系统用户管理是整个系统的基础,我设计了完整的用户生命周期管理:用户注册流程验证失败验证通过验证失败验证通过用户名已存在用户名可用失败成功用户访问注册页面填写注册信息前端表单验证显示错误提示提交到后端后端数据验证返回错误信息用户名唯一性检查提示用户名重复密码加密处理保存用户信息保存成功?显示系统错误注册成功跳转登录页面登录认证机制深度解析我实现了一套企业级的多层次安全认证机制:认
从零到一:打造基于GigaChat AI的艺术创作平台 | 笙囧同学的全栈开发实战
作者简介:笙囧同学,中科院计算机大模型方向硕士,全栈开发爱好者联系方式:
[email protected] 各大平台账号:笙囧同学座右铭:偷懒是人生进步的阶梯前言在AI技术飞速发展的今天,如何将前沿的大模型技术与实际应用相结合,一直是我们开发者关注的焦点。今天,笙囧同学将带大家从零开始,构建一个基于GigaChatAI的艺术创作平台,实现React前端+Django后端的完整全栈解决方案。这不仅仅是
web前段跨域nginx代理配置
刘正强
nginx cms Web
nginx代理配置可参考server部分
server {
listen 80;
server_name localhost;
spring学习笔记
caoyong
spring
一、概述
a>、核心技术 : IOC与AOP
b>、开发为什么需要面向接口而不是实现
接口降低一个组件与整个系统的藕合程度,当该组件不满足系统需求时,可以很容易的将该组件从系统中替换掉,而不会对整个系统产生大的影响
c>、面向接口编口编程的难点在于如何对接口进行初始化,(使用工厂设计模式)
Eclipse打开workspace提示工作空间不可用
0624chenhong
eclipse
做项目的时候,难免会用到整个团队的代码,或者上一任同事创建的workspace,
1.电脑切换账号后,Eclipse打开时,会提示Eclipse对应的目录锁定,无法访问,根据提示,找到对应目录,G:\eclipse\configuration\org.eclipse.osgi\.manager,其中文件.fileTableLock提示被锁定。
解决办法,删掉.fileTableLock文件,重
Javascript 面向对面写法的必要性?
一炮送你回车库
JavaScript
现在Javascript面向对象的方式来写页面很流行,什么纯javascript的mvc框架都出来了:ember
这是javascript层的mvc框架哦,不是j2ee的mvc框架
我想说的是,javascript本来就不是一门面向对象的语言,用它写出来的面向对象的程序,本身就有些别扭,很多人提到js的面向对象首先提的是:复用性。那么我请问你写的js里有多少是可以复用的,用fu
js array对象的迭代方法
换个号韩国红果果
array
1.forEach 该方法接受一个函数作为参数, 对数组中的每个元素
使用该函数 return 语句失效
function square(num) {
print(num, num * num);
}
var nums = [1,2,3,4,5,6,7,8,9,10];
nums.forEach(square);
2.every 该方法接受一个返回值为布尔类型
对Hibernate缓存机制的理解
归来朝歌
session 一级缓存 对象持久化
在hibernate中session一级缓存机制中,有这么一种情况:
问题描述:我需要new一个对象,对它的几个字段赋值,但是有一些属性并没有进行赋值,然后调用
session.save()方法,在提交事务后,会出现这样的情况:
1:在数据库中有默认属性的字段的值为空
2:既然是持久化对象,为什么在最后对象拿不到默认属性的值?
通过调试后解决方案如下:
对于问题一,如你在数据库里设置了
WebService调用错误合集
darkranger
webservice
Java.Lang.NoClassDefFoundError: Org/Apache/Commons/Discovery/Tools/DiscoverSingleton
调用接口出错,
一个简单的WebService
import org.apache.axis.client.Call;import org.apache.axis.client.Service;
首先必不可
JSP和Servlet的中文乱码处理
aijuans
Java Web
JSP和Servlet的中文乱码处理
前几天学习了JSP和Servlet中有关中文乱码的一些问题,写成了博客,今天进行更新一下。应该是可以解决日常的乱码问题了。现在作以下总结希望对需要的人有所帮助。我也是刚学,所以有不足之处希望谅解。
一、表单提交时出现乱码:
在进行表单提交的时候,经常提交一些中文,自然就避免不了出现中文乱码的情况,对于表单来说有两种提交方式:get和post提交方式。所以
面试经典六问
atongyeye
工作 面试
题记:因为我不善沟通,所以在面试中经常碰壁,看了网上太多面试宝典,基本上不太靠谱。只好自己总结,并试着根据最近工作情况完成个人答案。以备不时之需。
以下是人事了解应聘者情况的最典型的六个问题:
1 简单自我介绍
关于这个问题,主要为了弄清两件事,一是了解应聘者的背景,二是应聘者将这些背景信息组织成合适语言的能力。
我的回答:(针对技术面试回答,如果是人事面试,可以就掌
contentResolver.query()参数详解
百合不是茶
android query()详解
收藏csdn的博客,介绍的比较详细,新手值得一看 1.获取联系人姓名
一个简单的例子,这个函数获取设备上所有的联系人ID和联系人NAME。
[java]
view plain
copy
public void fetchAllContacts() {
 
ora-00054:resource busy and acquire with nowait specified解决方法
bijian1013
oracle 数据库 kill nowait
当某个数据库用户在数据库中插入、更新、删除一个表的数据,或者增加一个表的主键时或者表的索引时,常常会出现ora-00054:resource busy and acquire with nowait specified这样的错误。主要是因为有事务正在执行(或者事务已经被锁),所有导致执行不成功。
1.下面的语句
web 开发乱码
征客丶
spring Web
以下前端都是 utf-8 字符集编码
一、后台接收
1.1、 get 请求乱码
get 请求中,请求参数在请求头中;
乱码解决方法:
a、通过在web 服务器中配置编码格式:tomcat 中,在 Connector 中添加URIEncoding="UTF-8";
1.2、post 请求乱码
post 请求中,请求参数分两部份,
1.2.1、url?参数,
【Spark十六】: Spark SQL第二部分数据源和注册表的几种方式
bit1129
spark
Spark SQL数据源和表的Schema
case class
apply schema
parquet
json
JSON数据源 准备源数据
{"name":"Jack", "age": 12, "addr":{"city":"beijing&
JVM学习之:调优总结 -Xms -Xmx -Xmn -Xss
BlueSkator
-Xss -Xmn -Xms -Xmx
堆大小设置JVM 中最大堆大小有三方面限制:相关操作系统的数据模型(32-bt还是64-bit)限制;系统的可用虚拟内存限制;系统的可用物理内存限制。32位系统下,一般限制在1.5G~2G;64为操作系统对内存无限制。我在Windows Server 2003 系统,3.5G物理内存,JDK5.0下测试,最大可设置为1478m。典型设置:
java -Xmx355
jqGrid 各种参数 详解(转帖)
BreakingBad
jqGrid
jqGrid 各种参数 详解 分类:
源代码分享
个人随笔请勿参考
解决开发问题 2012-05-09 20:29 84282人阅读
评论(22)
收藏
举报
jquery
服务器
parameters
function
ajax
string
读《研磨设计模式》-代码笔记-代理模式-Proxy
bylijinnan
java 设计模式
声明: 本文只为方便我个人查阅和理解,详细的分析以及源代码请移步 原作者的博客http://chjavach.iteye.com/
import java.lang.reflect.InvocationHandler;
import java.lang.reflect.Method;
import java.lang.reflect.Proxy;
/*
* 下面
应用升级iOS8中遇到的一些问题
chenhbc
ios8 升级iOS8
1、很奇怪的问题,登录界面,有一个判断,如果不存在某个值,则跳转到设置界面,ios8之前的系统都可以正常跳转,iOS8中代码已经执行到下一个界面了,但界面并没有跳转过去,而且这个值如果设置过的话,也是可以正常跳转过去的,这个问题纠结了两天多,之前的判断我是在
-(void)viewWillAppear:(BOOL)animated
中写的,最终的解决办法是把判断写在
-(void
工作流与自组织的关系?
comsci
设计模式 工作
目前的工作流系统中的节点及其相互之间的连接是事先根据管理的实际需要而绘制好的,这种固定的模式在实际的运用中会受到很多限制,特别是节点之间的依存关系是固定的,节点的处理不考虑到流程整体的运行情况,细节和整体间的关系是脱节的,那么我们提出一个新的观点,一个流程是否可以通过节点的自组织运动来自动生成呢?这种流程有什么实际意义呢?
这里有篇论文,摘要是:“针对网格中的服务
Oracle11.2新特性之INSERT提示IGNORE_ROW_ON_DUPKEY_INDEX
daizj
oracle
insert提示IGNORE_ROW_ON_DUPKEY_INDEX
转自:http://space.itpub.net/18922393/viewspace-752123
在 insert into tablea ...select * from tableb中,如果存在唯一约束,会导致整个insert操作失败。使用IGNORE_ROW_ON_DUPKEY_INDEX提示,会忽略唯一
二叉树:堆
dieslrae
二叉树
这里说的堆其实是一个完全二叉树,每个节点都不小于自己的子节点,不要跟jvm的堆搞混了.由于是完全二叉树,可以用数组来构建.用数组构建树的规则很简单:
一个节点的父节点下标为: (当前下标 - 1)/2
一个节点的左节点下标为: 当前下标 * 2 + 1
&
C语言学习八结构体
dcj3sjt126com
c
为什么需要结构体,看代码
# include <stdio.h>
struct Student //定义一个学生类型,里面有age, score, sex, 然后可以定义这个类型的变量
{
int age;
float score;
char sex;
}
int main(void)
{
struct Student st = {80, 66.6,
centos安装golang
dcj3sjt126com
centos
#在国内镜像下载二进制包
wget -c http://www.golangtc.com/static/go/go1.4.1.linux-amd64.tar.gz
tar -C /usr/local -xzf go1.4.1.linux-amd64.tar.gz
#把golang的bin目录加入全局环境变量
cat >>/etc/profile<
10.性能优化-监控-MySQL慢查询
frank1234
性能优化 MySQL慢查询
1.记录慢查询配置
show variables where variable_name like 'slow%' ; --查看默认日志路径
查询结果:--不用的机器可能不同
slow_query_log_file=/var/lib/mysql/centos-slow.log
修改mysqld配置文件:/usr /my.cnf[一般在/etc/my.cnf,本机在/user/my.cn
Java父类取得子类类名
happyqing
java this 父类 子类 类名
在继承关系中,不管父类还是子类,这些类里面的this都代表了最终new出来的那个类的实例对象,所以在父类中你可以用this获取到子类的信息!
package com.urthinker.module.test;
import org.junit.Test;
abstract class BaseDao<T> {
public void
Spring3.2新注解@ControllerAdvice
jinnianshilongnian
@Controller
@ControllerAdvice,是spring3.2提供的新注解,从名字上可以看出大体意思是控制器增强。让我们先看看@ControllerAdvice的实现:
@Target(ElementType.TYPE)
@Retention(RetentionPolicy.RUNTIME)
@Documented
@Component
public @interface Co
Java spring mvc多数据源配置
liuxihope
spring
转自:http://www.itpub.net/thread-1906608-1-1.html
1、首先配置两个数据库
<bean id="dataSourceA" class="org.apache.commons.dbcp.BasicDataSource" destroy-method="close&quo
第12章 Ajax(下)
onestopweb
Ajax
index.html
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/
BW / Universe Mappings
blueoxygen
BO
BW Element
OLAP Universe Element
Cube Dimension
Class
Charateristic
A class with dimension and detail objects (Detail objects for key and desription)
Hi
Java开发熟手该当心的11个错误
tomcat_oracle
java 多线程 工作 单元测试
#1、不在属性文件或XML文件中外化配置属性。比如,没有把批处理使用的线程数设置成可在属性文件中配置。你的批处理程序无论在DEV环境中,还是UAT(用户验收
测试)环境中,都可以顺畅无阻地运行,但是一旦部署在PROD 上,把它作为多线程程序处理更大的数据集时,就会抛出IOException,原因可能是JDBC驱动版本不同,也可能是#2中讨论的问题。如果线程数目 可以在属性文件中配置,那么使它成为
推行国产操作系统的优劣
yananay
windows linux 国产操作系统
最近刮起了一股风,就是去“国外货”。从应用程序开始,到基础的系统,数据库,现在已经刮到操作系统了。原因就是“棱镜计划”,使我们终于认识到了国外货的危害,开始重视起了信息安全。操作系统是计算机的灵魂。既然是灵魂,为了信息安全,那我们就自然要使用和推行国货。可是,一味地推行,是否就一定正确呢?
先说说信息安全。其实从很早以来大家就在讨论信息安全。很多年以前,就据传某世界级的网络设备制造商生产的交