函数基本使用-03-函数的定义以及调用执行线路图1.执行总是从程序的第一行代码开始的,从上到下,从左到右,按顺序依次执行第一条语句。2.函数定义并不会改变程序的执行流程,但应该注意函数代码块中的语句并不是立即就执行的,而是等到函数被程序调用时才会执行。3.函数调用可以看作程序执行流程中的一个迂回路径,遇到函数调用时,并不会直接继续执行下一条语句,而是跳到函数体的第一行,继续执行完函数代码块的所有语句,再跳回到原来离开的地方。4.看似比较简单,一会你会发现,函数代码块中可以调用其他函数,当程序流程运行到一个函数之中时,可能需要执行其他函数中的语句。但当执行那个函数中的语句时,又可能再需要调用执行另一个函数的语句。(一会就讲函数的嵌套)
列表和普通变量有什么区别?
列表是数据类型,普通变量是用来存储数据的 可以把列表赋值给普通变量
函数参数-03-形参和实参函数的参数,分为形参和实参
我们先来看看官方对着两个名词的理解实参(argument): 全称为"实际参数"是在调用时传递给函数的参数. 实参可以是常量、变量、表达式、函数等, 无论实参是何种类型的量,在进行函数调用时,它们都必须具有确定的值, 以便把这些值传送给形参。 因此应预先用赋值,输入等办法使实参获得确定值 形参(parameter):全称为"形式参数" 由于它不是实际存在变量,所以又称虚拟变量。是在定义函数名和函数体的时候使用的参数,目的是用来接收调用该函数时传入的参数.在调用函数时,实参将赋值给形参。因而,必须注意实参的个数,类型应与形参一一对应,并且实参必须要有确定的值。
# 获取质数# 除以 2- 自己本身的数 如果都除不尽的话 表示他是一个质数# 37 2-19 # 1000以内的质数def get_prime(n): ret = [] ret.append(2) for i in range(3, n): # 假设这个数是质数 isPrime = True for j in range(2, (i//2+1)): if i % j == 0: isPrime = False break if isPrime: ret.append(i) return ret0result = get_prime(101)print(result)print(len(result))
有10个球分别3红、3蓝、4白,现需要将这10个球放入这3个盒子,要求每个盒子至少有一个白球,请用程序实现
redball = ['red', 'red', 'red'] # 红球
blueball = ['blue', 'blue', 'blue'] # 蓝球
whiteball = ['white', 'white', 'white', 'white'] # 白色
# 盒子
boxes = [[],[],[]]
# 先抽出三个白球,依次放如三个盒子中
for box in boxes:
# pop可以弹出列表的元素
box.append(whiteball.pop())
# 把剩下的球加在一起
balls = redball + blueball + whiteball
# 把每一个球随机放入任意的盒子中
for ball in balls:
# 随机选一个盒子,注意需要-1
box_index = random.randint(0,len(boxes)-1)
boxes[box_index].append(ball)
print(boxes)
|
|