首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

Python全网最全基础课程笔记(十二)——函数,跟着思维导图和图文来学习,爆肝2w字,无数代码案例!

函数的传参 在Python中,函数的参数传递是一个核心概念,它涉及到如何将数据从函数的调用者(或称为“外部”)传递到函数内部。这个过程涉及到两个关键概念:形参(形式参数)和实参(实际参数)。...Python中的函数参数传递主要是通过赋值传递(也称为共享传递)来实现的,这意味着实参的值会被复制到形参的位置(对于不可变类型如整数、浮点数、字符串和元组等)或者是将实参的内存地址赋值给形参(对于可变类型如列表...实参(Actual Parameters) 实参是调用函数时传递给函数的实际值,这些值可以是常量、变量、表达式或另一个函数的返回值。实参的值会被传递给相应的形参,以便在函数内部使用。...注意事项 顺序无关:与位置传参不同,关键字传参允许你以任意顺序传递参数,因为每个参数都是通过其名称来识别的。 清晰性:关键字传参增加了代码的可读性,因为参数名提供了关于每个参数用途的明确说明。...参数解包:在调用函数时,可以使用*操作符将列表、元组或其他可迭代对象解包为位置参数。这允许你将存储在容器中的数据作为单独的参数传递给函数。

12310

你不知道的javascript—作用域、闭包「建议收藏」

简单来讲,with 可以将一个没有或有多个属性的对象处理为一个完全隔离的词法作用域,因此这个对 象的属性也会被处理为定义在这个作用域中的词法标识符。 eval(..)...---- 公布一下答案foo.x为2 是不是大家有点蒙了,不是说const定义的常量不能改变吗,而此时却改变且未报错!我解释一下 有一个概念:在赋值过程中,我们可以分为传值赋值和传址赋值。...这里我们用到了传址赋值,什么叫传址赋值?...传址:在赋值过程中,变量实际上存储的是数据的地址(对数据的引用),而不是原始数据或者数据的拷贝 举个栗子 var obj= { "name": '张三' } var obj1 = obj obj1...// 在 foo() 执行后,其返回值(也就是内部的 bar() 函数)赋值给变量 baz 并调用 baz(),实 际上只是通过不同的标识符引用调用了内部的函数 bar()。

47920
  • 您找到你想要的搜索结果了吗?
    是的
    没有找到

    Python 基础知识学习

    像if、while、def和class这样的复合语句首行以关键字开始以冒号( : )结束该行之后的一行或多         行代码构成代码组我们将首行及后面的代码组称为一个子句(clause)。...因此变量可以指定不同的数据类型这些变量可以存储整数小数或字符 17、变量赋值         Python中的变量不需要声明变量的赋值操作既是变量声明和定义的过程。...miles print name 18、多个变量赋值         Python允许你同时为多个变量赋值。...3、Python赋值运算符 以下假设变量a为10变量b为20 运算符 描述                实例 = 简单的赋值运算符 c = a + b 将 a + b 的运算结果赋值为 c...break语句用在while和for循环中。 如果您使用嵌套循环break语句将停止执行最深层的循环并开始执行下一行代码。

    1.8K10

    【C语言篇】C 语言总复习(中):点亮编程思维,穿越代码的浩瀚星河

    可以对数组元素进行赋值、读取等操作,如:arr[2] = 10; 将数组 arr 的第 3 个元素赋值为 10。...strcpy 函数:用于将一个字符串复制到另一个字符数组中,如:char dest[10]; strcpy(dest, "World"); 将 “World” 复制到 dest 数组中。...strcat 函数:用于将一个字符串连接到另一个字符串的末尾,如:char str1[20] = "Hello"; char str2[] = " World"; strcat(str1, str2);...函数调用的过程包括将实参的值传递给形参(值传递情况),然后执行函数体中的代码,最后返回结果(如果有返回值)。...寄存器变量(register):提示编译器将变量存储在寄存器中以提高访问速度,但编译器可能会忽略该提示。

    6210

    写好Shell脚本那些不得不知道的细节

    shell变量能够而且只能存储正文字符串,即它只有一种类型的变量即串变量。但从赋值的形式上看,则可以分成四种类型的变量或变量形式。变量的名字必须以字母或下划线开头,可以包括字母、数字和下划线。...3.位置变量 当一个shell过程被调用时, shell隐含地为它建立一系列的位置变量。这种位置变量是系统预定义好的,可以直接引用。...如命令行的shell过程名本身被指定为位置变量0,即"1,……,第九个命令参数为 9。...,则使用 my.file.txt 作传回值,没设定及空值不作处理 ${file=txt} 若 $file 没设定,则回传 txt ,并将 $file 赋值为txt,空值及非空值不作处理...${file:=txt} 若 $file 没设定或空值,则回传 txt ,将 $file 赋值为txt,非空值时不作处理 ${file?

    1.9K10

    Java代码评审歪诗!让你写出更加优秀的代码!

    幻-欢 在代码中要杜绝幻数,幻数可定义为枚举或常量以增强其可读性; 空-空 要时刻警惕空指针异常: 常见的 a.equals(b) 要把常量放到左侧; aInteger == 10 如果 aInteger...为空时会抛出空指针异常; 不确认返回集合是否可为空时要做非空判断, 再做for循环; 使用空对象模式,约定返回空集合,而非null; 使用StringUtils判断字符串非空; 越-月 如果方法传入数组下标作为参数...命-明 包/类/方法/字段/变量/常量的命名要遵循规范,要名副其实,这不但可以增加可读性,还可以在起名的过程中引导我们思考方法/变量/类的职责是否合适 有意义很重要, 典型无意义命名: ?...循-勋 不要在循环中调用服务,不要在循环中做数据库等跨网络操作; 频-品 写每一个方法时都要知道这个方法的调用频率,一天多少,一分多少,一秒多少,峰值可能达到多少,调用频率高的一定要考虑性能指标,考虑是否会打垮数据库...使用Service成员变量: ?

    5.4K20

    分享一些对你有帮助的JavaScript技巧

    ,使用模板 使用+操作符将字符串连接在一起以建立一个有意义的字符串是老式的。...年龄将被计算为35,这是意想不到的行为。 进入空值凝聚运算符(??)。它是一个逻辑运算符,当其左手操作数为空或未定义时,返回其右手操作数,否则返回其左手操作数。 要用??运算符重写上述代码。...在调用函数时,你可以为这些参数传值,也可以不传值。如果你不为param传值,它将是未定义的,可能会引起一些不必要的副作用。 在定义函数参数时,有一种简单的方法可以将默认值传递给函数参数。...---- 解构 将数组元素和对象属性分解为变量的技术称为,反结构。让我们通过几个例子来看看。...如果你想对一个数组进行重构,将一个或多个项目赋值给变量,然后将其余的项目存入另一个数组,你可以使用......休息运算符来实现,如下图所示。

    1.2K20

    Go小技巧&易错点100例(十六)

    对于切片s,其容量可以通过cap(s)得到。切片的长度和容量之间有一个重要的关系:切片的长度不会超过其容量。...参数值:当defer语句被遇到时,会记录其函数和参数,但参数的值是在defer实际执行时才被计算的。这意味着如果defer语句中的函数参数依赖于循环变量,那么这些参数将使用循环结束时的值。...如果你希望每个defer打印出它自己被创建时的循环变量值,你可以通过将循环变量作为参数传递给一个匿名函数来捕获其当前值:package mainimport "fmt"func main() {...输出将会是:43210这展示了defer语句在for循环中是如何按照后进先出的顺序执行的,并且说明了如何捕获循环变量的当前值以便在defer语句执行时使用。...Go语言TrimLeft函数在Go语言的strings包中,TrimLeft函数用于删除字符串左侧的指定字符集合。它接受两个参数:一个是要处理的字符串,另一个是要删除的字符集合。

    15810

    分享一些你可能不知道的但却很有帮助的JavaScript小技巧

    ,使用模板 使用+操作符将字符串连接在一起以建立一个有意义的字符串是老式的。...年龄将被计算为35,这是意想不到的行为。 进入空值凝聚运算符(??)。它是一个逻辑运算符,当其左手操作数为空或未定义时,返回其右手操作数,否则返回其左手操作数。 要用??运算符重写上述代码。...在调用函数时,你可以为这些参数传值,也可以不传值。如果你不为param传值,它将是未定义的,可能会引起一些不必要的副作用。 在定义函数参数时,有一种简单的方法可以将默认值传递给函数参数。...下面是一个例子,我们将默认值Hello传递给问候函数的参数信息。...如果你想对一个数组进行重构,将一个或多个项目赋值给变量,然后将其余的项目存入另一个数组,你可以使用......休息运算符来实现,如下图所示。

    1.1K50

    Go 中数据类型和使用注意事项

    Hash 冲突 使用了增量扩容解决负载因子大于 6.5(键数量/Bucket数量)过高的问题 引用类型因为不能进行比较,不能当作 Map 的 key Golang 数据类型的特点 数组: 数组是值,将一个数组赋值给另一个...,会拷贝所有的元素(如果你给函数传递一个数组,其将收到一个数组的拷贝,而不是它的指针) 数组的大小是其类型的一部分。...切片: 切片持有对底层数组的引用,如果你将一个切片赋值给另一个,二者都将引用同一个数组(如果函数接受一个切片参数,对切片的元素所做的改动,对于调用者是可见的,好比是传递了一个底层数组的指针) 字典: 和切片类似...如果将map传递给函数,其对map的内容做了改变,则这 些改变对于调用者是可见的。...花括号来控制变量的作用域,花括号中的变量是单独的作用域,同名变量会覆盖外层 Golang 控制结构 select 的特点 golang 提供的多路 I/O 复用机制 和 linux 的 select

    4400

    【期末复习】⚡考试月来临!C语言复习,这一篇带你逃离挂科区!(完结)

    注意:传数值,形参的变化不会改变实参的变化;传地址,形参的变化就有可能改变实参所对应的值 4.4 函数的嵌套调用 函数不能嵌套定义,但可以嵌套调用,也就是在一个函数的定义或调用过程中允许出现对另外一个函数的调用...这部分的内容过于简单就不过多阐述,就是在一个函数里调用另一个函数,无限套娃 4.5 函数的递归调用 在调用一个函数的过程中又出现直接或间接地调用该函数本身,称为递归调用,这也是C语言的特点之一。...main 函数也是一个函数,与其他函数平等地位 实参给形参传值的过程也就是给局部变量赋值的过程 可以在不同的函数中使用相同的变量名,它们表示不同的数据,分配不同的内存,互不干扰。...就像其他变量或常量一样,必须在使用指针存储其他变量地址之前,对其进行声明。...p); printf("%d",*p);的意思是:一整数形式输出指针变量 p 指向的变量的值 *p = 1; 表示将整数1赋值给 p 所指向的变量,即c = 1 引用指针变量的值 printf("%o"

    92520

    爬虫工程师面试题

    (赋值、浅拷贝、深拷贝的区别) 5、如果custname字符串的编码格式为uft-8,如何将custname的内容转化为gb18030的字符串?...现在:a = 1 ,然后我们又重新对a赋值,a = 2,在重新赋值的过程中,整数1所对应的内存地址没有和数字的大小都没有发生变化,还在内存中的固定位置。整数2也是如此。...总结: (1)当对象为不可变类型时,不论是赋值,浅拷贝还是深拷贝,那么改变其中一个值时,另一个都是不会跟着变化的。...,'123’为test传参,'hello’和’2019’为​args传参,这里传了2个参数。...第二段代码的运行结果为:[1] 这是因为,将a传入到function中,这相当于对a进行赋值引用。由于a是可变类型的,所以在函数内部修改a的时候,外部的全局变量a也跟着变化。

    9310

    C语言作业详解12_17(题型对应知识点)

    实参可以为任意类型为形参传值,但要确保D中的类型一致问题。 D、正确。形参的类型通常应与对应实参的类型保持一致,以确保正确的数据传递和操作。形参的类型决定了函数在被调用时所接收的数据类型。...函数说明是返回值为void 类型的函数,但是在函数调用语句那里是将返回值赋给k,所以k不会被赋值,矛盾由此而来。 D、错误。函数名可以用下划线。...不符合C语言的语法规范 六、传参方式 A. 地址传递:地址传递是指将实参的地址传递给形参,形参通过该地址可以直接访问和修改实参的值。在C语言中,可以通过传递指针来实现地址传递。...七、含函数程序运行结果分析 函数 fun 接收三个整数类型的参数 a、b、c,并在函数内部将其分别赋值为 456、567、678。...然后,调用了 fun(x, y, z) 函数,将变量 x、y、z 的值传递给函数的对应形参。

    12410

    python爬虫常见面试题(一)

    (赋值、浅拷贝、深拷贝的区别) 5、如果custname字符串的编码格式为uft-8,如何将custname的内容转化为gb18030的字符串?...现在:a = 1 ,然后我们又重新对a赋值,a = 2,在重新赋值的过程中,整数1所对应的内存地址没有和数字的大小都没有发生变化,还在内存中的固定位置。整数2也是如此。...总结: (1)当对象为不可变类型时,不论是赋值,浅拷贝还是深拷贝,那么改变其中一个值时,另一个都是不会跟着变化的。...,'123'为test传参,'hello'和'2019'为*args传参,这里传了2个参数。...第二段代码的运行结果为:[1] 这是因为,将a传入到function中,这相当于对a进行赋值引用。由于a是可变类型的,所以在函数内部修改a的时候,外部的全局变量a也跟着变化。

    3.8K20

    借问变量何处存,牧童笑称用指针,Go lang1.18入门精炼教程,由白丁入鸿儒,go lang类型指针(Pointer)的使用EP05

    指针是存储另一个变量的内存地址的变量。变量是一种使用方便的占位符,用于引用计算机内存地址,一个指针变量可以指向任何一个值的内存地址它指向那个值的内存地址。...* 关键字如果在赋值操作值的左边,指该指针指向的变量;* 关键字如果在赋值操作符的右边,指从一个指针变量中取得变量值,又称指针的解引用。    ...与此同时,在传参过程中,也可以使用指针: package main import ( "fmt" ) func change(val *int) { *val = 55 } func main(...一种方法是将一个指向数组的指针传递给方法: package main import ( "fmt" ) func modify(arr *[3]int) { (*arr)[0] = 90 }...func main() { a := [3]int{89, 90, 91} modify(&a) fmt.Println(a) }     程序返回: [90 90 91]     虽然可以用指针传递给一个数组作为方法的实参并对其进行修改

    46140

    C语言基础——循环详解!

    继续执行循 环后面的代码 (3)执行完b 后,继续判断a是否满足条件。...由于while循环不会自行更改循环控 制变量的内容,所以while循环中为循环控制变量赋值的工作要由设计者自己来 做,完成后再回到步骤(2)重新判断是否继续执行循环。...结构如下: for ( [表达式 1]; [表达式 2 ]; [表达式3] ){语句4} 表达式1:一般为赋值表达式,给控制变量赋初值; 控制变量 表达式2:关系表达式或逻辑表达式,循环控制条件;控制条件...表达式3:一般为赋值表达式,给控制变量增量或减量;增量或减量 //======================【打印10次付出不亚于任何人的努力!】...==================================== int i; //声明一个变量i for (i = 0; i 赋值为0 2、判断i为真执行循环

    4.4K00

    C++从入门到精通——引用(&)

    在main函数中,将变量x传递给increment函数后,x的值被递增为11。因为参数是引用类型,所以对i的修改会直接影响到x。...在main函数中,将变量x传递给print函数后,print函数无法修改x的值。这样做可以确保函数不会意外地修改传递给它的参数。...,类型转换是将一个数据类型的值转换为另一个数据类型的值,而不是直接修改原始值。...表达式计算:在进行表达式计算时,如果表达式中包含临时变量的创建和销毁,编译器会在需要的地方生成临时变量。 函数调用:当调用函数时,会将实参传递给形参。...五、传值、传引用效率比较 以值作为参数或者返回值类型,在传参和返回期间,函数不会直接传递实参或者将变量本身直接返回,而是传递实参或者返回变量的一份临时的拷贝,因此用值作为参数或者返回值类型,效率是非常低下的

    12410

    Python 3 函数

    函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。 函数内容以冒号起始,并且缩进。 return [表达式] 结束函数,选择性地返回一个值给调用方。...不可变类型:变量赋值 a=5 后再赋值 a=10,这里实际是新生成一个 int 值对象 10,再让 a 指向它,而 5 被丢弃,不是改变a的值,相当于新生成了a。...可变类型:变量赋值 la=[1,2,3,4] 后再赋值 la[2]=5 则是将 list la 的第三个元素值更改,本身la没有动,只是其内部的一部分值被修改了。...如 fun(la),则是将 la 真正的传过去,修改后fun外部的la也会受影响 python 中一切都是对象,严格意义我们不能说值传递还是引用传递,我们应该说传不可变对象和传可变对象。...实例中有 int 对象 89,指向它的变量是 b,在传递给 cme 函数时,按传值的方式复制了变量 b,a 和 b 都指向了同一个 Int 对象,在 a=100 时,则新生成一个 int 值对象 100

    1.2K30
    领券