1、函数的作用:封装代码、大量的减少了重复的代码。

2、全局空间:顶行写的就是全局空间。

图解 :

3、函数的定义:

def 是一个关键字、申明要定义一个函数

my_len 函数的名字、遵循变量命名的规则

()固定结构、用来传参

:表示语句结束

缩进

函数体(缩进体)

4、函数定义结构:

def 函数名():

  函数体

5、函数的调用:

函数名+()

函数被调用后、函数体中开辟的空间会自动销毁。

6、返回值:

return 能够终止函数,return下方的代码不执行

return 能够返回任意多个数据类型(python中所有对象)、以元组的形式接受

函数体中不写return默认返回None、或者写了return不写值返回的也是None

return 将返回值返回给调用者

7、拆包、解包、平行赋值:

def func():
a = 10
b = 20
return a,b
a,b = func()
print(a,b)
8、函数中写for、for里面写了return、终止的是函数
9、函数运行图解:

10、形参、实参、传参。

在定义函数的阶段就是形参

在调用函数的阶段就是实参

将实参传递给形参的过程就是传参

传参的时候相当于在当前函数体中进行了赋值操作

可以单独使用位置参数、也可以单独使用默认参数、也可以混合使用

11、位置参数:

位置传参:必须一一对应

def yue(app,girl,age,addr):
print("掏出手机")
print(f"打开{app}")
print(f"找一位{girl},要求年龄:{age},地区:{addr}的人")
print("聊一聊")
print("约一约")
yue("微信","女孩",18,"乌克兰")
12、参数优先级:位置参数 > 默认参数
13、默认参数:
可以不传参、可以传参、传参就是把默认的值覆盖
def userinfo(name,age,hobby,sex = "男"):
print(f"姓名:{name} 年龄:{age} 性别:{sex} 爱好:{hobby}")
userinfo("岳新力",23,"开车")
14、关键字传参:
指名道姓的方式进行传参
def func(a,b,c=1,d=2):
print(a,b,c,d)
func(1,2,c=4)
作业题:
# 1、写函数,检查获取传入列表或元组对象的所有奇数位索引对应的元素,并将其作为新列表返回给调用者
def func(arg):
lst = []
lst.append(arg[1::2])
return lst
li = [11,22,33,44,55,66,77]
print(func(li))
# 2、写函数,判断用户传入的对象(字符串、列表、元组)长度是否大于5
def func(arg):
if len(arg) > 5:
print("大于")
else:
print("不大于")
li = [11,22,33,44,55,66,77]
func(li)
# 3、写函数,检查传入列表的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者
def func(arg):
lst = []
if len(arg) > 2:
lst.append(arg)
return lst[0][0:2]
li = [11,22,33,44,55,66,77]
print(func(li))
#4、写函数,计算传入函数的字符串中,[数字]、[字母和中文]以及 [其他]的个数,并返回结果
def func():
num_sum = 0
alpha_num = 0
other_num = 0
content = input("请输入字符串:")
for i in content:
if i.isdecimal():
num_sum += 1
elif i.isalpha():
alpha_num += 1
else:
other_num += 1
return f"数字:{num_sum} 中文和字母:{alpha_num} 其他{other_num}"
print(func())
#5、写函数,接收两个数字参数,返回比较大的那个数字
print(max(1,10))
#6、写函数,检查传入字典的每一个value的长度,如果大于2,那么仅保留前两个长度的内容,并将新内容返回给调用者
#dic = {"k1": "v1v1", "k2": [11,22,33,44]}
# 字典中的value只能是字符串或列表
dic = {"k1":"v1v1","k2":[11,22,33,44]}
def func(dic1):
for i in dic1:
if len(dic1[i]) > 2:
dic1[i] = dic1[i][:2]
return dic1
print(func(dic))
#7、写函数,此函数只接收一个参数且此参数必须是列表数据类型,此函数完成的功能是返回给调用者一个字典,此字典的键值对为此列表的索引及对应的元素。例如传入的列表为:[11,22,33] 返回的字典为 {0:11,1:22,2:33}
lst = [11,22,33]
dic = {}
def func(lst):
for k,v in enumerate(lst):
dic[k] = v
func(lst)
print(dic)
#8、写函数,函数接收四个参数分别是:姓名,性别,年龄,学历。用户通过输入这四个内容,然后将这四个内容传入到函数中,此函数接收到这四个内容,将内容追加到一个student_msg文件中
f = open("student_msg","a",encoding="utf-8")
def userinfo(name,sex,age,edu):
f.write(f"姓名:{name} 性别:{sex} 年龄:{age} 学历:{edu}\n")
userinfo(input("name:"),input("sex:"),input("age:"),input("edu"))
#9、对第9题升级:支持用户持续输入,Q或者q退出,性别默认为男,如果遇到女学生,则把性别输入女
f = open("student_msg","a",encoding="utf-8")
def userinfo(name,age,edu,sex = "男"):
f.write(f"姓名:{name} 性别:{sex} 年龄:{age} 学历:{edu}\n")
while True:
a = input("name:")
b = input("sex:")
c = input("age:")
d = input("edu:")
if a.upper() == "Q":
break
if b == "女":
userinfo(a,c,d,b)
else:
userinfo(a,c,d)
#10、写函数,用户传入修改的文件名,与要修改的内容,执行函数,完成整个文件的批量修改操作(选做题)
def file_change(old_file_name,new_file_name,old_centent,new_centent):
with open(old_file_name,"r",encoding="utf-8") as f,\
open(new_file_name,"a",encoding="utf-8") as f1:
for i in f:
f1.write(i.replace(old_centent,new_centent))
import os
os.rename(old_file_name,old_file_name + ".bak")
os.rename(new_file_name,old_file_name)
file_change("student_msg","userinfo","18","81")

python27期day09:函数的初始、函数的定义、函数的调用、函数的返回值、函数的参数、作业题。的更多相关文章

  1. c++中带返回值函数没写return能通过编译但运行时会出现奇怪问题

    c++中带返回值函数没写return能通过编译但运行时会出现奇怪问题 例如: string myFunc(){ theLogics(); } 发现调用: myFunc(); 崩溃. 但调用: cout ...

  2. go语言基础之有参有返回值函数的使用

    1.有参有返回值函数的使用 示例1: package main //必须 import "fmt" //go官方推荐写法 func MaxAndMin(a, b int) (max ...

  3. 获得函数返回值类型、参数tuple、成员函数指针中的对象类型

    //function_traits.h,获得函数返回值类型.参数tuple.成员函数指针中的对象类型 //参考https://github.com/qicosmos/cosmos/blob/maste ...

  4. c语言进阶4-有返回值函数

    一.         从函数返回 从函数返回就是返回语句的第一个主要用途.在程序中,有两种方法可以终止函数的执行,并返回到调用函数的位置.第一种方法是在函数体中,从第一句一直执行到最后一句,当所有语句 ...

  5. Python函数01/函数的初识/函数的定义/函数调用/函数的返回值/函数的参数

    Python函数01/函数的初识/函数的定义/函数调用/函数的返回值/函数的参数 内容大纲 1.函数的初识 2.函数的定义 3.函数的调用 4.函数的返回值 5.函数的参数 1.函数初识 # def ...

  6. python中的函数(定义、多个返回值、默认参数、参数组)

    函数定义 在python中函数的定义以及调用如下代码所示: def test(x): y = x+1 return y result = test(2) print(result) 多个返回值的情况 ...

  7. 函数的调用 and 打印返回值 ret= mai() print(ret)

    def mai(): # mai 函数名 (yan) 形式参数 print("老板,给我一包中华") return"给你" # 返回值-- 给你ret = ma ...

  8. C++获取Lua全局变量和执行Lua多参数多返回值函数

    C++代码: // LuaAndC.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #i ...

  9. oracle pipelined返回值函数 针对数据汇总统计 返回结果集方法

    近期需要一个汇总统计,由于数据太多,数据量太大所以在java程序中实现比较困难.若用后台程序统计,数据不能保证实时,同时实现周期比较长.顾使用函数返回结果集的方式,在不增加临时表的情况下实时获取数据. ...

随机推荐

  1. 《为什么说 Prometheus 是足以取代 Zabbix 的监控神器?》

    为什么说 Prometheus 是足以取代 Zabbix 的监控神器?   Kuberneteschina 致力于提供最权威的 Kubernetes 技术.案例与Meetup! ​关注他 12 人赞同 ...

  2. JPA简介

    JPA的学习 JPA是Java Persistence API的简称,中文名Java持久层API.是Java EE5.0平台中Sun为了统一持久层ORM框架而制定的一套标准,注意是一套标准,而不是具体 ...

  3. django 报错Reverse for 'detail' with keyword arguments '{'pk': '2'}' not found. 1 pattern(s) tried: ['$post/(?P<pk>[0-9]+)/$']

    Django报错:Reverse for 'detail' with keyword arguments '{'pk': '2'}' not found. 1 pattern(s) tried: [' ...

  4. 在线web软件

    编程 Compiler Explorer SharpLab 着色器 shadertoy 腾讯文档 word  excel  ppt ... 思维导图 MindMaster ProcessOn 流程图. ...

  5. C# 位运算基本大全

    1.原码 反码 补码 只用补码进行计算,且没有减法.只有用补码进行加法运算,具体原因,详见:http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/C ...

  6. 理解CMS GC日志

    本文翻译自:https://blogs.oracle.com/poonam/entry/understanding_cms_gc_logs 准备工作 JVM的GC日志的主要参数包括如下几个:-XX:+ ...

  7. LINQ之 Join 与 GroupJoin

    声明:本文为www.cnc6.cn原创,转载时请注明出处,谢谢! 一.编写Person与City类,如下: class Person { public int CityID { set; get; } ...

  8. 一致性hash应用-分表扩容

    之前给项目里的一个5000多万的表做了水平分表,暂时容量还够,用的根据id一致性hash分了32个表,每个表大概百来万数据.虽然还不需要扩容,但是准备写个demo后续如果需要扩容可以参考 hash方法 ...

  9. laravel 广播细节讲解

    1.应用场景 1.通知(Notification) 或 信号(Signal) 2.通知是最简单的示例,也最经常用到.信号也可看作是通知的一种展现形式,只不过信号没有UI而已. 3.Activity S ...

  10. Java性能 -- 线程上下文切换

    线程数量 在并发程序中,并不是启动更多的线程就能让程序最大限度地并发执行 线程数量设置太小,会导致程序不能充分地利用系统资源 线程数量设置太大,可能带来资源的过度竞争,导致上下文切换,带来的额外的系统 ...