函数定义的参数总结
1.标准参数
2.缺省参数,一般经验而言缺省参数声明在后
3.不定长参数(参数的个数不确定)
a.不定长参数元组
b.不定长参数字典
什么是引用
引用指的是在计算机中变量记录数据的一种方式
1.一个变量如果是进行了重新赋值,那么他的地址就会发生改变
2.如果一个变量拥有了一个内存地址的引用就可以为所欲为
3.id()函数里用函数可以查看在内存中地址的标识(独立序号)
可变、可不变
可变
b =b+b是重新赋值
b+=b对原来的数据进行更改
1.list
2.dict
3.set
不可变
无论是b=b+b 还是b+=b都属于重新赋值
1.str
2.tuple
全局global的使用
在函数内部想对全局变量进行重新赋值则要用global,二如果全局变量是可变的在函数内部想要在不改变引用的情况下改变值则不需要global
总结
调用一个有参数的还是的时候,传递的不是数据,传递的是引用
流程控制关键字
break,continue,return
作用
控制流程语句的执行
区别
continue:结束本次循环,开始下一个循环,不会跳出该 循环
break : 结束当前循环进入循环之后的代码
return : 跳出整个方法,只要遇见return的地方,不论return在哪,直接在return处结束当前的函数
冒泡算法
冒泡排序(Bubble Sort)也是一种简单直观的排序算法。
它重复地走访过要排序的数列,一次比较两个元素,如果他们的顺序错误就把他们交换过来。
走访数列的工作是重复地进行直到没有再需要交换,也就是说该数列已经排序完成。
这个算法的名字由来是因为越小的元素会经由交换慢慢"浮"到数列的顶端。
通俗的讲就是将下标索引为0的元素与他的后一位相比(较大的往后排,较小的往前排)
较大的元素在与后一位相比,直至元素的最后一位。然后第二位元素在以同样的方式进行反复循环。
最后一位不需要比较,完成排序
算法格式
def bubbleSort(arr):
n = len(arr)
# 遍历所有数组元素
for i in range(n):
for j in range(0, n - i - 1):
if arr[j] > arr[j + 1]:
arr[j], arr[j + 1] = arr[j + 1], arr[j]
arr = [64, 34, 25, 12, 22, 11, 90]
bubbleSort(arr)
print("排序后的数组:")
for i in range(len(arr)):
print("%d" % arr[i])
递归算法
所谓递归其实就是函数本身调用函数,直到满足指定条件之后一层层退出函数
例如:利用函数编写一个斐波那契数列
def ser_list(n):
if n <= 1:
return n
else:
return (ser_list(n - 1) + ser_list(n - 2))
set = int(input("您用几项"))
if set <= 0:
print("输入正数")
else:
print("斐波那契数列:")
for i in range(set):
print(ser_list(i))