1.形参和实参
- 定义函数时函数名后边圆括号内的参数称为
形式参数
- 在调用函数的时候,函数名后边括号内的参数称为
实际参数
2.函数之斐波那契数列
def gen_fib(ind):
fib = [0, 1]
for i in range(ind - 2):
fib.append(fib[-1] + fib[-2])
return fib
#不从键盘输入获取数据
nlist = [6, 8, 10]
for i in nlist:
print(gen_fib(i))
#从键盘输入获取数据
num = int(input('你想要生成几位的斐波那契数列:'))
print(gen_fib(num))
3.位置参数
cat argv.py
#!/Users/liuhuan/py_script/venv/bin/python3.9
import sys
print(sys.argv)
#执行效果如下
# ./argv.py 11 hello world
['./argv.py', '11', 'hello', 'world']
4.默认参数
def pstar(n = 30):
print('*' * n)
pstart() #没有传参的时候,默认是30
pstart(40) #传参,打印40个星号
5.将copy程序编写成copy函数
src_fpath = '/bin/ls'
dst_fpath = '/tmp/list2'
src_fobj = open(src_fpath, 'rb')
dst_fobj = open(dst_fpath, 'wb')
while 1:
data = src_fobj.read(4096)
if not data:
break
dst_fobj.write(data)
src_fobj.close()
dst_fobj.close()
更改后如下:
import sys
def func_cp(src_fpath, dst_fpath):
src_fobj = open(src_fpath, 'rb')
dst_fobj = open(dst_fpath, 'wb')
while 1:
data = src_fobj.read(4096)
if not data:
break
dst_fobj.write(data)
src_fobj.close()
dst_fobj.close()
#使用sys模块下的argv列表进行接收传参,0是程序名即程序本身,1、2、3....位置参数
func_cp(sys.argv[1], sys.argv[2])