热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

python3函数与参数以及空值

目录画星星空值None函数与Lambda一、函数定义二、引用变量查找三、传值调用函数四、函数对象五、函数文档旋转角度绘制函数图形画星星程序2-7-7主要使用turtle.forw




目录


    • 画星星
    • 空值None
    • 函数与Lambda
      • 一、函数定义
      • 二、引用变量查找
      • 三、传值调用函数
      • 四、函数对象
      • 五、函数文档

    • 旋转角度
    • 绘制函数图形




画星星

程序2-7-7主要使用turtle.forward前进操作和turtle.left左转操作在屏幕上画星星。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#2-7-8.py
import turtle
turtle.color('Green','yellow')
while True:
turtle.forward(200)
turtle.left(150)
print(turtle.pos())
if abs(turtle.pos()) < 1:
break
print(&#39;按回车键退出&#39;)
input()

程序2-7-7.py运行结果如下&#xff1a;
在这里插入图片描述

同时&#xff0c;程序2-7-7.py还输出了如下所示的线转角处&#xff08;绘制一条直线后转角绘制另一个直线&#xff0c;2条直线的交点&#xff09;的位置信息&#xff1a;
(200.00,0.00)
(26.79,100.00)
(126.79,-73.21)
(126.79,126.79)
(26.79,-46.41)
(200.00,53.59)
(0.00,53.59)
(173.21,-46.41)
(73.21,126.79)
(73.21,-73.21)
(173.21,100.00)
(0.00,-0.00)
按回车键退出
现对程序2-7-7.py分析如下&#xff1a;
1、该程序使用了以下几个函数&#xff1a;
&#xff08;1&#xff09;forward函数前进200&#xff0c;用于绘制直线。
&#xff08;2&#xff09;left函数左转150度&#xff0c;用于转角&#xff0c;绘制另一条直线。
&#xff08;3&#xff09;turtle.pos()返回当前位置坐标 (x,y) (坐标为 Vec2D 矢量类对象)。
&#xff08;4&#xff09; abs函数返回一个数的绝对值。 参数可以是整数、浮点数或任何实现了 abs() 的对象&#xff0c;当参数是一个复数时&#xff0c;返回它的模。在该程序中&#xff0c; abs的作用如下&#xff1a;
使用pos返回一个当前坐标后&#xff0c;abs求该Vec2D坐标到原点的距离(从原点出发的向量长度)。矢量空间内的所有矢量赋予非零的正长度或大小&#xff0c;在二维的欧氏几何空间 R中定义欧氏范数&#xff0c;在该矢量空间中&#xff0c;元素被画成一个从原点出发的带有箭头的有向线段&#xff0c;每一个矢量的有向线段&#xff08;向量&#xff09;的长度即为该矢量的欧氏范数。
由于Vec2D是一个二维矢量类&#xff0c;用来作为实现海龟绘图的辅助类&#xff0c;也可以在海龟绘图程序中使用&#xff0c;它派生自元组&#xff0c;因此矢量也属于元组。Vec2D主要提供以下运算 (a, b 为矢量, k 为数值):
a &#43; b 矢量加法
a - b 矢量减法
a * b 内积
k * a 和 a * k 与标量相乘
此外&#xff0c;Vec2D类还实现了 abs操作&#xff0c;如下面代码片断所示&#xff08;摘自Vec2D类源代码&#xff09;。

class Vec2D(tuple):
...
def __abs__(self):
return (self[0]**2 &#43; self[1]**2)**0.5

2、程序2-7-7.py的执行过程如下&#xff1a;
&#xff08;1)通过turtle.color(‘Green’,‘yellow’)函数设置颜色为绿色画笔、黄色填充。
&#xff08;2)创建循环体&#xff0c;循环体内容为:
首先&#xff0c;将海龟定位于原点。
然后&#xff0c;turtle.forward(200)前进200步&#xff0c;turtle.left(150)左转150度&#xff0c;print(turtle.pos())打印出当前海龟位置。
最后&#xff0c;通过abs(turtle.pos())判断当前向量&#xff08;从原点到当前海龟位置的向量&#xff09;的长度&#xff0c;如果长度<1&#xff0c;说明当前位置已经回到了起点&#xff08;原点&#xff09;&#xff0c;就退出循环。如果长度>&#61;1&#xff0c;则继续循环。


空值None

Python None 对象&#xff0c;表示缺乏值、空值。
下面代码定义了x和y共2个变量&#xff0c;其中&#xff0c;x初始化值为0&#xff0c;而y设为了空值&#xff0c;x虽然为0&#xff0c;但仍然属于有值状态&#xff0c;而y属于空值状态。

>>>x&#61;0
>>>y&#61;None
>>>x&#61;&#61;None
False
>>>y&#61;&#61;None
True

函数与Lambda


一、函数定义

Python定义函数使用关键字 def&#xff0c;后跟函数名与括号内的形参列表。函数语句从下一行开始&#xff0c;并且必须缩进。
程序2-7-10-1.py定义了函数getSum&#xff0c;完成参数求和后返回 。
#!/usr/bin/env python3

# -*- coding: utf-8 -*-
#2-7-10-1.py
def getSum(x1,x2,x3,x4):
y&#61;x1&#43;x2&#43;x3&#43;x4
return y

print(getSum(11,22,33,44))
程序2-7-10-1.py执行结果如下&#xff1a;
110
程序2-7-10-1.py执行过程如下&#xff1a;
1、定义函数getSum&#xff0c;使用def关键字&#43;函数名getSum的方式进行定义&#xff0c;参数为括号内的4个变量x1、x2、x3、x4。
函数的执行体为函数定义的下一行&#xff0c;共2行。
&#xff08;1&#xff09;第1行y&#61;x1&#43;x2&#43;x3&#43;x4&#xff0c;将4个参数之和赋值给变量y。其中&#xff0c;y是函数内局部变量&#xff0c;而x1、x2、x3、x4为函数局部变量。
&#xff08;2&#xff09;第2行return y&#xff0c;将y返回&#xff0c;return语句功能是是函数返回值&#xff0c;没有 return 语句的函数也返回值&#xff0c;只不过这个值是 None。
2、调用getSum函数&#xff0c;并打印函数返回结果。


二、引用变量查找

函数在执行时使用函数局部变量符号表&#xff0c;所有函数变量赋值都存在局部符号表中&#xff1b;引用变量时&#xff0c;其查找顺序为&#xff1a;首先&#xff0c;在局部符号表里查找变量&#xff0c;然后&#xff0c;是外层函数局部符号表&#xff0c;接着是全局符号表&#xff0c;最后是内置名称符号表。因此&#xff0c;虽然可以引用全局变量和外层函数的变量&#xff0c;但是最好不要在函数内直接赋值&#xff08;除非是 global 语句定义的全局变量&#xff0c;或 nonlocal 语句定义的外层函数变量&#xff09;。
程序2-7-10-2.py定义了函数getSum&#xff0c;完成参数求和后返回&#xff0c;与2-7-10-1.py基本相同&#xff0c;不同之处在于&#xff0c;在getSum函数体内出现了变量y&#xff0c;而在getSum函数体外也出现了变量y。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#2-7-10-2.py
y&#61;9
def getSum(x1,x2,x3,x4):
y&#61;x1&#43;x2&#43;x3&#43;x4
return y
print(y)
print(getSum(11,22,33,44))
print(y)

程序2-7-10-2.py的执行结果为&#xff1a;
9
110
9
观察程序2-7-10-2.py的执行结果&#xff0c;可发现&#xff0c;虽然&#xff0c;在getSum函数定义之前&#xff08;之外&#xff09;&#xff0c;已经定义了变量y&#61;9&#xff0c;随后又在getSum函数体内将变量y的值改为了4个参数之和110&#xff0c;那么在执行完getSum函数后&#xff0c;y的值会变为110&#xff0c;但在此处却仍没有变化&#xff0c;还是9。这是什么原因呢&#xff1f;答案是&#xff1a;getSum函数体内的y存在于函数局部变量符号表内&#xff0c;而getSum函数定义之外的y属于全局变量&#xff0c;2个y不属于同一变量&#xff0c;因此&#xff0c;对getSum函数体内的y值进行的修改并不影响函数体之外定义的y的值。
那么&#xff0c;如果一定要在getSum函数体内对函数体外定义的y进行修改&#xff0c;可按程序2-7-10-3.py所示的方法进行。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#2-7-10-3.py
y&#61;9
def getSum(x1,x2,x3,x4):
global y
y&#61;x1&#43;x2&#43;x3&#43;x4
return y
print(y)
print(getSum(11,22,33,44))
print(y)

程序2-7-10-3.py的执行结果为&#xff1a;
9
110
110
程序2-7-10-3.py与程序2-7-10-2.py基本一样&#xff0c;只是在函数体内通过global y&#xff0c;将y声明为全局变量&#xff0c;表示在函数体内使用的y就是全局变量y&#xff0c;并非函数体局部变量。
除了global还有一个语句nonlocal。nonlocal 语句会使得所列出的名称指向之前在最近的包含作用域中绑定的除全局变量以外的变量。 这种功能很重要&#xff0c;因为绑定的默认行为是先搜索局部命名空间。 这个语句允许被封装的代码重新绑定局部作用域以外且非全局&#xff08;模块&#xff09;作用域当中的变量。
与 global 语句中列出的名称不同&#xff0c;nonlocal 语句中列出的名称必须指向之前存在于包含作用域之中的绑定。程序2-7-10-4.py演示了nonlocal的用法。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#2-7-10-4.py
def printY():
y&#61;9
print(y)
def getSum(x1,x2,x3,x4):
nonlocal y
y&#61;x1&#43;x2&#43;x3&#43;x4
getSum(100,2,3,4)
print(y)

printY()

程序2-7-10-4.py的执行结果为&#xff1a;
9
109
对程序2-7-10-4.py分析如下&#xff1a;
1、该程序有2个函数体&#xff0c;这2个函数体是嵌套关系&#xff0c;即&#xff1a;getSum嵌套在printY内部。
2、对于getSum函数来说&#xff0c;在printY函数内部定义的y属于局部作用域以外且非全局&#xff08;模块&#xff09;作用域当中的变量&#xff0c;且属于最近的包含作用域&#xff08;getSum包含在printY作用域内&#xff09;中&#xff0c;getSum函数想访问printY函数的变量&#xff0c;需要声明该变量为nonlocal变量。
3、在getSum函数体内对printY函数体定义的y值的修改是有效的。因此&#xff0c;程序执行后&#xff0c;第一次打印出y的值为初始值9&#xff0c;第二次修改后再打印出y的值为修改后的值109。


三、传值调用函数

在调用函数时Python会将实际参数&#xff08;实参&#xff09;引入到被调用函数的局部符号表中&#xff0c;因此&#xff0c;函数参数都是使用按值调用来传递的&#xff0c;所谓按值传递&#xff0c;会将值进行复制生成函数的局部变量。当一个函数调用另外一个函数时&#xff0c;会为该调用创建一个新的局部符号表。
但是&#xff0c;有一点要特别注意&#xff0c;Python中的对象分为可变对象与不可变对象&#xff0c;比如整数288属于不可变对象&#xff0c;而列表[288,11]、[288,]就属于可变对象。具体来说&#xff0c;strings、tuples和numbers是不可变对象&#xff0c;而list、dict等则是可变对象。
对于不可变对象的按值传递就是直接复制其值&#xff0c;而可变对象的按值传递是复制其引用&#xff0c;因为可变对象的值在Python内部实质表现为一个指向该对象的引用&#xff08;内存地址&#xff0c;可理解为指针&#xff09;&#xff0c;顺着这个引用才可在内存中找到该对象真正的值。程序2-7-10-5.py演示了参数传递的用法。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#2-7-10-5.py
def swapNum(x,y):
temp&#61;x
x&#61;y
y&#61;temp
def swapNums(nums):
temp&#61;nums[0]
nums[0]&#61;nums[1]
nums[1]&#61;temp
x&#61;11
y&#61;22
swapNum(x,y)
print(x,y)
n&#61;[11,22]
swapNums(n)
print(n)

程序2-7-10-5.py的执行结果如下&#xff1a;
11 22
[22, 11]
对程序2-7-10-5.py分析如下&#xff1a;
1、该程序定义了2个函数swapNum和swapNums。
&#xff08;1&#xff09;swapNum函数想完成的功能是将传入的2个参数值进行修改&#xff0c;完成互换&#xff0c;要能完成对调用swapNum的函数实际参数进行修改&#xff0c;而不是对函数局部变量进行修改。
&#xff08;2&#xff09;swapNums函数想完成的功能是对传入的列表进行修改&#xff0c;将其第0个元素和第1个元素进行互换&#xff0c;并保证修改效果影响到调用swapNums函数的变量。
但是&#xff0c;虽然都是传值传递参数&#xff0c;但是swapNum函数的参数属于不可变变量&#xff0c;swapNum函数体会复制它的2个参数&#xff0c;形成属于自己的函数内部局部参数&#xff0c;实质已经与调用swapNum的函数参数无关&#xff0c;修改是无效的&#xff1b;而swapNums函数的参数是列表&#xff0c;属于可变变量&#xff0c;swapNums函数也会复制参数的值&#xff0c;但这个参数值是列表的地址&#xff08;引用&#xff09;&#xff0c;那么传递到swapNums函数体内部的参数就是该列表的引用&#xff0c;对该引用的修改直接影响到调用swapNums的函数&#xff0c;修改是有效的。
2、该程序定义整型变量x和y后&#xff0c;将其作为参数传入swapNum&#xff0c;想完成x和y的互换&#xff0c; 这一操作是失败的&#xff0c;无法成功&#xff0c;然后该程序又定义了列表n&#xff0c;将其作为 参数传入swapNums&#xff0c;想完成第0个元素与第1个元素的互换&#xff0c;此操作是成功的。观察程序2-7-10-5.py的执行结果可验证这一结论。


四、函数对象

函数定义在当前符号表中把函数名与函数对象关联在一起。解释器把函数名指向的对象作为用户自定义函数。还可以使用其他名称指向同一个函数对象&#xff0c;并访问访该函数。程序2-7-10-6.py演示了函数对象的用法。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#2-7-10-6.py
def swapNums(nums):
temp&#61;nums[0]
nums[0]&#61;nums[1]
nums[1]&#61;temp
swap&#61;swapNums
n&#61;[11,22]
print(n)
swap(n)
print(n)

程序2-7-10-6.py的执行结果如下&#xff1a;
[11, 22]
[22, 11]
程序2-7-10-6.py首先定义了swapNums函数及其函数体内容&#xff1b;然后&#xff0c;定义一个变量swap&#xff0c;将swapNums函数赋值给变量swap&#xff08;Python中的变量属于动态类型&#xff0c;对象的类型是可改变的&#xff09;&#xff0c;这样&#xff0c;swap成为了一个函数对象&#xff1b;最后&#xff0c;程序直接使用swap作为函数名调用swapNums函数。


五、函数文档

函数内的第一条语句可以是字符串&#xff0c;其意义在于&#xff1a;该字符串是DocString&#xff08;文档字符串&#xff09;&#xff0c;利用文档字符串可以自动生成在线文档或打印版文档&#xff0c;还可以让开发者在浏览代码时直接查阅文档&#xff0c;Python 开发者最好可以养成在函数语句下一行中加入文档字符串的好习惯。程序2-7-10-7.py演示了函数文档的用法。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#2-7-10-7.py
def swapNums(nums):
"""
swapNums函数接受一个列表对象&#xff0c;
完成将列表对象的2个元素互换位置的功能。
"""

temp&#61;nums[0]
nums[0]&#61;nums[1]
nums[1]&#61;temp
print(swapNums.__doc__)
print("---------------------")
help(swapNums)

程序2-7-10-7.py的输出结果如下&#xff1a;
swapNums函数接受一个列表对象&#xff0c;
完成将列表对象的2个元素互换位置的功能。

Help on function swapNums in module main:

swapNums(nums)
swapNums函数接受一个列表对象&#xff0c;
完成将列表对象的2个元素互换位置的功能。

分析程序2-7-10-7.py&#xff0c;该程序的执行过程如下&#xff1a;
1、定义swapNums函数&#xff0c;函数功能为&#xff1a;互换列表的2个元素。
&#xff08;1&#xff09;在函数体的第1行&#xff08;即&#xff1a;def定义语句的下一行&#xff09;开始用三引号标注了一段字符串&#xff0c;该字符串&#xff08;是DocString&#xff08;文档字符串&#xff09;&#xff0c;用于说明函数功能和用法等事项。在Python中单引号和双引号都可以用来表示一个字符串&#xff0c;而三单引号和三双引号包围的字符串可保持原来的格式。
&#xff08;2&#xff09;函数体的第5行开始&#xff0c;是函数体的代码段&#xff0c;完成函数体的功能。
2、通过函数对象.doc&#xff08;注意前后都是双_&#xff09;属性&#xff0c;提取将DocString特性&#xff0c;该程序通过print(swapNums.doc)将函数swapNums的文档字符串打印在屏幕上。
3、通过help&#xff08;&#xff09;调用提取DocString属性并打印在屏幕上。该程序通过help(swapNums)将函数swapNums的文档字符串打印在屏幕上。
2.2.2 Lambda

myfun1&#61; lambda a,b:math.sqrt(pow(a,2)&#43;pow(b,2))
myfun2&#61;lambda x:1 if (x%2&#61;&#61;0) else 0
print(myfun1(12,19))
print(myfun2(193))

旋转角度

程序2-7-11.py演示了以30度为步长逐渐增大角度进行旋转&#xff0c;从0度开始直到360度为止。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#2-7-11.py
import turtle
turtle.color(&#39;Green&#39;,&#39;yellow&#39;)
lineLine&#61;50
for i in range(0,361,30):
turtle.home()
turtle.left(i)
turtle.forward(lineLine&#43;i)
turtle.write(f"{i}>[{turtle.position()[0]},\n{turtle.position()[1]}]")
turtle.home()
turtle.color(&#39;Black&#39;,&#39;red&#39;)
turtle.write(f"[{turtle.position()[0]},\n{turtle.position()[1]}]")
print(&#39;按回车键退出&#39;)
input()

程序2-7-11.py执行结果如下&#xff1a;
在这里插入图片描述

程序2-7-11.py的执行过程如下&#xff1a;
1、定义颜色为&#xff1a;画笔绿色&#xff0c;填充黄色&#xff0c;设定直线初始长度lineLine为50。
2、for循环绘制直线&#xff0c;i为旋转角度&#xff0c;从0度开始以30度为步长递增&#xff0c;直到360度结束&#xff0c;每递增一次就是一个循环。
&#xff08;1&#xff09;turtle.home()将位置和初始方向进行初始化&#xff0c;即&#xff1a;位置为(0.,0.)&#xff0c;方向为0度。
&#xff08;2&#xff09;左转i度。
&#xff08;3&#xff09;forward绘制直线&#xff0c;每循环1次&#xff0c;直线长度递增30.
&#xff08;4&#xff09;在直线的一端&#xff08;除开原点的另一个端&#xff09;&#xff0c;使用write绘制文本&#xff0c;文本内容为该直线端的位置。
3、循环结束&#xff0c;以黑色画笔&#xff08;红色填充&#xff09;绘制原点&#xff0c;并绘制原点坐标。


绘制函数图形

程序2-7-12.py演示了绘制一元二次函数的图像。

#!/usr/bin/env python3
# -*- coding: utf-8 -*-
#2-7-12.py
import turtle
def getFunY(a,b,c,x):
y&#61;a*x*x&#43;b*x&#43;c
return y
x&#61;-10
a&#61;0.6
b&#61;0.2
c&#61;0.8
while x<&#61;10:
turtle.up()
turtle.goto(x,getFunY(a,b,c,x))
turtle.dot(2)
x&#43;&#61;0.1
input()

程序2-7-12.py的执行结果如下&#xff1a;
在这里插入图片描述

程序2-7-12.py的执行过程如下&#xff1a;
1、导入turtle库&#xff0c;为绘图做准备。
2、定义getFunY函数&#xff0c;接收参数a、b、c以及x&#xff0c;函数体的代码完成根据一元二次函数值的计算。
3、定义a、b、c、x值&#xff0c;其中x值初始化为-10
4、while循环&#xff0c;循环条件是x<&#61;10。
&#xff08;1&#xff09;up函数抬起画笔
&#xff08;2&#xff09;goto函数移动到(x,y)处&#xff0c;其中x每次循环递增0.1&#xff0c;y为根据a、b、c、x值计算的getFunY函数的返回值。
&#xff08;3&#xff09;dot函数落笔画点。
x递增0.1&#xff0c;整个循环x的值从-10增加到10。







推荐阅读
  • 本文介绍了Python爬虫技术基础篇面向对象高级编程(中)中的多重继承概念。通过继承,子类可以扩展父类的功能。文章以动物类层次的设计为例,讨论了按照不同分类方式设计类层次的复杂性和多重继承的优势。最后给出了哺乳动物和鸟类的设计示例,以及能跑、能飞、宠物类和非宠物类的增加对类数量的影响。 ... [详细]
  • 本文介绍了C++中省略号类型和参数个数不确定函数参数的使用方法,并提供了一个范例。通过宏定义的方式,可以方便地处理不定参数的情况。文章中给出了具体的代码实现,并对代码进行了解释和说明。这对于需要处理不定参数的情况的程序员来说,是一个很有用的参考资料。 ... [详细]
  • 本文讨论了Kotlin中扩展函数的一些惯用用法以及其合理性。作者认为在某些情况下,定义扩展函数没有意义,但官方的编码约定支持这种方式。文章还介绍了在类之外定义扩展函数的具体用法,并讨论了避免使用扩展函数的边缘情况。作者提出了对于扩展函数的合理性的质疑,并给出了自己的反驳。最后,文章强调了在编写Kotlin代码时可以自由地使用扩展函数的重要性。 ... [详细]
  • 第四章高阶函数(参数传递、高阶函数、lambda表达式)(python进阶)的讲解和应用
    本文主要讲解了第四章高阶函数(参数传递、高阶函数、lambda表达式)的相关知识,包括函数参数传递机制和赋值机制、引用传递的概念和应用、默认参数的定义和使用等内容。同时介绍了高阶函数和lambda表达式的概念,并给出了一些实例代码进行演示。对于想要进一步提升python编程能力的读者来说,本文将是一个不错的学习资料。 ... [详细]
  • 欢乐的票圈重构之旅——RecyclerView的头尾布局增加
    项目重构的Git地址:https:github.comrazerdpFriendCircletreemain-dev项目同步更新的文集:http:www.jianshu.comno ... [详细]
  • 本文为Codeforces 1294A题目的解析,主要讨论了Collecting Coins整除+不整除问题。文章详细介绍了题目的背景和要求,并给出了解题思路和代码实现。同时提供了在线测评地址和相关参考链接。 ... [详细]
  • 本文分享了一个关于在C#中使用异步代码的问题,作者在控制台中运行时代码正常工作,但在Windows窗体中却无法正常工作。作者尝试搜索局域网上的主机,但在窗体中计数器没有减少。文章提供了相关的代码和解决思路。 ... [详细]
  • CSS3选择器的使用方法详解,提高Web开发效率和精准度
    本文详细介绍了CSS3新增的选择器方法,包括属性选择器的使用。通过CSS3选择器,可以提高Web开发的效率和精准度,使得查找元素更加方便和快捷。同时,本文还对属性选择器的各种用法进行了详细解释,并给出了相应的代码示例。通过学习本文,读者可以更好地掌握CSS3选择器的使用方法,提升自己的Web开发能力。 ... [详细]
  • Java容器中的compareto方法排序原理解析
    本文从源码解析Java容器中的compareto方法的排序原理,讲解了在使用数组存储数据时的限制以及存储效率的问题。同时提到了Redis的五大数据结构和list、set等知识点,回忆了作者大学时代的Java学习经历。文章以作者做的思维导图作为目录,展示了整个讲解过程。 ... [详细]
  • JavaSE笔试题-接口、抽象类、多态等问题解答
    本文解答了JavaSE笔试题中关于接口、抽象类、多态等问题。包括Math类的取整数方法、接口是否可继承、抽象类是否可实现接口、抽象类是否可继承具体类、抽象类中是否可以有静态main方法等问题。同时介绍了面向对象的特征,以及Java中实现多态的机制。 ... [详细]
  • 本文详细介绍了Java中vector的使用方法和相关知识,包括vector类的功能、构造方法和使用注意事项。通过使用vector类,可以方便地实现动态数组的功能,并且可以随意插入不同类型的对象,进行查找、插入和删除操作。这篇文章对于需要频繁进行查找、插入和删除操作的情况下,使用vector类是一个很好的选择。 ... [详细]
  • 本文介绍了如何使用python从列表中删除所有的零,并将结果以列表形式输出,同时提供了示例格式。 ... [详细]
  • 006_Redis的List数据类型
    1.List类型是一个链表结构的集合,主要功能有push,pop,获取元素等。List类型是一个双端链表的结构,我们可以通过相关操作进行集合的头部或者尾部添加删除元素,List的设 ... [详细]
  • Java SE从入门到放弃(三)的逻辑运算符详解
    本文详细介绍了Java SE中的逻辑运算符,包括逻辑运算符的操作和运算结果,以及与运算符的不同之处。通过代码演示,展示了逻辑运算符的使用方法和注意事项。文章以Java SE从入门到放弃(三)为背景,对逻辑运算符进行了深入的解析。 ... [详细]
  • 上图是InnoDB存储引擎的结构。1、缓冲池InnoDB存储引擎是基于磁盘存储的,并将其中的记录按照页的方式进行管理。因此可以看作是基于磁盘的数据库系统。在数据库系统中,由于CPU速度 ... [详细]
author-avatar
超人不会飞
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有