python第十天
函数
1.函数:完成特定功能的代码块,作为一个整体,对其进行特定的命名,该名字就代表函数
在现实中,很多问题要通过一些工具进行处理==>可以将工具提前生产出来,并命名==>通过名字就可以找到工具==>使用工具来解决问题
2. 函数的优点:
1.避免代码的冗余
2.让程序代码结构更加清晰
3.让代码具有复用性,便于维护
3.函数四部分:
1.函数名:使用该函数的依据。
2.函数体:完成特定功能的代码块
3.返回值:功能完成的反馈结果
4.参数:完成功能需要的条件信息
定义函数的语法:通过def关键字来定义: (例)
def get_water(water,money):
print('收到你的%d元钱'% money)
print('给你需要的%s饮料'% water)
return '冰红茶'
a = get_water('冰红茶',10) # 将函数执行的结果返回给 a,然后将代码块执行出来。
print(a) # 此处打印的是return返回的结果,与代码块无关 -->‘冰红茶’
函数的使用:
使用函数:
1.根据需求定义函数
2.通过函数名找到函数所在的位置(内存地址)
3.函数名() 执行函数地址中存放存放的代码块。。。---函数在定义时需要外界的参数,就要在调用时传入对应的参数
4.函数执行完一定会有返还结果,通过return 关键字将结果返还给外界 ---外界需要知道执行结果,通过return 关键字将结果返回给外界
**** 注意:函数需要先定义之后才能使用
1.1.函数的四部分都可以都可以根据用户需求的变化而变化
def get_water(water,money):
print('收到你的%d元钱'% money)
print('给你需要的%s饮料'% water)
return water
1.2.需要使用函数,就调用一次
a = get_water('冰红茶',10) # 将函数执行的结果返回给 a,然后将代码块执行出来。
print(a) # 此处是返还的指定 water 也就是 --> ‘冰红茶’
1.3.如果又有需求,再调用一次,代码可以重复使用,函数只有一个,代码结构清晰而且不冗余
b = get_water('王老吉',88) # 可以直接重复使用这个函数
print(b) # 返回结果 ‘王老吉’
函数的分类
1.根据函数整体的分类
1.空函数:pass来填充函数体-----优先声明函数名,暂时不太明确函数体该怎么写(但是编程中就存在一些没有函数体的函数)在开发初期,可以将所有功能提前列出来,用pass占位,后期再去填充功能体
def login():pass
3.非空函数:有函数体的函数
def fn2()
print('此处写入函数体') # 此处为写入的函数体
2.根据函数参数分类:
1.无参函数:
def add():
print('功能体不需要外界的参数')
n1 = input('账号:')
n2 = input('密码:')
print(n1 + n2)
add() # 直接调用。
2.有参函数
def add_two(n1,n2):
print('功能体此需要外界的参数')
print(n1+n2) # 此处是函数块的运算
add_two(10,20) # 需要外界写入明确的值来让函数计算
3.根据函数返回值分类:所有的函数都有返回值
1.不明确返回值
def low_two(n1,n2):
# 外界不需要知道内部的执行结果
print(n1 - n2)
low_two(100,10) # 没有明确返回值
2.明确返回值
def low_two(n1,n2):
print(n1 - n2)
res = low_two(100,20) #此处有明确的返回值
print(res)
函数的返回值
****重点:函数名()
1.拿到函数地址-->2. 必须加()来执行函数体 --> 3 .得到函数的执行结果
*****重点:返回值的功能
1.结束函数 --> 2 . 将函数的内部数据返回给外部
2.应用场景
1.不明确return关键词的函数:是指系统在函数的最末尾自动添加了return,而返回的值是None
def fn1():
print('普通的函数执行')
res = fn1() # 一般不需要对这样的函数进行执行接受执行结果
print(res)
2.明确return关键词的函数:为了结束函数而return
def print_msg():
while True:
msg = input('mssag:')
if msg == 'Q':
# break
return # 在特定的位置需要直接结束函数,但是不需要告诉外界某个结果,使用空return处理
print(msg)
# print(msg) # 在break下才能被执行,在return下不能被执行
res = print_msg()
print(res)
3.有明确的返回值需求的函数:
1.python中的函数在本质上只能返回一个值
2.值跟在return关键词后面
3.可以通过语法上返回多个值,值之间用逗号隔开,但是本质上返回装有多个值的元祖。
1.一个值:
def get_num():
num = input('num:')
return num # 只返回一个值
print(get_num())
2.多个值:
def get_two_num():
n1 = input('输入:')
n2 = input('输出:')
return (n1,n2) # 可以返回多个值
print(get_two_num())
num1,num2 = get_two_num() # python的return支持多个值返回的语法原因是python中有解压赋值
print(num1,num2)
python第十天的更多相关文章
- 初学 Python(十五)——装饰器
初学 Python(十五)--装饰器 初学 Python,主要整理一些学习到的知识点,这次是生成器. #-*- coding:utf-8 -*- import functools def curren ...
- 初学 Python(十四)——生成器
初学 Python(十四)--生成器 初学 Python,主要整理一些学习到的知识点,这次是生成器. # -*- coding:utf-8 -*- ''''' 生成式的作用: 减少内存占有,不用一次性 ...
- 初学 Python(十二)——高阶函数
初学 Python(十二)--高阶函数 初学 Python,主要整理一些学习到的知识点,这次是高阶函数. #-*- coding:utf-8 -*- ''''' 话说高阶函数: 能用函数作为参数的函数 ...
- 初学Python(十)——列表生成式
初学Python(十)--列表生成式 初学Python,主要整理一些学习到的知识点,这次是列表生成式. # -*- coding:utf-8 -*- ''''' 列表生成式 ''' #一行代码表达所有 ...
- Python第二十四天 binascii模块
Python第二十四天 binascii模块 binascii用来进行进制和字符串之间的转换 import binascii s = 'abcde' h = binascii.b2a_hex(s) # ...
- Python第二十六天 python装饰器
Python第二十六天 python装饰器 装饰器Python 2.4 开始提供了装饰器( decorator ),装饰器作为修改函数的一种便捷方式,为工程师编写程序提供了便利性和灵活性装饰器本质上就 ...
- Python第十五天 datetime模块 time模块 thread模块 threading模块 Queue队列模块 multiprocessing模块 paramiko模块 fabric模块
Python第十五天 datetime模块 time模块 thread模块 threading模块 Queue队列模块 multiprocessing模块 paramiko模块 fab ...
- Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式
Python第十四天 序列化 pickle模块 cPickle模块 JSON模块 API的两种格式 目录 Pycharm使用技巧(转载) Python第一天 安装 shell 文件 Py ...
- Python第十天 print >> f,和fd.write()的区别 stdout的buffer 标准输入 标准输出 从控制台重定向到文件 标准错误 重定向 输出流和输入流 捕获sys.exit()调用 optparse argparse
Python第十天 print >> f,和fd.write()的区别 stdout的buffer 标准输入 标准输出 从控制台重定向到文件 标准错误 重定向 输出流和 ...
- Python第十课学习
Python第十课学习 www.cnblogs.com/yuanchenqi/articles/5828233.html 函数: 1 减少代码的重复 2 更易扩展,弹性更强:便于日后文件功能的修改 3 ...
随机推荐
- kali linux 2019.1 替换burpsuite pro 1.7.37
下面全部实操: 先切换JDK版本为1.8.执行 update-alternatives --config java 然后会显示多个jdk版本,1.8选3 输入java –version会显示jdk为1 ...
- javascript面向对象习题答案
第二章 1.如果我们在控制台中执行下列语句,结果分别是什么?为什么? var a; typeof a; undefined > var s = '1s'; s++; NaN > !!&qu ...
- google zxing android扫描优化&解析
这里先给出zxing包的源码地址 zip包:https://codeload.github.com/zxing/zxing/zip/master Github:https://github.com/z ...
- 【English】十三、英语中的连词有哪些,都有什么作用
一.什么是连词 参考:https://m.hujiang.com/en_cixing/yylc/ 连词是一种虚词,用于连接单词.短语.从句或句子,在句子中不单独用作句子成分. 连词按其性质可分为并列连 ...
- Socket 通讯原理
Socket是什么呢? Socket是应用层与TCP/IP协议族通信的中间软件抽象层,它是一组接口.在设计模式中,Socket其实就是一个门面模式,它把复杂的TCP/IP协议族隐藏在Socket接口后 ...
- C#-反射reflection
目录 简介 引入 1.新建类库 2. 类库的使用 3.反射 反射实例1 反射实例2 反射实例3 C# shanzm 简介 反射(reflection)是什么? 在<精通C#>中是这么说的& ...
- 自定义react数据验证组件
我们在做前端表单提交时,经常会遇到要对表单中的数据进行校验的问题.如果用户提交的数据不合法,例如格式不正确.非数字类型.超过最大长度.是否必填项.最大值和最小值等等,我们需要在相应的地方给出提示信息. ...
- 003_python中key为中文的处理
由于统计域名资产信息时,部门名称是中文的,但是还需要用这个部门名称进行字符的匹配运算,但不进行转换处理的话,它会报以下的错误: 解决方法如下: # -*- coding: utf-8 -*- all_ ...
- CodeSmith 一、连接Mysql
下载了codesmith 8,连接Mysql却提示“找不到请求的 .Net Framework Data Provider". 1,下载MySql.Data.dll:https://dev. ...
- Fuck me
know how to deal with \(\sum_i\binom{n}{i}a^i\)??