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程序中实现比较困难.若用后台程序统计,数据不能保证实时,同时实现周期比较长.顾使用函数返回结果集的方式,在不增加临时表的情况下实时获取数据. ...
随机推荐
- SOA案例分析浅谈
SOA是英文 Service-Oriented Architecture 三个首字母单词的缩写,中文译为: 面向服务架构 ( SOA), SOA架构与 B/S . C/S 架构是目前最流行三种 Web ...
- 关于字符串在ie浏览器拼接问题
常用的字符串在ie浏览器拼接不识别的问题,建议不要使用字符串拼接,可直接用jquery添加方便快捷一些
- MySQL实战45讲学习笔记:第四十三讲
一.本节概述 我经常被问到这样一个问题:分区表有什么问题,为什么公司规范不让使用分区表呢?今天,我们就来聊聊分区表的使用行为,然后再一起回答这个问题. 二.分区表是什么? 为了说明分区表的组织形式,我 ...
- erlang 资源
https://github.com/ninenines https://github.com/drobakowski https://github.com/dizzyd
- PM学习笔记(一):解构产品经理
1.产品定义:什么是产品 来自百度百科(链接)的解释: 产品是指能够供给市场 [1] ,被人们使用和消费,并能满足人们某种需求的任何东西,包括有形的物品.无形的服务.组织.观念或它们的 ...
- CodeForce 577B Modulo Sum
You are given a sequence of numbers a1, a2, ..., an, and a number m. Check if it is possible to choo ...
- LINQ 之 SelectMany
声明:本文为www.cnc6.cn原创,转载时请注明出处,谢谢! 一.第一种用法: public static IEnumerable<TResult> SelectMany<TSo ...
- Java使用路径通配符加载Resource与profiles配置使用
序言 Spring提供了一种强大的Ant模式通配符匹配,能从一个路径匹配一批资源. Ant路径通配符 Ant路径通配符支持“?”.“*”.“**”,注意通配符匹配不包括目录分隔符“/”: “?”:匹配 ...
- 一行 Python
很多人学Python,除了它功能强大,简单易学外,代码行数少.语法简洁也是很吸引人的地方.那么,Python的语法到底有多简洁呢?一行Python代码,能实现什么丧心病狂的功能呢? 1.一行代码,实现 ...
- 关联mysql失败_Server returns invalid timezone. Go to 'Advanced' tab and set 'serverTimezon' 时区错误
时区错误,MySQL默认的时区是UTC时区,比北京时间晚8个小时. 所以要修改mysql的时长 在mysql的命令模式下,输入: set global time_zone='+8:00'; 再次连接成 ...
