python 之路之函数01
一 函数
1 那么要想学习函数,我们首先应该知道函数是什么?
我们这里所说的函数与数学中的函数是不同的概念,在这里我们可以把函数看成我们写代码过程中需要用到的工具。
2 那么这个‘工具’有什么作用呢?
1, 首先会让我们的代码变的结构变得清晰,可读性强。
2 ,我们不需要再进行大量的重复代码编写,避免代码过长,导致冗余,可读性变差。
3 ,修改代码变得简单,只需要找出需要修改的地方,修改之后其他地方有重复功能的代码不需要重复的修改。
二 函数的分类
1、内置函数
为了方便我们的开发,针对一些简单的功能,python解释器已经为我们定义好了的函数即内置函数。对于内置函数,我们可以拿来就用而无需事先定义,如len(),sum(),max() 2、自定义函数
很明显内置函数所能提供的功能是有限的,这就需要我们自己根据需求,事先定制好我们自己的函数来实现某种功能,以后,在遇到应用场景时,调用自定义的函数即可。例如
三 函数的定义
首先定义函数有一个固定的形式:
定义函数的形式:
def 函数名(参数1,参数2,参数3,...):
'''注释:表达函数体的功能'''
函数体#实现函数具体功能的部分
return 返回的值 #我们在定义函数名是,要尽可能的让函数名要能反映其意义
四 函数的使用原则
先定义后使用。
我们有时候说:函数即“变量”,那么“变量”必须先定义后引用。未定义而直接引用函数,就相当于在引用一个不存在的变量名,必定会报错。
#
def foo():
print('from foo')
bar()
foo() #报错
在这个程序里面我们没有定义bar()这个函数,所以在使用的时候就会出现报错 #
def bar():
print('from bar')
def foo():
print('from foo')
bar()
foo() #正常
在这个过程中我们在使用bar()与foo()之前对他们俩都进行了定义。 #
def foo():
print('from foo')
bar() def bar():
print('from bar')
foo()
同样的3也不会报错,那么这是为什么呢?因为在在函数的调用中,在定义阶段是不执行代码的,只检测程序中的语法是否正确。 #结论:函数的使用,必须遵循原则:先定义,后调用
#我们在使用函数时,一定要明确地区分定义阶段:在定义阶段只检测语法正确与否和调用阶段才会执行代码。
五 定义函数的三种形式
1 有参函数:
对于有参函数,即在调用函数段运行过程,需要用户输入输入参数的函数,定义时有参,那么就是有参函数。
def max(x,y)
if x>y:
return x
else:
return y
这段子代码在运行时就需要用户输入需要比较的两个值。
2 无参函数:
无参函数,即在调用函数程序运行过程不需要对其输入参数,定义时无参,那么就是无参函数。
x=
y=
def max(,)
if x>y:
return x
else:
return y
对于这段代码用户就不需要输入参数,应为定义时已经指定了参数。
3 空函数:
那么对于空函数来说就比较特殊了,他的作用主要是起到一个占位作用,先预留一个位置,这个地方的函数子代码为空,可以不执行任何功能,需要的时候再修改。
def func()
pass#函数的子代码为空
六 调用函数的三种形式
1 直接变量名加():
比如:len(),max()等
2 表达式的方式,因为函数的运行结果一般为一个值,所以我们可以对这个值再进行运算
比如:max(1,max(2,3))
3 将一个函数的返回值当作另一个函数的参数。
比如:len(max(x,y))
七 函数返回值
那么什么是返回值:
返回值就是函数体代码运行完毕后需要有一个结果返回给使用者,这个值就是返回值return。
没有return则会返回none 返回值后跟一个值,那么返回值就是这个值本身。 return后可以跟一个值也可以跟多个值,跟多个值时,用逗号分隔开,返回一个元组。
总结:1 return返回值,没有类型限制。
2 函数内可以写多个return,return是函数的结束标志位,执行第一个return后程序结束,return后面的值作为本次调用的返回值。
作业: 函数
# 1、写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成批了修改操作
# def modify(file_name,old,new ):
# import os
# with open(file_name,'r',encoding='utf-8')as f1:
# with open('w.txt','w',encoding='utf-8')as f2:
# for line in f1:
# if old in line:
# line.replace(old,new)
# f2.write(line)
# os.remove(file_name)
# os.rename('w.txt',file_name)
# modify('a.txt','hh','HH')
# 2、写函数,计算传入字符串中【数字】、【字母】、【空格] 以及 【其他】的个数
#
# def check(msg):
# res={
# 'num':,
# 'string':,
# 'space':,
# 'other':,
# }
# for s in msg:
# if s.isdigit():
# res['num']+=
# elif s.isalpha():
# res['string']+=
# elif s.isspace():
# res['space']+=
# else :
# res['other']+=
#
# return res
# res=check('hdffhk123kdf;fjj,sd ')
# print(res)
# 3、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5。
#
# def chang(name):
# if len(name)>:
# return 'yes'
# else:
# return 'no'
#
# res=chang((,,,,,))
# print(res)
#
# 4、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
# def list1(list):
# if len(list)>:
# return list[:]
# else:
# return list
#
# res=list1([,])
# print(res)
# 5、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者。
#
# def func(list):
# x=len(list)
# return list[:x:]
# res=func([,,,,,,,,,])
# print(res)
# 6、写函数,检查字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者。
# dic = {"k1": "v1v1", "k2": [11,22,33,44]}
# PS:字典中的value只能是字符串或列表
def func(dic):
d={}
for key in dic:
if len(dic[key])>:
# d=dic[key][:]#为什么这种方式不行呢,因为这种方式会导致d被赋值两次,第一次为v1,第二次d就变成[,],所以最后的返回值就是[,]
d[key]=dic[key][:]
return d#for循环结束之后才执行return res=func({"k1": "v1v1", "k2": [,,,]})
print(res)
python 之路之函数01的更多相关文章
- Python之路 day3 函数定义 *args及**kwargs
#!/usr/bin/env python # -*- coding:utf-8 -*- #Author:ersa import time # def logger(): # time_format ...
- 小白的Python之路 day3 函数
1.函数基本语法及特性 背景提要 现在老板让你写一个监控程序,监控服务器的系统状况,当cpu\memory\disk等指标的使用量超过阀值时即发邮件报警,你掏空了所有的知识量,写出了以下代码 1 2 ...
- python之路——初识函数
阅读目录 为什么要用函数 函数的定义与调用 函数的返回值 函数的参数 本章小结 返回顶部 为什么要用函数 现在python届发生了一个大事件,len方法突然不能直接用了... 然后现在有一个需求,让你 ...
- python之路(九)-函数装饰器
装饰器 某公司的基础业务平台如下: def f1(): print('这是f1业务平台') def f2(): print('这是f2业务平台') def f3(): print('这是f3业务平台' ...
- python之路之函数03
一 首先我们学到函数的嵌套调用与定义:1 函数嵌套 # def f1(): # print(f1)#我们这里如果输入f1那么输出的则是f1这个变量(函数)所在的地址.如果输入一个字符的话那么就直接输出 ...
- python之路--初识函数
一 . 函数 什么是函数 f(x) = x + 1 y = x + 1 # 函数是对功能或者动作的封装 函数的语法 def 函数名(): 函数体 调用: 函数名() def play(): print ...
- python之路_函数实例及装饰器介绍
一.习题讲解 1.写函数,返回一个扑克牌列表,里面有52项,每一项是一个元组.例如:[(‘红心’,2), (‘草花’,2), …(‘黑桃,‘A’)] def cards(): num=[] for v ...
- python之路之函数02
一 函数的参数: 我们把函数的参数分为形式参数和实际参数,简称形参和实参. 形参:在定义函数时,函数名括号内定义的参数. 实参:在调用函数时,函数名括号内需要用户传入的值. 注意: 实参值(相当于变 ...
- Python之路----生成器函数进阶
def generator(): print(123) yield 1 print(456) yield 2 g = generator() ret = g.__next__() print('*** ...
随机推荐
- 京东Java面试题(一)
1.说一下java类集2.字符串哈西相等,equals相等吗?反过来呢?3.Spring的工作原理,控制控制反转是怎么实现的,自己写过滤器过滤编码怎么实现4.框架的源码有没有看过5.动态代理是怎么实现 ...
- 如何使用Java读写系统属性?
如何使用Java读写系统属性? 读: Properties props = System.getProperties(); Enumeration prop_names = props.propert ...
- 查看camera设备-linux
前言 本文介绍如何在linux平台查看是否有camera外设. 操作过程 1.打开shell,输入以下命令: ls /dev/video* 即可查看是否有camera外设: 2.如果确实连接了came ...
- Mac下百度网盘破解
Mac版百度网盘破解 先下载正版的百度网盘 打开终端输入命令 cd ~/Downloads && git clone https://github.com/CodeTips/Baid ...
- PAT天梯:L1-019. 谁先倒
L1-019. 谁先倒 时间限制 400 ms 内存限制 65536 kB 代码长度限制 8000 B 判题程序 Standard 作者 陈越 划拳是古老中国酒文化的一个有趣的组成部分.酒桌上两人划拳 ...
- CSS 属性用法备忘录
☆ margin: 0; padding: 0; :{ 顺时针 margin-top: 0px; margin-right: 0px; margin-bottom: 0px; margin-left: ...
- oracle C# 访问
使用oracle的odp.net 进行oracle数据库的访问对于进行oracle数据库的开发来说是比较方便的,使用的方式与ADO.net 是一致的. 一下为使用的测试 1. 安装必要的oracle ...
- SimpleSocket
项目地址 : https://github.com/kelin-xycs/SimpleSocket SimpleSocket 一个 用 C# 调用 Win Socket 2 的 程序 , 对 Win ...
- position:relative与position:absolute 区别
relative:相对于它本身原来的位置进行偏移(配合 right left bottom top属性进行偏移) 他偏移会空出来一些空白 其余的html元素不会填充这些空白 absolute:相对于同 ...
- 查看Linq to Sql生成的sql语句(转)
查看Linq to Sql生成的sql语句 在控制台项目中,比较简单,直接db.Log = Console.Out;就OK了 但是在其他项目中,需要处理如下: StreamWriter sw = ...