函数基础
函数概念
为什么用函数
什么是函数
定义函数
调用函数
返回值详解
上节回顾
文件处理
修改文件
1、读取要修改文件内容 read可能导致内存溢出
赋值给变量
修改
将修改后的内容重新写入文件
2、读取要修改的内容
with open(user.txt,encoding='utf-8')as f1
with open('temp.txt','a',encoding='utf-8')as f1
for line in f:
line=line.strip('\n)
li=line.split(':')
if li[0]=='abc'
name=li[0]
pwd='123456'
new_line=':'.join([name,pwd])+'\n'
f1.write(new_line)
else:
line=line+'\n'
f2.write(line)
import os
os.remove('user.txt')
os.rename('temp.txt','user.txt')
复制文件

从原文件读取,写入到目标文件
sys.argv
常用操作
f.flush 立即刷到硬盘(由于Windows)写入硬盘会有自动缓存的特点,不会立马显示
closed 是否关闭
encoding 获取编码
name 文件路径
模式
文本模式 T是默认的只能处理文本文件
字节模式 b使用与任何文件类型

为什么要学函数
面条版程序存在的问题
1、结构混乱
2、有冗余代码
3、后期维护性差,拓展性差
函数是什么:
函数是实现某一功能代码的集合体
相当于生活中具备某个功能的工具,例如:锤子
要使用工具,必须先制造工具,才能使用
同理在程序中要先使用函数,则必须先定义函数,

如何定义函数:
定义函数的语法
def 函数的名字(参数,....参数n):
'''
文档注释
'''

代码一
代码二
代码n
return 值
def :定义的关键字
函数的名字:用来查找函数,用来查找函数和执行函数
python的命名规范
不能是数字开头
不能是关键字
只能由数字,字母 下划线组成
要见名知意,这一点很重要
用下划线链接多个单词

文档注释:
注释:是给程序员看的备注信息
文档注释:是用于描述函数的具体细节
代码块:
具体实现功能的代码,也称为函数体
return: 用于返回值给使用者

return 参数和注释都是可选的

def print_hello _world():
print('hello world')

def print_msg():
'''
打印五次hello world
文档注释可以被help函数提取
’‘’
for i in range(5):
print('hello world))
print(print_msg)
print_msg()#函数名加括号就能触发函数体的执行,称之为调用函数

文档注释:
def test():
'''
这是一个测试函数 里面啥也没有
'''

import 文档注释
print(help(文档注释))

def act():

for i in range(5):
print('hello world')

act()

三,定义函数的三种分类
'''
参数可选 那就可以将函数
分为有参函数和无参函数
无参函数:
当你的函数体执行不需要外界的数据就可以完成功能,就叫无参函数
有参函数:
当你的函数体需要外界的数据就可以完成功能,就叫无参函数
空函数:如果不包含任何的函数体就叫做空函数
def func():#在程序开发初期有用,可以用于定义出程序的结构
pass #(略过函数体)

func():调用函数是没有意义的
'''
参数是什么:
参与运算的数据
def input_user_info():
name = input('name').strip()
pwd= input('pwd').strip()
print(name,pwd)

input_user_info()

def print _msg():
for i in range(5):
print(’hello wold)
print _msg()

有参函数:
def print(count,msg)
for in range (count):
print(msg)
print_msg(5,'hello ')

比较两个数谁大:
def max(a,b):#按照顺序赋值:会把10赋值给a=10,b=20:

if a>b:
print('max is ',a)
else:
print('max is ',b)

max(10,20)

空函数:
def avg():
pass

用函数来实现登录功能:

什么样的代码应该定义为函数:
这段代码多次被执行,
这段代码是一个完整的独立的代码

定义阶段和调用阶段发生了什么:
def func():
print('run func')
pass

定义阶段
1申请内存空间,将函数代码存储到内存中
2把内存地址和函数名建立绑定关系
需要强调的是:函数在定义阶段是不会执行函数体代码但是会识别语法

调用阶段:
1、通过函数命找到函数的内存地址
2、加括号触发函数体执行

函数的调用的三种写法:
1,直接调用
def ():
print('func run ')直接调用
func()
2、在表达式中调用
def max(a,b):
if a>b:
return a
else:
return b
print(max(10,20)>100)
print(max(10,20)*100)
3、将函数的返回值作为参数
print(max(max(10,20),30))

函数返回值:
return: 关键字用来返回一个值
在函数定义中是可选的
什么时候该返有回值
函数是工具,是帮你完成某个功能的,要产生一个结果给使用者,例如生活中的榨汁机,执行完成后给使用者一个返回值

什么时候不需要返回值
在调用这个函数时,不需要返回任何结果给调用者

return:
1、一次性返回多个值
def func():
return1,2,3,'abc'
res=func()
print(type(res))
print(res)
对返回值进行解压
a,b,c,d=func()
print(a,b,c,d)
2、返回值为空
不写任何的return 默认返回None
return后不返回任何值
return None
3、一个函数中可以有多个return关键字
函数执行过程中只要遇到return,后续代码都不会执行,函数立马返回
我们可以利用这个特点来结束函数的执行
def func4():
print (1)
return 1
def

def func2():
return
def func3():
return None
def func4():

def show_info(name ,age,sex):
print('''
========info=========
name=%s
age=%s
sex=%S

========end==========

'''(name,age,sex))
show_info((name ,age,sex))

函数 必须先定义 后调用

什么是函数
函数是实现某一功能的,代码集合体
相当于生活中的工具
2、为什么要使用函数:
1、代码冗余
2、结构不清晰,可读性差
3、扩展性差
如何定义函数:
调用函数
函数的返回值

day10 函数的更多相关文章

  1. day10.函数进阶

    函数的命名空间 从python解释器开始执行之后,就在内存中开辟了一个空间,每当遇到一个变量的时候,就把变量名和值之间的对应关系记录下来. 但是当遇到函数定义的时候解释器只是象征性的将函数名读入内存, ...

  2. day10函数作业详解

    1.day10题目 2,写函数,接收n个数字,求这些参数数字的和.(动态传参) 3,读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么? a=10 b=20 def test5(a,b): ...

  3. python全栈学习--day10(函数进阶)

    一,引言 现在我有个问题,函数里面的变量,在函数外面能直接引用么? def func1(): m = 1 print(m) print(m) #这行报的错 报错了:NameError: name 'm ...

  4. day10 函数的定义及函数语法详解

    """ 今日内容: (1)函数的定义及特点 (2)函数的语法及函数的四部分 (3)函数的分类 (4)函数的调用 (5)函数的return详解 一.函数的定义 1.什么是函 ...

  5. DAY10函数

    函数 函数就是可以重复利用的工具 函数可以完成指定代码块,函数就是是存放代码块的容器 函数的有点: 1.避免出现重复冗余的代码 2.让程序代码结构更清晰增加可读性 3 定义函数的语法 1. 函数名:使 ...

  6. Python—day10 函数的参数分类

    一.实参与形参 1.形参:定义函数,在括号内声明的变量名,用来接受外界传来的值 def fn(形参们):                pass def fn(a,b,c):# 形参就是考虑实参的值, ...

  7. python学习day10 函数Ⅱ(参数&作用域)

    函数Ⅱ(参数&作用域) 知识小结: py2与py3的区别 逻辑运算()>not>and>or 字符串翻转切片翻转 is与==区别 git相关 数据类型判断 操作系统:cent ...

  8. day10函数,函数的使用,函数的分类,函数的返回值

    函数 # ***** # 函数:完成 特定 功能的代码块,作为一个整体,对其进行特定的命名,该名字就代表函数 # -- 现实中:很多问题要通过一些工具进行处理 => 可以将工具提前生产出来并命名 ...

  9. python学习Day10 函数的介绍(定义、组成、使用)

    今日学习内容: 1.什么是函数 :函数就是一个含有特定功能的变量,一个解决某问题的工具 函数的定义:通过关键字def + 功能名字():代码体(根据需求撰写代码逻辑) 2.为什么要用函数:可以复用:函 ...

  10. python day10 函数(第二篇)

    2019.4.10 S21 day10笔记总结 一.内容回顾 1.面试题相关: 1.py2和py3的区别 2.运算符的计算 :3 or 9 and 8 3.字符串的反转 4.is和==的区别 5.v1 ...

随机推荐

  1. Flume配置Replicating Channel Selector

    1 官网内容 上面的配置是r1获取到的内容会同时复制到c1 c2 c3 三个channel里面 2 详细配置信息 # Name the components on this agent a1.sour ...

  2. linux C遍历目录下文件

    参考链接: http://blog.sina.com.cn/s/blog_626b7339010161tr.html

  3. zabbix系列 ~ 报警模式

    一 简介:聊聊zabbix的报警方式二 报警方式 邮件,短信,钉钉,微信三 准备    需要预选准备好对应报警方式的脚本四 web端设置  1 设置报警方式 2 设置报警触发器    1 选择报警信息 ...

  4. 最全免费CDN公共库——网站提速

    开源静态文件 CDN 我们的目标是提供这样一个仓库,让它尽可能全面收录优秀的开源库,并免费为之提供 CDN 加速服务,使之有更好的访问速度和稳定的环境.同时,我们也提供开源库源接入的入口,让所有人都可 ...

  5. PF部分代码解读

    // 单个粒子数据结构 typedef struct { // 粒子状态 pf_vector_t pose; // 粒子权重 double weight; } pf_sample_t; // Info ...

  6. 关于Vue的两层for循环

    vue的核心功能是for循环,双层for循环的场景也是比较常见. <script type="text/javascript"> var vm = new Vue({ ...

  7. c++从文件路径获取目录

    场景 c++从文件路径获取目录 实现代码 初始化是不正确的,因为需要转义反斜杠: string filename = "C:\\MyDirectory\\MyFile.bat"; ...

  8. Hash算法【转】

    转自:http://www.cnblogs.com/wangjy/archive/2011/09/08/2171638.html Hash,一般翻译做“散列”,也有直接音译为“哈希”的,就是把任意长度 ...

  9. delphi 的插件机制与自动更新

    delphi 的插件机制与自动更新 : 1.https://download.csdn.net/download/cxp_2008/2226978   参考 2.https://download.cs ...

  10. bootstrap登录界面

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="utf-8&quo ...