函数

一。定义  def  关键字  函数名():

      函数体

函数 ---- 封装#def 关键字
# #定义后的函数就像变量 不调用是不执行的
# #函数名() ==函数的调用
def code():
print('code a new!')
code()
# 局部变量
函数的调用:
  函数名+()调用函数的时候不在缩进内,必须顶行写
def hanshu():
  hanshu...
hanshu()或者
if True:
  hanshu()

二。执行

#函数的执行过程
def make(): #第一步 之后没了
print(1)
make # 内存空间 当➕ ()时执行
print(make)
make()
print(make())# 打印函数为空
#定义——调用——函数体的代码

三。函数的返回值

#return 的作用:
#1.没有时 返回 None return 没值时, 返回 None
#2.return 有值时,返回
#3.传一个内容 则本身 传多个是 一个元组
#4.下面的内容不执行
#5.执行到此 函数结束
def back():
print('f')
return 'a','b'    # 下面代码不执行, break 且结束了这个函数
print('能打印吗?')
return 1
ret = back() # return 多个 只有第一个
print(ret) #('a', 'b') 多个的话为元组 返回值 不写内容返回None 不写return 也是None
1.没有返回值      写了return 没有返回值
都默认返回None
2,一个返回值,返回本身
多个返回值,返回的是一个元组
3,return 下面的代码不执行,并且结束这个函数(if缩进里面不这样,同上)
# 返回值
def make():
print('')
return '它'*2
return 2*45print(id(ret),id(make()))#地址一样 就是同样的print(ret)

    是赋值?

ret =  make()  因为他俩一样
print(ret) = print(make())
make() 函数执行
ret 函数执行 一样的

四。函数的参数  形参和实参


#函数怎么样,必须保证参数都有值 无论是默认值,还是赋值的参数
形参,函数定义的时候
位置参数 a,b 传参的时候一一对应
默认参数 a =1 在定义的时候已经定义好了
实参,函数调用的时候
位置参数 1,2 传参的时候一一对应给形参
关键字参数a = 1 通过形参的名字指定传值
混合:
形参def func(a,b,c,f=1)
实参func(1,2,3,f=2)
传参,将实参返回形参的过程
  #位置参数 > 关键字

补充内容 以后会用到    三元运算符

不确定赋值的内容时, 使用!
a if a>b else b
五。出错总结:
#不对  多元素 没赋值TypeError: make() missing 1 required positional argument: 'c'

#练习

#函数名+()  不管在什么位置都是在执行函数
# print() 到后一个括号才算执行吗?
def make():
print(1)
print(2)
print(3)
print(make(),make()) # == make() make() print(make(),make())
def make(char,addr,alpa): #形参 形式上的参数 char =??
print(f'{char}')
print(char)
print(addr)
print('%s'%char)
make('word',[],'aaa') # 实参 形给了实 #错误 半个黄括号 有的变量没给
#判断那个数大的程序:
def da(a, b):
if a>b:
pass
else:
a= b
return a
print(da(10,9)) def da(a, b):
if a>b:
return a
else:
return b
print(da(1,1))# 返回 条件成立的结果 不成立的结果
c = a if a>b else b#倒序程序
li = [1,2,3,65]
la = []
def reverses(a):
for i in range(len(a)-1,-1,-1):
la.append(li[i])
return la
print(reverses(li)) li = [1,2,2,5,3,65]
def func(a):
print(a[::-1])
func(li)
#对
# def make(a,b,d, c=1):
#不对
# def make(a, b, c=1,d):#SyntaxErr
#不对 多元素 没赋值TypeError: make() missing 1 required positional argument: 'c'
#循环输入函数 程序
def fuzhi(name,age,sex ='男' ):
print(name,age,sex)
while 1:
life_list = input('name,age,sex').split(',')
if len(life_list)>2:
a,b,c= life_list
fuzhi(a,b,c)
else:
a,b = life_list
fuzhi(a,b)
#函数怎么样,必须保证参数都有值 无论是默认值,还是赋值的参数 def fun(a,b,c,d=1): #位置+形参 (位置+默认)混合形参
print(a,b,c,d)
fun(1,2,3) #位置参数
fun(1,3,4,d=4) #实参 (位置+关键字) 混合实参 替换了
# fun(d=4, 1, 3, 4) #不对 #位置参数 > 关键字
# open('liu','w','utf-8')# 不对 因为‘utf-8’是 第四个
open('liu','w',encoding='utf-8')#所以
												

python学习 day08 (3月13日)----函数的更多相关文章

  1. Python学习日志9月13日

    昨天的学习日志没有写,乱忙了一整天,政治电脑. 好奇心重,想要给电脑装上传说中LInux操作系统,各种小问题折腾到半夜,今天又折腾到晚上才真正的装上系统. 可是装上系统后又发现各种的不好用.虽然界面比 ...

  2. python学习 day09 (3月14日)----函数

    一.函数的进阶 1.1 动态参数 1.2* ** 1.3*args , **kwargs 1.4 函数的注释 1.5名称空间 1.6函数的嵌套全局变量 : 贴边写的局部变量 : 不是贴边写的. ''' ...

  3. Python学习日志9月17日 一周总结

    周一,9月11日 这天写的是过去一周的周总结,我从中找出当天的内容. 这天早晨给电脑折腾装机,早晨基本上没有学习,休息了一个早晨. 下午写的上周总结,完事做mooc爬虫课的作业,<Think P ...

  4. Python 学习日志9月20日

    9月20日 周三 多大年龄了,还活得像个小孩.——急什么,人生又不长. 你习惯了思考宇宙星辰,一百年真的不长,一生也就不那么长,许多人的价值观念你也就无法理解.同样,许多人也无法理解你的价值观念,感兴 ...

  5. Python 学习日志9月19日

    9月19日 周二 今天是普通的一天,昨天也是普通的一天,刚才我差点忘记写日志,突然想起来有个事情没做,回来写. 今天早晨学习<Head First HTML and CSS>第十一章节“布 ...

  6. Python 学习日志9月21日

    9月21日 周四 今天是个特殊的日子吗,总感觉9月21这个日子听着怪怪的. 今天早晨看<Head First HTML and CSS>第13章节“表格和更多列表”,内容不多,看完并做了详 ...

  7. python学习 day11 (3月16日)----(生成器内置函数)

    1生成器 1生成器的本质 一定是迭代器(反之不一定(用send(生成器特有方法)验证))2生成器是可以让程序员自己定义的一个迭代器3生成器的好处,节省内存空间4生成器的特性,一次性的,惰性机制,从上往 ...

  8. python学习 day12 (3月18日)----(装饰器内置函数)

    读时间函数: # import time # def func(): # start_time = time.time() # 代码运行之前的时间 # print('这是一个func函数') # ti ...

  9. Python学习日志9月16日

    刚才我差点睡着了,差资料的时候太费神,有些累. 今天早晨学习了<head first HTML and CSS>,今天把昨天没看了的关于字体和颜色的一章节看完了,真长.我详细的做了笔记,并 ...

随机推荐

  1. leetcode 字符串类型题

    1,Vaild Palindrome bool isPalindrome(string& s) { transform(s.begin(), s.end(), s.begin(), tolow ...

  2. 包含min函数的栈(python)

    题目描述 定义栈的数据结构,请在该类型中实现一个能够得到栈中所含最小元素的min函数(时间复杂度应为O(1)). # -*- coding:utf-8 -*- class Solution: #入栈时 ...

  3. Sigma Function (平方数与平方数*2的约数和是奇数)

    Sigma Function https://vjudge.net/contest/288520#problem/D Sigma function is an interesting function ...

  4. @RequestBody使用须知

    -----------------------siwuxie095                                 @RequestBody 使用须知         使用 @Requ ...

  5. 超强、超详细Redis入门教程【转】

    这篇文章主要介绍了超强.超详细Redis入门教程,本文详细介绍了Redis数据库各个方面的知识,需要的朋友可以参考下 [本教程目录] 1.redis是什么2.redis的作者何许人也3.谁在使用red ...

  6. ubuntu系列-安装jdk以及eclipse(for C++)

    1.安装jdk eclipse是使用java语言开发的,一个java应用程序的运行要在java虚拟机下.在没有安装jdk的前提下,即使在ubuntu上安装了eclipse也不能使用. (1)首先在官网 ...

  7. js中json知识点

    首先,json是一种数据格式,而不能说是一种对象(object).这一点是非常重要的. 起源是不同的语言中数据对象的形式是不一样的,我们为了在不同的语言中传递数据,发明了一种json格式用于消除这种差 ...

  8. 43-将javaweb项目部署到Linux服务器

    这是第二次弄了,感觉由于上次积累了点资源,这次要少走很多弯路了,再次记录下来吧. 第一次的记录:将本地的javaweb项目部署到Linux服务器的一般操作 1. 在Linux上建立数据库,我是将本地的 ...

  9. 14.Mysql事务控制和锁定

    14.事务控制和锁定存储引擎和锁: MyISAM和MEMORY存储引擎的表支持表级锁: BDB存储引擎的表支持页级锁: InnoDB存储引擎的表支持行级锁.默认情况下,表锁和行锁都是根据执行的语句自动 ...

  10. 4K - 找新朋友

    新年快到了,“猪头帮协会”准备搞一个聚会,已经知道现有会员N人,把会员从1到N编号,其中会长的号码是N号,凡是和会长是老朋友的,那么该会员的号码肯定和N有大于1的公约数,否则都是新朋友,现在会长想知道 ...