f.writelines(['111111\n','1111111\n'])

以列表的形式循环写,每次一行

为什么要用函数:解决代码的冗余(同一个功能,多处用到,要写多处),扩展性差(修改一个功能,要修改所有用到的代码)

函数分为:

#内置函数sum max len
# print(print)

#自定义函数

函数的定义 :

def 函数名(arg1,arg2,arg3):
  '描述信息'
  函数体
  return 1

#函数的返回值可以是任意类型
#没有return--->None
#return 1--->1
#return 1,2,3--->(1,2,3)

return返回的是一个元组,

def bar(x,y):
  # return (1,2,3,4,5,6,[1,2],{'a':2},{1,2,3})
  return 1,2,3

# res2=bar(1,2)
# print(res2)

# a,b,c=bar(1,2)
# print(a)
# print(b)
# print(c)

注意:函数的所传的实参,必须是不可变类型,不要跟外部扯上关系

############################

形参:定义函数时的def 后面跟的其实就是个变量名,内存中没有值

实参:函数调用时如foo(1,2)变量值

#函数的参数介绍
#
# def foo(x,y):
  # print(x)
  # print(y)

#在实参的角度

#第一种:按照位置传值
# foo(1,2)
# foo(2,1)

#第二种:按照关键字传值
# foo(x=1,y=2)
# foo(y=2,x=1)

#第三种:混着用
# foo(1,y=2)
#问题一:按位置传值必须在按关键字传值的前面
# foo(y=2,1) #报错
#问题一:对于一个形参只能赋值一次
# foo(1,y=2)

#从形参的角度来分析

#位置参数:必须传值的参数
# def foo(x,y):
  # print(x)
  # print(y)
#
# foo(1,2,3)
# # foo(y=2,x=1)

#默认参数
def foo(x,y=1):
  print(x)
  print(y)

# # foo(1)
# foo(1,2)
# foo(y=2,x=2)

# def open(file,mode='r'):
  # pass
#
# open('a.txt')

# def register(name,sex='male'):
  # print(name)
  # print(sex)
#
# register('qinzhen')

#默认参数必须注意的问题是:默认参数必须放到位置参数的后面
# def register(sex='male'): #报错
  # print(name)
  # print(sex)
# register()
# # register('qinzhen')

# x='male'
# def register(sex=x): # register-------------[sex='male' ...]
  # print(sex)
# #------------------------------------------------
# x=None
# register()

#不推荐下述方式
# x=[]
# def register(name,name_list=x): #
  # name_list.append(name)
# #------------------------------------------------
# register('ASB')
# register('YSB')
# register('WSB')
# print(x)
#

#*args
# def foo(x,*args): #args=(2, 3, 4, 5, 6, 6, 'a', 'b')
# print(x)
# print(args)
#
# foo(1,2,3,4,5,6,6,'a','b')

# #*args与位置参数和默认参数混用:*args要放到位置参数后面
#*args会把多余的所有参数,接收成一个元组,会把形参按位置传入的多入的参数,保存成元组
# def foo(x,*args,y=1):
  # print(x)
  # print(y)
  # print(args)
#
# foo(1,2,3,4,5,6,7,8,9,10,y=10000000)

#从形参的角度
def foo(*args): #foo(x,y,z)
  print(args)

# foo(1,2,3)

#*args=*(1,2,3)
#从实参的角度
def bar(x,y,z):
  print(x)
  print(y)
  print(z)
# bar(*(1,2,3,4)) #bar(1,2,3,4)

# def my_sum(*nums): #nums=(1,2,3,4,5,6,7)
  # res=0
  # for i in nums:
    # res+=i
  # return res
#
# # print(my_sum((1,2,3,4,5)))
# print(my_sum(1,2,3,4,5,6,7))

#**kwargs **会把你实参按关键字传的参数多入的保存成一个字典
# def foo(x,**kwargs):
  # print(x)
  # print(kwargs)
#
# foo(1,y=1,z=2)

#混着用的位置问题
# def foo(x,*args,**kwargs):
  # print(x)
  # print(args)
  # print(kwargs)
#
# foo(1,y=1,z=2)

# def foo(*args,**kwargs):
  # print(args)
  # print(kwargs)
#
# foo(1,1,1,1,1,1,a=1,b=2)

#从形参的角度
def foo(**kwargs): #x=1,y=2
  print(kwargs)

#
# foo(x=1,y=2,z=3)

#从实参的角度
# def foo(x,y,z=1):
  # print(x)
  # print(y)
  # print(z)

# foo(**{'x':1,'y':2,'z':3}) #foo(x=1,y=2,z=2)
# foo(**{'x':1,'y':2}) #foo(x=1,y=2)
# foo(**{'a':1,'y':2}) #foo(a=1,y=2)

def auth(name,password,sex='male'):
  print(name)
  print(password)
  print(sex)

def foo(*args,**kwargs): #args=('egon','123') kwargs={}
  print('from foo')
  auth(*args,**kwargs)
  # auth(*'egon','123'),**{})--->auth('egon','123')

# foo('egon','123')
# foo('ASB','123',sex='female')
foo(name='ASB',password='123',sex='female')

转载于:https://www.cnblogs.com/wanchenxi/p/7349036.html

python函数第一天(day 20)相关推荐

  1. 20 Python函数、定义一个函数、参数传递、匿名函数、return语句、变量作用域、

    20Python函数 函数是组织好的,可重复使用的,用来实现单一,或相关联功能的代码段. 函数能提高应用的模块性,和代码的重复利用率.你已经知道Python提供了许多内建函数,比如print().但你 ...

  2. pta 7-2 jmu-python-组合数 (20 分) python函数练习

    本题要求编写程序,根据公式  算出从n个不同元素中取出m个元素(m≤n)的组合数. 输入格式: 输入在一行中给出两个正整数m和n,以空格分隔. 如果输入数据负数,能输出提示不能负数 如果输入数据出发非 ...

  3. Pass算子python 函数

    Pass算子python 函数 函数 • 函数是代码的一种组织形式 • 函数应该能完成一项特定的工作,而且一般一个函数只完成一项工作 • 有些语言,分函数和过程两个概念,通俗解释是,有返回结果的是函数 ...

  4. python函数第二次运行报错_Python学习笔记2-函数、高级特性

    函数 调用函数 要调用一个函数,需要知道函数的名称和参数,比如求绝对值的函数abs,只有一个参数 >>> abs(100) 100 >>> abs(-20) 20 ...

  5. 进击的python【第一集】

    进击的python[第一集] 1.环境安装 安装python Windows平台安装py的时候要记住安装的位置,方便制定PATH 官网下的安装包可以安装可以卸载 windows制定配置文件路径 C:\ ...

  6. 【290】Python 函数

    参考:Python 函数 目录: 一.语法 二.说明 三.参数传递 四.参数 4. 1 必备参数 4.2 关键字参数 4.3 缺省参数 4.4 不定长参数 五.匿名参数 六.return 语句 一.语 ...

  7. python函数名第一类方法、f-string格式化、迭代器及递归函数

    函数第一类方法 函数名可以赋值给其他变量 def func():print(1) a = func a() # 结果:1 函数名可以当做容器类的元素 def func1():print(1) def ...

  8. python怎么命名未知数_码如其人,小老弟,你能写一手漂亮的Python函数吗

    与多数现代编程语言一样,在 Python 中,函数是抽象和封装的基本方法之一.你在开发阶段或许已经写过数百个函数,但并非每个函数都生而平等.写出「糟糕的」函数会直接影响代码的可读性和可维护性.那么,什 ...

  9. 【Python基础】Python 函数使用总结

    我的施工之路 目前已完成,以下五期Python专题总结: 1我的施工计划 2数字专题 3字符串专题 4列表专题 5流程控制专题 6编程风格专题 今天是Python函数专题,目录结构: Python 函 ...

最新文章

  1. git bash here创建项目无法选择m_你应该知道的10个Git命令
  2. mac安装和卸载mysql_小白自学MySQL笔记(一):Mac环境的安装和启动
  3. 走近分形与混沌(part12)--随机过程与混沌
  4. LeetCode OJ - Sort List
  5. 转义字符html识别吗,HTML_谈谈html转义字符如何通过代码识别,偶尔会在数据中看到诸如#3 - phpStudy...
  6. maven 加入第三方库_添加第三方库到Maven资源库
  7. ARM汇编学习-工具篇
  8. HDU1878 欧拉回路【并查集】
  9. List遍历的三种方式
  10. 数据库生成数据字典工具(PDMREAD)图解
  11. GBaseStudio连接操作GBase数据库
  12. Windows实现内外网同时使用
  13. 小米红米手机绕过内测申请,“偷渡”升级到开发版(内测版)详细教程,告别刷分和等待!
  14. 龙卷风收音机android安卓版,龙卷风收音机
  15. 设计稳定的COT转换器以实现所需的负载和线路调节
  16. 嵌入式软件工程师学习路线图
  17. iOS从零开始学习socket编程——HTTP1.0服务器端
  18. 三种LCA算法(一):Doubly算法(倍增算法)
  19. 养猫有哪些坏处哪些好处呢?
  20. python 的 int() 函数

热门文章

  1. JAVA面试题之经典题型
  2. 02-03 Python json格式转化
  3. python02_python常用数据类型字符串
  4. python创建矩阵_Python创建二维数组的正确姿势
  5. stats | 广义线性模型(二)——泊松回归
  6. spring mysql中文乱码问题_解决Spring下MySQL出现乱码的问题
  7. 为什么学习前端的人越来越多?
  8. 初始JavaScript,世界上最流行的语言之一!
  9. 最全HTML与CSS基础总结,不进来看看吗?
  10. vscode 插件导出_VScode插件推荐