函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。python
函数能提升应用的模块性,和代码的重复利用率。你已经知道Python提供了许多内建函数,好比print()。但你也能够本身建立函数,这被叫作用户自定义函数。面试
定义一个由本身想要功能的函数,如下是规则:编程
一、函数代码块以 def 关键词开头,后接函数标识符名称和圆括号 ()。编程语言
二、任何传入参数和自变量必须放在圆括号中间,圆括号之间能够用于定义参数。函数
三、函数的第一行语句能够选择性地使用文档字符串—用于存放函数说明。spa
四、函数内容以冒号起始,而且缩进。.net
五、return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的return至关于返回 None。翻译
一、python中定义函数所用的关键字是def, def 函数名() : 冒号代替其余编程语言的大括号,而后换行缩进写的代码就是函数体。( ```是文档注释)code
def demo01(): ''' 打印一个简单的函数 ''' print("Hello!") demo01()
二、函数也能够嵌套。对象
def demo02(name): def demo03(name): print('字母:' + name) demo03(name) demo02('A')
三、python当中容许给函数的形参设置一个默认值,不传参数调用的话,就会使用默认值。
def welcome(name = 'A'): print("Hello !" + name) welcome("B") welcome()
打印:
Hello !B
Hello !A
四、关键字参数让你能够不须要考虑函数的参数位置,只要以键值对形式指定参数的对应形参。
def welcome(name,address): print("你好 {name} , 欢迎来到 {address} !") welcome(address='这里',name='aaa')
五、有时须要容许用户提供任意数量的参数,函数的形参能够带个星号来接收,无论调用函数的时候传递了多少实参,都将被收集到形参这个变量当中,形参的类型是元组。
def welcome(*names): print(names) welcome('aaa','bbb','ccc','ddd')
还有一种就是带两个星号的形参,用于接收键值对形式的实参,导入到函数中的类型是字典。
def welcome(**names): print(names) welcome(name='aaa',age=20,sex='男')
六、分配参数是收集参数的相反操做,可以使得一个元组或字典变量自动分配给函数中的形参。
def welcome(name,address): print(f"你好 {name} , 欢迎来到 {address} !") a = ('aaa','这里') welcome(*a)
七、全部的函数都是有返回值的,若是没有指定返回值,那么默认会返回None。对应其余语言中的null。
八、匿名函数,区别与正常函数定义的流程,能够直接定义一个简单的函数并把函数自己赋值给一个变量,使得这个变量能够像函数同样被调用,在python中能够用lambda关键字来申明定义一个匿名函数。
源码编译为字节码(.pyc) ——> Python虚拟机 ——> 执行编译好的字节码 ——> Python虚拟机将字节码翻译成相对应的机器指令(机器码)。
程序运行时,先编译字节码并保存到内存中,当程序运行结束后,Python解释器将内存中的字节码对象写到.pyc文件中。
第二次运行时,先从硬盘中寻找.pyc文件,若是找到,就直接载入,不然再次执行上面的过程。
Python经常使用数据类型:整型(int)、浮点型(float)、字符串(string)、空值(None)、布尔值(True和False)、复数、类、函数等。
Python中常量的命名规则,变量名全大写为常量。变量的命名遵循标识符的命名规则。
对象:建立数据对象时,内存中会保存对象的值,这个值就是对象本身;
引用:对象保存在内存空间,外部想要使用对象的值,就须要使用引用来操做对象。当对象的引用为0时,对象会被回收。
一、可变数据对象:列表(list)和字典(dict)
二、不可变数据对象:整型(int)、浮点型(float)、字符串(string)和元组类型(tuple)
不可变数据类型:对象自己的值不可变,若是改变了变量的值,至关于新建了一个对象,而对于相同值的对象,在内存中只有一个对象。
可变数据类型:容许变量的值进行改变,对于变量给值的过程当中,只是改变了变量的值,而不会新建一个对象,因此可变数据类型的意思就是说对一个变量进行操做时,其值是可变的,值的变化并不会引发新建对象,即地址是不会变的,只是地址中的内容变化了或者地址获得了扩充。,不过对于相同的值的不一样对象,在内存中则会存在不一样的对象,即每一个对象都有本身的地址,至关于内存中对于同值的对象保存了多份,这里不存在引用计数,是实实在在的对象。
做为自学过的人,我深深体会过没人带,没人问的感受,因此我想把本身所学、实际工做中使用的技术、自学方法、心得、踩过的一些坑以及面试题都分享出来,群175317069。已经有不少同行加入群里,平时会交流一些技术问题,也能够互相介绍好的工做机会。