python之函数的初识
1. 面向过程编程的缺点
- 代码重复
- 代码可可读性不高
2. 函数的定义***
函数是以功能为导向,一个函数封装一个功能。登录,注册,文件的改的操
3.函数的作用***
函数减少代码的重复性,增强了代码的可读性。
4.例题:
获取任意一个字符串的元素的个数
s1 = 'fdskjlgfdgfdjkslgdfjkjafdsajk'
count = 0
for i in s1:
count += 1
print(count)
获取列表的元素的个数
l1 = [1, 2, 3]
count = 0
for i in l1:
count += 1
print(count)
函数的格式:***
l1 = [1, 2, 3]
def new_len():
count = 0
for i in l1:
count += 1
print(count)
new_len()
二、函数的结构
l1 = [1, 2, 3]
def new_len():
count = 0
for i in l1:
count += 1
print(count)
new_len()
'''
def 关键字: 定义一个函数。紧跟一个空格。
new_len函数名:与变量命名规范一致。一定要具有可描述性。
():结构需要,传参使用。
: 分割符。
tab键:四个空格。缩进。函数体
new_len() 函数名加括号是函数的调用者
'''
三、函数的调用
函数怎么调用***
函数名加括号()
函数名()写多少次,函数就执行多少次
# l1 = [1, 2, 3]
# def new_len():
# count = 0
# for i in l1:
# count += 1
# print(count)
# 函数的执行写多少次,执行多少次。
# new_len() # 函数名() 函数的执行者。调用者。
# new_len() # 函数名() 函数的执行者。
# new_len() # 函数名() 函数的执行者。
# new_len() # 函数名() 函数的执行者。
# new_len() # 函数名() 函数的执行者。
l1 = [1, 2, 3]
def new_len():
count = 0
for i in l1:
count += 1
print(count)
for i in range(10):
print(111)
for i in range(3):
new_len()
四、函数的返回值
一个函数就是封装一个功能,这个功能一般都会有一个最终结果的,比如你写一个登录函数,最终登录成功与否是不是需要返回你一个结果?还有咱们是不是都用过len这个函数,他是获取一个对象的元素的总个数,最终肯定会返回一个元素个数这样的结果:
s1 = 'abfdas'
print(len(s1)) # 6
1. 函数的返回值用return表示
2. 函数返回值的作用
2.1 结束函数
l1 = [1, 2, 3]
def new_len():
print(111)
print(222)
if 1 == 1:
return
print(333)
print(444)
new_len()
2.2 函数中没有return或者只写一个return,函数的执行者得到的是None
l1 = [1, 2, 3]
def new_len():
count = 0
for i in l1:
count += 1
return
print(new_len())
2.3 函数中return后面是单个值,函数的执行者得到的是这个值(不改变值的类型)
def func():
print(111)
# return 100
# return [1, 2, 3]
return {'name': '太白'}
ret = func()
print(ret, type(ret))
2.4 函数中return后面是多个值,函数的执行者得到的是一个元组
# def func():
# print(111)
# return 1, '23期', [22, 33]
# ret = func()
# print(ret, type(ret)) # (1, '23期', [22, 33])
# def func():
# print(111)
# # return 1, '23期', [22, 33]
# a,b,c = func()
# print(a,b,c)
def func():
print(111)
# return 1+1+2
return 2 > 1
ret = func()
print(ret)
五、函数的传参
我们上面研究了,函数的结构,函数的执行,以及函数的返回值。对函数有一个初步的了解,那么接下来就是一个非常重要的知识点,函数的参数。函数是以功能为导向的,上面我们写的函数里面的代码都是写死的,也就是说,这个函数里面的更改起来很麻烦,试想一下,我们使用探探,陌陌等软件,可不可以进行筛选,比如选择性别,年龄等,导出结果? 再拿我们之前学过的len 这个len是不是可以获取字符串的总个数?是不是可以获取列表的总个数?你更改了len函数内部的代码了?没有吧?你看下面的例子:
s1 = 'sfdas'
l1 = [1, 3, 7]
print(len(s1)) # 5
print(len(l1)) # 3
1. 函数的传参:函数的拓展性
# def new_len(a): # 定义函数时:参数:形参。
# count = 0
# for i in a:
# count += 1
# return count
# l1 = [1, 2, 3]
# s1 = 'fdsjaklsfjgfds'
# # print(new_len(l1)) # 函数的调用者:参数 实参。
# print(new_len(s1)) # 函数的调用者:参数 实参。
# print(len(s1))
2. 实参角度
- 位置参数。
- 关键字参数。
- 混合参数。
3. 形参角度
- 位置参数。
- 默认参数。
- 动态参数。
- 仅限关键字参数。(了解)
4. 例题:
实参角度
1. 位置参数
从左至右,按照顺序,一一对应 ***
# 1. 位置参数。:
def meet(sex,age,job,):
print('左划一下')
print('右划一下')
print(f'寻找性别{sex},年龄{age}岁,{job}')
print('聊天')
print('约吗')
print('约....')
meet('女','18~25','讲师')
# 写一个函数,接收两个数字的参数,将较大的数字返回。
# def comp(a,b):
# if a > b:
# return a
# else:
# return b
# ret = comp(1,2000)
# print(ret)
# 三元运算符:简单的if else。
# a1 = 1
# b2 = 2
# ret = a1 if a1 > b2 else b2
# # print(ret)
#
# def comp(a,b):
# # ret = a if a > b else b
# # return ret
# return a if a > b else b
# ret = comp(1,2000)
# # print(ret)
2. 关键字参数***
顺序无所谓, 像sex='18' 这种就是关键字,要一对一对应
def meet(sex,age,job,hight,weight,):
print('左划一下')
print('右划一下')
print(f'寻找性别{sex},年龄{age}岁,身高{hight},体重{weight},工作{job}')
print('聊天')
print('约吗')
print('约....')
# meet(sex='女',job='学生',weight=120,hight=170,age='18~25')
3. 混合参数***
关键字参数一定在位置参数后面,一一对应
def meet(sex,age,job,hight,weight,):
print('左划一下')
print('右划一下')
print(f'寻找性别{sex},年龄{age}岁,身高{hight},体重{weight},工作{job}')
print('聊天')
print('约吗')
print('约....')
meet('男',27,'ITC语言',weight=120,hight=175,)
形参角度
1. 位置参数
与实参角度位置参数一样
# def meet(sex,age,job):
# print('左划一下')
# print('右划一下')
# print(f'寻找性别{sex},年龄{age}岁,{job}')
# print('聊天')
# print('约吗')
# print('约....')
# meet('女','18~25','讲师')
2. 默认参数
一定在位置参数后面,不传参数即沿用默认的参数。
# open('文件的改',encoding='utf-8')
def meet(age,job,sex='女'):
print('左划一下')
print('右划一下')
print(f'寻找性别{sex},年龄{age}岁,{job}')
print('聊天')
print('约吗')
print('约....')
# meet('18~25','幼师')
# 更改默认参数
# meet('18~25','幼师',sex='laddy_boy')
meet('18~25','幼师','laddy_boy')
python之函数的初识的更多相关文章
- 孤荷凌寒自学python第十七天初识Python的函数
孤荷凌寒自学python第十七天初识Python的函数 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 函数是能够完成指定运算并返回运算结果的代码块.是结构化编程重要的结构. 我首先发现pyt ...
- Python函数01/函数的初识/函数的定义/函数调用/函数的返回值/函数的参数
Python函数01/函数的初识/函数的定义/函数调用/函数的返回值/函数的参数 内容大纲 1.函数的初识 2.函数的定义 3.函数的调用 4.函数的返回值 5.函数的参数 1.函数初识 # def ...
- python之函数初识
一.函数的初识1.如何定义函数:def 函数名(): 代码... 例如:def my_len(): l = [1, 2, 3, 4] count = 0 for i in l: count += 1 ...
- Python 函数的初识
1.函数的初识 函数的作用:以功能为导向 减少代码重复 # 函数试编程 # 函数以功能(完成一件事)为导向,登录 注册, # 一个函数就是一个功能,一个函数只能写一个功能 # 何时需要 何时调用,随调 ...
- 孤荷凌寒自学python第三十八天初识python的线程控制
孤荷凌寒自学python第三十八天初识python的线程控制 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 一.线程 在操作系统中存在着很多的可执行的应用程序,每个应用程序启动后,就可以看 ...
- 孤荷凌寒自学python第三十三天python的文件操作初识
孤荷凌寒自学python第三十三天python的文件操作初识 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) 今天开始自学python的普通 文件操作部分的内容. 一.python的文件打开 ...
- 孤荷凌寒自学python第十一天初识Python的字典类
孤荷凌寒自学python第十一天初识Python的字典类 (完整学习过程屏幕记录视频地址在文末,手写笔记在文末) Python的字典其实是一张二维对照表 下面举例说明: 键名Key 姓名 性别 身高 ...
- Python面向对象01 /面向对象初识、面向对象结构、类、self、实例化对象
Python面向对象01 /面向对象初识.面向对象结构.类.self.实例化对象 目录 Python面向对象01 /面向对象初识.面向对象结构.类.self.实例化对象 1. 面向对象初识 2. 面向 ...
- python的函数
函数一词起源于数学,但是在编程中的函数和数学中的有很大不同.编程中的函数式组织好的,可重复使用的,用于实现单一功能或相关联功能的代码块. 我们在学习过程中已经使用过一些python内建的函数,如pri ...
随机推荐
- qemu编译
符号说明 $ 表示在用户模式下执行命令 # 表示在root模式下执行命令 ### 表示注释用于解释接下来一条命令的作用 更新环境源 设置阿里源 $ sudo mv /etc/yum.repos.d/C ...
- SPA单页应用前后分离微信授权
项目基于微信公众号开发,业务完全依赖微信授权,也就是用户进入页面已经完成授权获取到用户的OpenId. 需要有一个授权中间页:author.vue 基本实现思路: 无论使用哪个url进入页面都会先触发 ...
- 剑指Offer的学习笔记(C#篇)-- 不用加减乘除做加法
题目描述 写一个函数,求两个整数之和,要求在函数体内不得使用+.-.*./四则运算符号. 一 . 理解题目 这个题目可以让我们回归到小学,想想加法的竖式是怎么写的,哈哈,如果当时你不是那个竖式写错了, ...
- 第六章 “我要点爆”微信小程序云开发实例之爆文详情页制作
爆文详情页制作 从首页中数据列表打开相应详情页面的方法: 给数据列表中每个数据项加一个点击事件,同时将当前数据项的id暂时记录在本地,然后跳转到详情页面detail goopen: function ...
- 安装mongo可视化管理工具mongo admin
https://github.com/mrvautin/adminMongo github地址 安装要求下载下来,然后安装即可 中间出现了问题: 说是开了代理,可以关掉代理之后,然后把下载下来的删了, ...
- QDU-GZS and String
Description GZS has two strings s and t. In each step, GZS can select arbitrary character c of s and ...
- Codeforces Round 56-B. Letters Rearranging(思维)
time limit per test 1 second memory limit per test 256 megabytes input standard input output standar ...
- 项目协作管理平台-teambition和tapd--深度体验
一.分析目的 通过分析2B产品中的团队协作管理软件的对比分析,用于为公司团队协作软件的选型做产考. 二.竞品归属市场概况 2.1.目标用户群及需求 主要面向企业用户,用于解决企业不同地域以及不同职 ...
- CSS grid layout demo 网格布局实例
直接 上代码,里面我加注释,相当的简单, 也可以去我的github上直接下载代码,顺手给个星:https://github.com/yurizhang/micro-finance-admin-syst ...
- Linux netstat命令详解和使用例子(显示各种网络相关信息)
netstat命令用于显示与IP.TCP.UDP和ICMP协议相关的统计数据,一般用于检验本机各端口的网络连接情况.netstat是在内核中访问网络及相关信息的程序,它能提供TCP连接,TCP和UDP ...