day10 函数
函数基础
函数概念
为什么用函数
什么是函数
定义函数
调用函数
返回值详解
上节回顾
文件处理
修改文件
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 函数的更多相关文章
- day10.函数进阶
函数的命名空间 从python解释器开始执行之后,就在内存中开辟了一个空间,每当遇到一个变量的时候,就把变量名和值之间的对应关系记录下来. 但是当遇到函数定义的时候解释器只是象征性的将函数名读入内存, ...
- day10函数作业详解
1.day10题目 2,写函数,接收n个数字,求这些参数数字的和.(动态传参) 3,读代码,回答:代码中,打印出来的值a,b,c分别是什么?为什么? a=10 b=20 def test5(a,b): ...
- python全栈学习--day10(函数进阶)
一,引言 现在我有个问题,函数里面的变量,在函数外面能直接引用么? def func1(): m = 1 print(m) print(m) #这行报的错 报错了:NameError: name 'm ...
- day10 函数的定义及函数语法详解
""" 今日内容: (1)函数的定义及特点 (2)函数的语法及函数的四部分 (3)函数的分类 (4)函数的调用 (5)函数的return详解 一.函数的定义 1.什么是函 ...
- DAY10函数
函数 函数就是可以重复利用的工具 函数可以完成指定代码块,函数就是是存放代码块的容器 函数的有点: 1.避免出现重复冗余的代码 2.让程序代码结构更清晰增加可读性 3 定义函数的语法 1. 函数名:使 ...
- Python—day10 函数的参数分类
一.实参与形参 1.形参:定义函数,在括号内声明的变量名,用来接受外界传来的值 def fn(形参们): pass def fn(a,b,c):# 形参就是考虑实参的值, ...
- python学习day10 函数Ⅱ(参数&作用域)
函数Ⅱ(参数&作用域) 知识小结: py2与py3的区别 逻辑运算()>not>and>or 字符串翻转切片翻转 is与==区别 git相关 数据类型判断 操作系统:cent ...
- day10函数,函数的使用,函数的分类,函数的返回值
函数 # ***** # 函数:完成 特定 功能的代码块,作为一个整体,对其进行特定的命名,该名字就代表函数 # -- 现实中:很多问题要通过一些工具进行处理 => 可以将工具提前生产出来并命名 ...
- python学习Day10 函数的介绍(定义、组成、使用)
今日学习内容: 1.什么是函数 :函数就是一个含有特定功能的变量,一个解决某问题的工具 函数的定义:通过关键字def + 功能名字():代码体(根据需求撰写代码逻辑) 2.为什么要用函数:可以复用:函 ...
- python day10 函数(第二篇)
2019.4.10 S21 day10笔记总结 一.内容回顾 1.面试题相关: 1.py2和py3的区别 2.运算符的计算 :3 or 9 and 8 3.字符串的反转 4.is和==的区别 5.v1 ...
随机推荐
- JDK1.8HashMap源码解读
package java.util; import sun.misc.SharedSecrets; import java.io.IOException; import java.io.Invalid ...
- spring-core 中 asm 包的作用
asm包中主要有以下这些类 其中, AnnotationVisitor类:是一个抽象类,定义在解析注解时会触发的事件,如解析到一个基本值类型的注解.enum值类型的注解.Array值类型的注解.注解值 ...
- Maven 传递依赖冲突解决(了解)
1 传递依赖冲突解决(了解) 传递依赖:A(项目)依赖B,B依赖C(1.1版本),B是A的直接依赖,C就是A的传递依赖 导入依赖D,D依赖C(1.2版本) 1.1 Maven自己调解原则 1.1.1 ...
- java.io.IOException: Server returned HTTP response code: 411 for URL
今日调用一post方式提交的http接口,此接口在测试环境ip调用时无问题,但在生产环境通过域名调用时一直报如下错误: java.io.IOException: Server returned HTT ...
- 【NLP CS224N笔记】汇总
[NLP CS224N笔记]Lecture 1 - Introduction of NLP [NLP CS224N笔记]Lecture 2 - Word Vector Representations: ...
- Angular 创建组件
创建组件 0 命令创建 1 创建组件 定义hello.component.ts组件 在app.module.ts中引用并添加到declarations声明中 在app.component.html中使 ...
- 【转】python包导入细节
[转]python包导入细节 包导入格式 导入模块时除了使用模块名进行导入,还可以使用目录名进行导入.例如,在sys.path路径下,有一个dir1/dir2/mod.py模块,那么在任意位置处都可以 ...
- 利用Linux系统生成随机密码的10种方法【转】
Linux操作系统的一大优点是对于同样一件事情,你可以使用高达数百种方法来实现它.例如,你可以通过数十种方法来生成随机密码.本文将介绍生成随机密码的十种方法. 1. 使用SHA算法来加密日期,并输出结 ...
- Server-side activities have been updated. You need to restart SharePoint Designer to use the updated version of activities
一,环境: SharePoint Online Win10 + SharePoint Designer 2013 错误描述: 使用SPD3013打开SPO站点,然后编辑已有工作流(2013),报错: ...
- Vue-动态修改数组
需求描述: 点击删除时,仅删除当前选中的这个对象. html: <el-card shadow="never" style="position: relative; ...