python27期day09:函数的初始、函数的定义、函数的调用、函数的返回值、函数的参数、作业题。
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:函数的初始、函数的定义、函数的调用、函数的返回值、函数的参数、作业题。的更多相关文章
- c++中带返回值函数没写return能通过编译但运行时会出现奇怪问题
c++中带返回值函数没写return能通过编译但运行时会出现奇怪问题 例如: string myFunc(){ theLogics(); } 发现调用: myFunc(); 崩溃. 但调用: cout ...
- go语言基础之有参有返回值函数的使用
1.有参有返回值函数的使用 示例1: package main //必须 import "fmt" //go官方推荐写法 func MaxAndMin(a, b int) (max ...
- 获得函数返回值类型、参数tuple、成员函数指针中的对象类型
//function_traits.h,获得函数返回值类型.参数tuple.成员函数指针中的对象类型 //参考https://github.com/qicosmos/cosmos/blob/maste ...
- c语言进阶4-有返回值函数
一. 从函数返回 从函数返回就是返回语句的第一个主要用途.在程序中,有两种方法可以终止函数的执行,并返回到调用函数的位置.第一种方法是在函数体中,从第一句一直执行到最后一句,当所有语句 ...
- Python函数01/函数的初识/函数的定义/函数调用/函数的返回值/函数的参数
Python函数01/函数的初识/函数的定义/函数调用/函数的返回值/函数的参数 内容大纲 1.函数的初识 2.函数的定义 3.函数的调用 4.函数的返回值 5.函数的参数 1.函数初识 # def ...
- python中的函数(定义、多个返回值、默认参数、参数组)
函数定义 在python中函数的定义以及调用如下代码所示: def test(x): y = x+1 return y result = test(2) print(result) 多个返回值的情况 ...
- 函数的调用 and 打印返回值 ret= mai() print(ret)
def mai(): # mai 函数名 (yan) 形式参数 print("老板,给我一包中华") return"给你" # 返回值-- 给你ret = ma ...
- C++获取Lua全局变量和执行Lua多参数多返回值函数
C++代码: // LuaAndC.cpp : 定义控制台应用程序的入口点. // #include "stdafx.h" #include <iostream> #i ...
- oracle pipelined返回值函数 针对数据汇总统计 返回结果集方法
近期需要一个汇总统计,由于数据太多,数据量太大所以在java程序中实现比较困难.若用后台程序统计,数据不能保证实时,同时实现周期比较长.顾使用函数返回结果集的方式,在不增加临时表的情况下实时获取数据. ...
随机推荐
- 剑指Offer-6.旋转数组的最小数字(C++/Java)
题目: 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个非递减排序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3,4,5,1,2}为{1,2,3,4,5}的一个旋转, ...
- vue_05项目配置
目录 vue项目配置: 前端样式结构: settings配置: vue项目路由配置: vue全局js配置: vue全局css配置: 父传子: 父组件 子组件 二.子传父 子组件 父组件 vue项目配置 ...
- Spring Cloud Alibaba Sentinel对Feign的支持
Spring Cloud Alibaba Sentinel 除了对 RestTemplate 做了支持,同样对于 Feign 也做了支持,如果我们要从 Hystrix 切换到 Sentinel 是非常 ...
- MyBatis 构造动态 SQL 语句
以前看过一个本书叫<深入浅出 MFC >,台湾 C++ 大师写的一本书.在该书中写到这样一句话,“勿在浮沙筑高台”,这句话写的的确对啊.编程很多语言虽然相通,但是真正做还是需要认真的学习, ...
- linux jconsole的远程配置--实测可用
工作上,经常要对tomcat的java内存配置.tomcat线程池等进行调(luan)优(gao). jconsole 是一个最基础用到的jdk自带的JVM性能查看工具. 最近进行linux测试. 所 ...
- ScreenToGif——gif动图工具使用说明
前言 最近因回复了博客园的某篇博文并留言求推荐制作gif动图的工具,随后一名热心园友向我推荐了ScreenToGif 不试不知道,一试我就喜欢上了这款动图制作工具(再也不用PS来制作了,虽然我也不会2 ...
- SpringBoot 整合RabbitMQ错误记录
1. 控制台报错:Exception in thread "main" java.io.IOException…… Caused by: com.rabbitmq.client.S ...
- 5分钟上手:本地开发环境启动HTTPS
今天我们访问的所有网站几乎都是受HTTPS保护的.如果你的站点还没有,那你应该使用它.使用HTTPS保护服务器也意味着你不能从不是HTTPS服务器向此服务器发送请求.这给使用本地开发环境的开发人员带来 ...
- 如何在 Knative 中部署 WebSocket 和 gRPC 服务?
作者 | 冬岛 阿里云容器平台工程师 导读:虽然说 Knative 默认就支持 WebSocket 和 gRPC,但在使用中会发现,有时想要把自己的 WebSocket 或 gRPC 部署到 Kna ...
- 关于@Autowired后Spring无法注入的问题
1.对于新手来说,最明显的不过是在applicationContext.xml文件上没有加<context:component-scan base-package="com.xxx&q ...
