Python语句介绍及函数定义和参数类型
语句
if
if 语句的判断条件可以用>(大于)、<(小于)、==(等于)、>=(大于等于)、<=(小于等于)来表示其关系。
非零数值、非空字符串、非空 list 等,判断为 True,否则为 False
1 | if x > 0: |
if 语句多个判断条件的形式
1 | if 判断条件1: |
if 语句多个条件同时判断
结合 or
和 and
来使用
1 | if age > 0 and age < 18 |
注意:if 有多个条件时可使用括号来区分判断的先后顺序,括号中的判断优先执行,此外 and 和 or 的优先级低于 >(大于)、<(小于)等判断符号,即大于和小于在没有括号的情况下会比与或要优先判断。
循环语句
在 Python 提供了 for 循环和 while 循环。
循环控制语句 | 描述 |
---|---|
break | 在语句块执行过程中终止循环,并且跳出整个循环 |
continue | 在语句块执行过程中终止当前循环,跳出该次循环,执行下一次循环 |
pass | pass 是空语句,是为了保持程序结构的完整性 |
for
1 | for s in 'abcd': |
while
1 | num = 1 |
函数
函数就是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段。
创建方法
- 函数代码块以 def 关键词开头,后接函数标识符名称和圆括号()
- 任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数
- 函数的第一行语句可以选择性地使用文档字符串(用于存放函数说明)
- 函数内容以冒号起始,并且缩进
- return [表达式] 结束函数,选择性地返回一个值给调用方。不带表达式的 return 相当于返回 None。
语法示例:
1 | def functionname( parameters ): |
实例:
- def 定义一个函数,给定一个函数名 sum
- 声明两个参数 num1 和 num2
- 函数的第一行语句进行函数说明:两数之和
- 最终 return 语句结束函数,并返回两数之和
1 | def sum(num1,num2): |
函数的返回值
函数可以有多个返回值,一次接受多个返回值的数据类型就是元组
函数的参数
参数类型:默认参数、关键字参数(位置参数)、不定长参数
默认参数
在构造函数方法时,给参数赋值即可,在使用的时候,不传该参数,就会使用默认参数
1 | def fun1(name, age=18): |
关键字参数
通过参数名来直接赋值,不用考虑参数列表定义的顺序
1 | def fun1(name, age=18, hobby=None): |
不定长参数
设计函数的时候,我们有时候无法确定传入的参数个数。可以在参数前边加星号 *
如果在函数调用时没有指定参数,它就是一个空元组。我们也可以不向函数传递未命名的变量。
1 | def fun3(name, age=18, hobby=None, *game): |
可变长参数也支持关键字参数(位置参数),没有被定义的关键参数会被放到一个字典里。这种方式即是在参数前边加 **
1 | def fun3(name, age=18, hobby=None, **game): |
只接受关键字参数
将强制关键字参数放到某个*
参数或者单个*
后面
1 | # 加单个'*' |
函数的值传递问题
不可更改的类型:变量赋值 a = 1
,其实就是生成一个整形对象 1 ,然后变量 a 指向 1,当 a = 1000
其实就是再生成一个整形对象 1000,然后改变 a 的指向,不再指向整形对象 1 ,而是指向 1000,最后 1 会被丢弃
可更改的类型:变量赋值 a = [1,2,3,4,5,6]
,就是生成一个对象 list ,list 里面有 6 个元素,而变量 a 指向 list ,a[2] = 5
则是将 list a 的第三个元素值更改,这里跟上面是不同的,并不是将 a 重新指向,而是直接修改 list 中的元素值。
1 | def unchangeable(num): |
匿名函数
python 使用 lambda 来创建匿名函数
匿名函数主要有以下特点:
- lambda 只是一个表达式,函数体比 def 简单很多。
- lambda 的主体是一个表达式,而不是一个代码块。仅仅能在 lambda 表达式中封装有限的逻辑进去。
- lambda 函数拥有自己的命名空间,且不能访问自有参数列表之外或全局命名空间里的参数。
基本语法
1 | lambda [arg1 [,arg2,.....argn]]:expression |
range()
使用 range(x) 函数,就可以生成一个从 0 到 x-1 的整数序列。
range(0,3)
, 从 0 数到 3 每次间隔默认值为1 也可以写成range(3)
结果:0,1,2
range(0,10,2)
,从 0 数到 10(不取 10 ),每次间隔为 2 结果:0,2,4,6,8