四、Flask学习之JavaScript

四、Flask学习之JavaScript

JavaScript,作为一种前端脚本语言,赋予网页生动的交互性和动态性。通过它,开发者能够操作DOM(文档对象模型)实现页面元素的动态改变、响应用户事件,并借助AJAX技术实现异步数据请求,为用户提供更流畅的浏览体验。在现代Web开发中,JavaScript不仅是构建丰富用户界面的关键工具,还被广泛应用于服务器端(Node.js)等多个领域,成为一门多用途、强大而灵活的编程语言。

1.下载jQuery(后续会用到)

jQuery 是一款被广泛应用的JavaScript库,旨在简化客户端脚本编写。通过提供便捷的DOM操作、事件处理、动画效果和AJAX请求等功能,jQuery极大地简化了跨浏览器的开发工作。其直观的API和优雅的语法使开发者能够更快速、更轻松地创建交互性强、用户体验良好的网页和Web应用。

下载官网:jQuery,然后找到Download,找到压缩版:

image-20240122163656613

直接复制链接去某网盘或者某雷新建任务下载就行。

2.初识JavaScript

2.1简单示例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.name1{background-color: pink;}.name2{text-align: center;}</style>
</head>
<body>
<div class="name1"><div class="name2" onclick="f()"><h1>欢迎访问本系统</h1></div>
</div>
<script type="text/javascript">function f() {confirm("确定吗?")}
</script>
</body>
</html>

效果:当点击标题一所在的区域时,会弹出一个框

image-20240122170208041

2.2代码位置

JavaScript代码在HTML文件中,有两种存放位置,一种是在<head>标签里面,但一定要在<style>标签后面;另一种是在<body>标签里面,但也要在最后的位置,如上的示例代码。推荐使用第二种,因为HTML文件是从上往下进行执行的,如果<script>标签里面有非常耗时的动作,有可能下面的HTML页面显示不出来,所以推荐使用第二种。

2.3存在形式

  1. 直接写在当前的HTML文件中(如上面的例子)

  2. 写在一个文件中,然后导入

    <script src="你的js存放目录"></script>
    

以上两种存在形式的代码的位置同上。

2.4基础知识

2.4.1 变量

Javascript在定义变量的时候是使用var关键字来定义的:var a="panda";

在 2015 年以前,使用 var 关键字来声明 JavaScript 变量。

在 2015 后的 JavaScript 版本 (ES6) 允许使用 const 关键字来定义一个常量,使用 let 关键字定义的限定范围内作用域的变量。

在打印变量的时候使用:console.log(a);

2.4.2 字符串
1.声明

一个字符串可以使用单引号或双引号,或者使用String():

var name1 = "panda";
var name2 = String("panda");
document.write(name1 + '<p>');
document.write(name2 + '<p>')
2. 索引

使用位置(索引)可以访问字符串中任何的字符,字符串的索引从零开始, 所以字符串第一字符为 [0],第二个字符为 [1], 等等。

var name1 = "panda";
document.write(name1 + '<p>');
document.write(name1[0])
3. length属性

字符串(String)使用长度属性length来计算字符串的长度:

var txt="Hello World!";
document.write(txt.length);
var txt="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
document.write(txt.length);
4. 查找

字符串使用 indexOf() 来定位字符串中某一个指定的字符首次出现的位置:

var str="Hello world, welcome to the universe.";
var n=str.indexOf("welcome");
5. 切片
var name1 = "panda";
document.write(name1.substring(2,4));

substring()的参数遵循左闭右开的原则,比如上面的例子,会输出nd

更详细的内容可以参考JavaScript String 对象 | 菜鸟教程 (runoob.com)

2.4.3 案例:跑马灯
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<div style="text-align: center;background-color: pink;font-weight: bolder" id="name1">编程如画,我是panda!
</div>
<script>function display() {var receive = document.getElementById("name1");var reString = receive.innerText;receive.innerText = reString.substring(1, reString.length) + reString[0];}// 这个函数相当于定时器,第一个参数是指要执行的函数名,第二个参数是指间隔多少毫秒setInterval(display, 1000)
</script>
</body>
</html>
2.4.4 数组
1. 声明
var a1=[1,2,3,4,5];//直接声明
var a2=Array(1,2,3,4,5);//内置声明
2. 修改

对于索引,数组与字符串一样,下标均为0到length-1,修改数组中某个元素的时候,直接使用索引即可,例如:

var a1=[1,2,3,4,5];
a1[0]="panda";
3. 添加和删除
var a1=[1,2,3,4,5];
//在尾部添加
a1.push(6);
//在头部添加
a1.unshift(0);
/*在指定位置添加:
第一个参数是要添加元素的索引,
第二个元素是要从规定索引处删除元素的个数,如果是0就是不删除,
第三个元素是指要添加的元素*/
a1.splice(1,0,"panda")
a1.pop();//删除最后一个元素
a1.shift();//删除第一个元素
document.write(a1);
2.4.5 案例:动态数据
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<ul id="language">
</ul>
<script>var languageList=["C","C++","JAVA","Python","PHP"];for (var idx in languageList){var text = languageList[idx];//创建<li></li>标签var la=document.createElement("li");la.innerText=text;document.getElementById("language").appendChild(la);}
</script>
</body>
</html>
2.4.6 对象(字典)
1. 定义(声明)

两种方式:可以带引号也可以不带

my_dict={"name":"panda","age":20
}
my_dict2={name:"panda",age:20
}
2. 修改

直接使用成员运算符或者使用Python中字典的方式:

my_dict.name="你好";
my_dict["name"]="Hello";
2.4.6 案例:动态表格
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<table border="1"><thead><tr><th>学号</th><th>姓名</th><th>年龄</th></tr></thead><tbody id="body"></tbody>
</table>
<script>var my_array=[{"id":123456, "name":"panda", "age":20},{"id":123456, "name":"panda", "age":20},{"id":123456, "name":"panda", "age":20},{"id":123456, "name":"panda", "age":20},{"id":123456, "name":"panda", "age":20}];for(var each in my_array) {var tr_la = document.createElement('tr');for (var key in my_array[each]) {var td_la = document.createElement('td');td_la.innerText = my_array[each][key];tr_la.appendChild(td_la);}document.getElementById('body').appendChild(tr_la)}
</script>
</body>
</html>

3.DOM

JavaScript DOM(文档对象模型) 是 JavaScript 的一个关键部分,通过它,开发者可以与网页的结构、内容和样式进行交互。DOM以树状结构的形式呈现文档,允许动态地选择、修改、添加和删除元素,实现页面的实时更新和用户交互。通过监听和响应事件,JavaScript DOM还使得开发者能够构建具有响应性和动态效果的现代网页应用,提升用户体验。

具体学习可以参考:JavaScript HTML DOM | 菜鸟教程 (runoob.com)

案例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<input type="text" id="re_text" placeholder="请输入内容...">
<input type="button" id="my_btn" onclick="f()" value="提交">
<ul id="language"></ul>
<script>function f() {//获取从输入框中获取的数据var text = document.getElementById('re_text').value;if (text.length!==0) {//创建<li></li>标签var la_li = document.createElement('li');//将从文本框中接收到的内容赋给<li></li>标签la_li.innerText = text;//获得id为'language'的标签var tag = document.getElementById('language');//将数据添加进去tag.appendChild(la_li)//最后将文本框中的字符串清除document.getElementById('re_text').value = "";}else{alert("输入内容为空!!!")}}
</script>
</body>
</html>

效果:

image-20240123114547822

4.jQuery

jQuery的东西很多,这里只展示一部分,更多请参考:jQuery API 文档

使用之前要引入:

<script src="static/jquery-3.7.1.min.js"></script>

4.1直接标签选择

4.1.1 ID选择器
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1 id="name1">Panda
</h1>
<script src="static/jquery-3.7.1.min.js"></script>
<script type="text/javascript">$('#name1').text('Hello')
</script>
</body>
</html>

<script></script>标签里面的$('#name1')是指找到ID为name1的标签。

4.1.2 样式选择器
<div class="c1">JAVA</div>
<div class="c1">Python</div>
<div class="c2">C/C++</div>
$('.c1')

$('.c1')是指找到所有样式名为c1的标签。

4.1.3 标签选择器
$('div')

是指找到所有标签为<div></div>的标签。

4.1.4 层级选择器
$('.c1 .c2 div')

是指找到应用样式c1的标签下应用c2样式的标签下的所有<div></div>标签。

4.1.5 多选择器
$('#name1,#name2,span')

是指找到所有的ID为name1和所有ID为name2和所有<span></span>标签。

4.1.6 属性选择器
$("div[class='name1']")

是指找到<div></div>标签里面class为name1的标签。

4.2间接标签选择

4.2.1 找到同级标签
<div><div>JAVA</div><div id="name1">Python</div><div>C/C++</div>
</div>
$('name1').prev();//找到前一个同级标签
$('name1').next();//找到后一个同级标签
$('name1').siblings()//找到所有的同级标签
4.2.2 找到父类和子类标签
$('name1').parent();//找到上一个父类标签
$('name1').children();//找到所有的子类标签

4.3案例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<input type="text" id="userid" placeholder="请输入学号">
<input type="text" id="username" placeholder="请输入用户名">
<input type="button" id="my_btn" value="提交">
<ul id="mylist"></ul>
<script src="static/jquery-3.7.1.min.js"></script>
<script type="text/javascript">$('#my_btn').click(function (){var id_user=$('#userid').val();var name_user=$('#username').val();var text=id_user+'-'+name_user;$('#mylist').append($('<li>').text(text));});
</script>
</body>
</html>

效果:
image-20240123180415807# 四、Flask学习之JavaScript

JavaScript,作为一种前端脚本语言,赋予网页生动的交互性和动态性。通过它,开发者能够操作DOM(文档对象模型)实现页面元素的动态改变、响应用户事件,并借助AJAX技术实现异步数据请求,为用户提供更流畅的浏览体验。在现代Web开发中,JavaScript不仅是构建丰富用户界面的关键工具,还被广泛应用于服务器端(Node.js)等多个领域,成为一门多用途、强大而灵活的编程语言。

1.下载jQuery(后续会用到)

jQuery 是一款被广泛应用的JavaScript库,旨在简化客户端脚本编写。通过提供便捷的DOM操作、事件处理、动画效果和AJAX请求等功能,jQuery极大地简化了跨浏览器的开发工作。其直观的API和优雅的语法使开发者能够更快速、更轻松地创建交互性强、用户体验良好的网页和Web应用。

下载官网:jQuery,然后找到Download,找到压缩版:

image-20240122163656613

直接复制链接去某网盘或者某雷新建任务下载就行。

2.初识JavaScript

2.1简单示例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title><style>.name1{background-color: pink;}.name2{text-align: center;}</style>
</head>
<body>
<div class="name1"><div class="name2" onclick="f()"><h1>欢迎访问本系统</h1></div>
</div>
<script type="text/javascript">function f() {confirm("确定吗?")}
</script>
</body>
</html>

效果:当点击标题一所在的区域时,会弹出一个框

image-20240122170208041

2.2代码位置

JavaScript代码在HTML文件中,有两种存放位置,一种是在<head>标签里面,但一定要在<style>标签后面;另一种是在<body>标签里面,但也要在最后的位置,如上的示例代码。推荐使用第二种,因为HTML文件是从上往下进行执行的,如果<script>标签里面有非常耗时的动作,有可能下面的HTML页面显示不出来,所以推荐使用第二种。

2.3存在形式

  1. 直接写在当前的HTML文件中(如上面的例子)

  2. 写在一个文件中,然后导入

    <script src="你的js存放目录"></script>
    

以上两种存在形式的代码的位置同上。

2.4基础知识

2.4.1 变量

Javascript在定义变量的时候是使用var关键字来定义的:var a="panda";

在 2015 年以前,使用 var 关键字来声明 JavaScript 变量。

在 2015 后的 JavaScript 版本 (ES6) 允许使用 const 关键字来定义一个常量,使用 let 关键字定义的限定范围内作用域的变量。

在打印变量的时候使用:console.log(a);

2.4.2 字符串
1.声明

一个字符串可以使用单引号或双引号,或者使用String():

var name1 = "panda";
var name2 = String("panda");
document.write(name1 + '<p>');
document.write(name2 + '<p>')
2. 索引

使用位置(索引)可以访问字符串中任何的字符,字符串的索引从零开始, 所以字符串第一字符为 [0],第二个字符为 [1], 等等。

var name1 = "panda";
document.write(name1 + '<p>');
document.write(name1[0])
3. length属性

字符串(String)使用长度属性length来计算字符串的长度:

var txt="Hello World!";
document.write(txt.length);
var txt="ABCDEFGHIJKLMNOPQRSTUVWXYZ";
document.write(txt.length);
4. 查找

字符串使用 indexOf() 来定位字符串中某一个指定的字符首次出现的位置:

var str="Hello world, welcome to the universe.";
var n=str.indexOf("welcome");
5. 切片
var name1 = "panda";
document.write(name1.substring(2,4));

substring()的参数遵循左闭右开的原则,比如上面的例子,会输出nd

更详细的内容可以参考JavaScript String 对象 | 菜鸟教程 (runoob.com)

2.4.3 案例:跑马灯
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<div style="text-align: center;background-color: pink;font-weight: bolder" id="name1">编程如画,我是panda!
</div>
<script>function display() {var receive = document.getElementById("name1");var reString = receive.innerText;receive.innerText = reString.substring(1, reString.length) + reString[0];}// 这个函数相当于定时器,第一个参数是指要执行的函数名,第二个参数是指间隔多少毫秒setInterval(display, 1000)
</script>
</body>
</html>
2.4.4 数组
1. 声明
var a1=[1,2,3,4,5];//直接声明
var a2=Array(1,2,3,4,5);//内置声明
2. 修改

对于索引,数组与字符串一样,下标均为0到length-1,修改数组中某个元素的时候,直接使用索引即可,例如:

var a1=[1,2,3,4,5];
a1[0]="panda";
3. 添加和删除
var a1=[1,2,3,4,5];
//在尾部添加
a1.push(6);
//在头部添加
a1.unshift(0);
/*在指定位置添加:
第一个参数是要添加元素的索引,
第二个元素是要从规定索引处删除元素的个数,如果是0就是不删除,
第三个元素是指要添加的元素*/
a1.splice(1,0,"panda")
a1.pop();//删除最后一个元素
a1.shift();//删除第一个元素
document.write(a1);
2.4.5 案例:动态数据
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<ul id="language">
</ul>
<script>var languageList=["C","C++","JAVA","Python","PHP"];for (var idx in languageList){var text = languageList[idx];//创建<li></li>标签var la=document.createElement("li");la.innerText=text;document.getElementById("language").appendChild(la);}
</script>
</body>
</html>
2.4.6 对象(字典)
1. 定义(声明)

两种方式:可以带引号也可以不带

my_dict={"name":"panda","age":20
}
my_dict2={name:"panda",age:20
}
2. 修改

直接使用成员运算符或者使用Python中字典的方式:

my_dict.name="你好";
my_dict["name"]="Hello";
2.4.6 案例:动态表格
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<table border="1"><thead><tr><th>学号</th><th>姓名</th><th>年龄</th></tr></thead><tbody id="body"></tbody>
</table>
<script>var my_array=[{"id":123456, "name":"panda", "age":20},{"id":123456, "name":"panda", "age":20},{"id":123456, "name":"panda", "age":20},{"id":123456, "name":"panda", "age":20},{"id":123456, "name":"panda", "age":20}];for(var each in my_array) {var tr_la = document.createElement('tr');for (var key in my_array[each]) {var td_la = document.createElement('td');td_la.innerText = my_array[each][key];tr_la.appendChild(td_la);}document.getElementById('body').appendChild(tr_la)}
</script>
</body>
</html>

3.DOM

JavaScript DOM(文档对象模型) 是 JavaScript 的一个关键部分,通过它,开发者可以与网页的结构、内容和样式进行交互。DOM以树状结构的形式呈现文档,允许动态地选择、修改、添加和删除元素,实现页面的实时更新和用户交互。通过监听和响应事件,JavaScript DOM还使得开发者能够构建具有响应性和动态效果的现代网页应用,提升用户体验。

具体学习可以参考:JavaScript HTML DOM | 菜鸟教程 (runoob.com)

案例:

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<input type="text" id="re_text" placeholder="请输入内容...">
<input type="button" id="my_btn" onclick="f()" value="提交">
<ul id="language"></ul>
<script>function f() {//获取从输入框中获取的数据var text = document.getElementById('re_text').value;if (text.length!==0) {//创建<li></li>标签var la_li = document.createElement('li');//将从文本框中接收到的内容赋给<li></li>标签la_li.innerText = text;//获得id为'language'的标签var tag = document.getElementById('language');//将数据添加进去tag.appendChild(la_li)//最后将文本框中的字符串清除document.getElementById('re_text').value = "";}else{alert("输入内容为空!!!")}}
</script>
</body>
</html>

效果:

image-20240123114547822

4.jQuery

jQuery的东西很多,这里只展示一部分,更多请参考:jQuery API 文档

使用之前要引入:

<script src="static/jquery-3.7.1.min.js"></script>

4.1直接标签选择

4.1.1 ID选择器
<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<h1 id="name1">Panda
</h1>
<script src="static/jquery-3.7.1.min.js"></script>
<script type="text/javascript">$('#name1').text('Hello')
</script>
</body>
</html>

<script></script>标签里面的$('#name1')是指找到ID为name1的标签。

4.1.2 样式选择器
<div class="c1">JAVA</div>
<div class="c1">Python</div>
<div class="c2">C/C++</div>
$('.c1')

$('.c1')是指找到所有样式名为c1的标签。

4.1.3 标签选择器
$('div')

是指找到所有标签为<div></div>的标签。

4.1.4 层级选择器
$('.c1 .c2 div')

是指找到应用样式c1的标签下应用c2样式的标签下的所有<div></div>标签。

4.1.5 多选择器
$('#name1,#name2,span')

是指找到所有的ID为name1和所有ID为name2和所有<span></span>标签。

4.1.6 属性选择器
$("div[class='name1']")

是指找到<div></div>标签里面class为name1的标签。

4.2间接标签选择

4.2.1 找到同级标签
<div><div>JAVA</div><div id="name1">Python</div><div>C/C++</div>
</div>
$('name1').prev();//找到前一个同级标签
$('name1').next();//找到后一个同级标签
$('name1').siblings()//找到所有的同级标签
4.2.2 找到父类和子类标签
$('name1').parent();//找到上一个父类标签
$('name1').children();//找到所有的子类标签

4.3案例

<!DOCTYPE html>
<html lang="en">
<head><meta charset="UTF-8"><title>Title</title>
</head>
<body>
<input type="text" id="userid" placeholder="请输入学号">
<input type="text" id="username" placeholder="请输入用户名">
<input type="button" id="my_btn" value="提交">
<ul id="mylist"></ul>
<script src="static/jquery-3.7.1.min.js"></script>
<script type="text/javascript">$('#my_btn').click(function (){var id_user=$('#userid').val();var name_user=$('#username').val();var text=id_user+'-'+name_user;$('#mylist').append($('<li>').text(text));});
</script>
</body>
</html>

效果:
image-20240123180415807

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/645019.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

scrapy pipelines

1.时间的处理 获取当前时间的字符串 # 创建一个datetime对象并设置为当前时间&#xff0c;该时间少8小时 dt datetime.datetime.now() # 将datetime转换为本地时区 local_tz pytz.timezone(Asia/Shanghai) local_dt local_tz.localize(dt) # 将datetime对象格式化为ISO 86…

Acwing787归并排序 788逆序对数量

theme: channing-cyan 归并排序 归并排序是一种分治算法&#xff0c;将待排序的数组递归地分成两半&#xff0c;分别排序&#xff0c;然后将两个有序的子数组归并成一个有序数组。将数组不断地二分&#xff0c;直到子数组的长度为1时&#xff0c;认为其有序。然后将相邻的两个…

MySQL Interview Speedrun

MySQL Interview Speedrun mysql如何定位慢查询 开启mysql的慢查询日志功能&#xff0c;默认超过2秒的sql语句会被记录到慢查询日志里。或者使用运维监测工具skywalking工具&#xff0c;它可以监测服务、接口和物理实例&#xff0c;可以通过它来知道哪个接口的sql执行速度比较慢…

数论 | 质数

文章目录 质数的判定&#xff1a;试除法分解质因数&#xff1a;试除法筛质数朴素做法优化&#xff1a;埃氏筛法优化&#xff1a;线性筛法 质数的判定&#xff1a;试除法 不推荐i*i<n而推荐i<n/i的原因 可能存在i*i不溢出&#xff0c;但是(i1)(i1)溢出的情况 #include &l…

山西电力市场日前价格预测【2024-01-25】

日前价格预测 预测说明&#xff1a; 如上图所示&#xff0c;预测明日&#xff08;2024-01-25&#xff09;山西电力市场全天平均日前电价为274.83元/MWh。其中&#xff0c;最高日前电价为562.65元/MWh&#xff0c;预计出现在18:15。最低日前电价为0.00元/MWh&#xff0c;预计出…

《统计学习方法:李航》笔记 从原理到实现(基于python)-- 第 2章感知机

文章目录 第 2章感知机2.1 感知机模型2.2 感知机学习策略2.2.1 数据集的线性可分性2.2.2 感知机学习策略 2.3 感知机学习算法2.3.1 感知机学习算法的原始形式2.3.2 算法的收敛性2.3.3 感知机学习算法的对偶形式 实践&#xff1a;二分类模型&#xff08;iris数据集&#xff09;数…

vue3-深入组件-组件注册和props更多细节

组件注册 定义好的组件需要注册才能被使用。 注册方式有两种 全局注册 局部注册 全局注册 .component() 方法&#xff0c;让组件在当前 Vue 应用中全局可用。 在 main.ts 中 import ./assets/main.cssimport { createApp } from vue import { createPinia } from pinia i…

Nodejs前端学习Day1

妈的&#xff0c;学vue3需要15.0以上的nodejs 文章目录 前言一、学习目标二、学习目录三、为什么JavaScript可以在浏览器中被执行四、为什么JavaScript可以操作DOM和BOM五、浏览器中的JavaScript运行环境总结 前言 妈的&#xff0c;学vue3需要15.0以上的nodejs 一、学习目标 二…

golang导入go-git错误记录

代码&#xff1a; package mainimport (...(略)"github.com/src-d/go-git"...(略) )...(略)func gitClone(workspace, url, referenceName string, auth ssh.AuthMethod) (*git.Repository, error) {return git.PlainClone(workspace, false,&git.CloneOptions{…

javascript设计模式-观察者和命令

观察者 是一种管理人与任务之间的关系的得力工具&#xff0c;实质就是你可以对程序中某个对象的状态进行观察&#xff0c;并且在其发生改变时能够得到通知。一般有两种实现方式推或拉&#xff0c;在这个过程中各方的职责如下&#xff1a; 订阅者可以订阅和退订&#xff0c;他…

递归和尾递归(用C语言解斐波那契和阶乘问题)

很多人都对递归有了解&#xff0c;但是为尾递归很少&#xff0c;所以这次来专门讲一讲关于尾递归的一些问题。 什么是尾递归 如果一个函数中所有递归形式的调用都出现在函数的末尾&#xff0c;我们称这个递归函数是尾递归的。因为在一些题目的做法中&#xff0c;我们可以发现…

数据库安全细解

数据库是为了实现一定目的按某种规则和方法组织起来的“数据”的“集合”。数据库可以直观的理解为存放数据的仓库&#xff0c;而里面的数据按照一定的格式存放&#xff0c;便于查找。 数据库的作用 1.实现数据共享&#xff0c;减少数据的冗余度&#xff1a;同文件系统相比&a…

蓝桥杯:1.幸运数字(Java)

目录 题目描述&#xff1a;答案&#xff1a;考点&#xff1a;代码实现&#xff1a; 题目描述&#xff1a; 哈沙德数是指在某个固定的进位制当中&#xff0c;可以被各位数字之和整除的正整数。 例如126是十进制下的一个哈沙德数&#xff0c;因为(126)1o mod (1&#xff0b;2&…

c语言之scanf函数

scanf函数语法格式与printf函数很相似&#xff0c;语法是scanf(格式控制,地址列表)组成 其中格式控制分为两部分&#xff0c;一部分由双引号括起来的&#xff0c;%和格式字符组成的格式字符串 普通字符串则是原样输出 地址列表是若干地址组成的表列&#xff0c;可以是变量的…

解决 Git:ssh: connect to host github.com port 22: Connection timed out 问题的三种方案

1、问题描述&#xff1a; 其一、整体提示为&#xff1a; ssh: connect to host github.com port 22: Connection timed out fatal: Could not read from remote repository. 中文为&#xff1a; ssh&#xff1a;连接到主机 github.com 端口 22&#xff1a;连接超时 fatal&a…

linux服务器ssh连接慢问题处理

一、 可能导致慢的几个原因 1、网络问题&#xff1a;网络延迟、带宽限制和包丢失等网络问题都有可能导致SSH连接变慢。 2、客户端设置&#xff1a;错误的客户端设置&#xff0c;如使用过高的加密算法或不适当的密钥设置&#xff0c;可能导致SSH连接变慢。 3、服务器负载过高…

MVC 和 MVVM的区别

MVC&#xff1a; M&#xff08;model数据&#xff09;、V&#xff08;view视图&#xff09;&#xff0c;C&#xff08;controlle控制器&#xff09; 缺点是前后端无法独立开发&#xff0c;必须等后端接口做好了才可以往下走&#xff1b; 前端没有自己的数据中心&#xff0c;太…

使用docker容器 将node应用程序打包成镜像

可以使得node服务应用程序可以通过流水线部署 安装docker 1、注意 我的服务器的系统是 centos7&#xff0c;所以这里写的是在centos7上按照的docker 注意&#xff1a;Docker 要求 CentOS 系统的内容版本高于3.10 uname -r打印&#xff1a;3.10.0-1160.105.1.el7.x86_64 //确定…

leetcode刷题(剑指offer) 240.搜索二维矩阵Ⅱ

240.搜索二维矩阵Ⅱ 编写一个高效的算法来搜索 *m* x *n* 矩阵 matrix 中的一个目标值 target 。该矩阵具有以下特性&#xff1a; 每行的元素从左到右升序排列。每列的元素从上到下升序排列。 示例 1&#xff1a; 输入&#xff1a;matrix [[1,4,7,11,15],[2,5,8,12,19],[3,…

【Effective C++】6. 继承与面向对象设计

Item32 确定你的public继承关系建模出is-a的关系 public继承的含义&#xff1a; is-a&#xff1a;student是一种person&#xff0c;person的范围更大在函数传参的过程&#xff0c;eta能同时接受person和student两种变量&#xff0c;反之不能 class Person {}; class Student…