Python(八) 函数、模块

函数

定义函数

1、意义:函数是实现某个功能的一些代码,提高代码的复用性。

2、定义:用def关键字定义函数,

3、函数组成:函数由函数名、形参、函数体、调用函数(里面会有函数体)组成

4、要使用函数,必须要调用它

5、示例函数:

定义一个简单的函数,里面只有函数名、函数体、调用函数组成

形参与实参

形参:在函数名字后面括号里的值,实参是调用函数时传递给函数的信息

实参:实参是在调用函数是,函数名字后面括号里的值

示例:定义一个写文件的函数

定义一个读文件的函数

返回值:在函数中,可使用return语句将值返回到调用函数的代码行,如果不写return将返回none

return的作用:把函数处理的结果返回。结束函数,函数里面遇到return,就立刻结束函数

传递参数 

1、默认值参数:在函数定义时,可给形参指定一个默认值,在函数调用中给形参提供了实参时,Python将使用指定的实参值,否则将使用指定的默认值

2、位置实参:在函数调用时,必须将每个实参都关联到函数定义中的每一个形参,必须按照形参位置来传递实参,实参为必传。

3、关键字实参:在函数调用时,传的实参要以 名称-值得形式来传递参数。关键字实参的顺序无关紧要,不用和形参对应上

 4、可变参数(传递任意数量的实参):定义形参时,用 *name ,调用函数时,实参非必填,不限制参数个数

参数是放在元组里面的。

5、向函数传递列表、元组、集合:元素个数要与形参个数对应上,调用函数时语法:函数名字(*listname)

6、传递任意数量的关键字实参:非必传,不限制个数,会把传过来的关键字参数放到一个字典里面,传参的时候必须用key=value形式来传

7、向函数传递字典,字典里的key要与函数中的形参个数对应上,语法:函数名(**dictname)

局部变量与全局变量

1、局部变量:函数里面定义的变量,只要一出了函数就不能用了

2、全局变量:在函数外面定义的变量,就会全局变量,在函数里面与外面都可以用

global关键字:全局变量如果要在函数中修改的话,需要加global关键字声明;

                        定义的全局变量是list或者字典或者集合,不需要声明global;只有字符串、元组,int、float 需要声明global

 浅拷贝与深拷贝

浅拷贝:两个变量指向同一块内存地址,查看内存地址用print(id(name))

深拷贝:需要导入copy模块,深拷贝两个变量的内存地址不一样

注意:不要循环删list,会导致结果错乱

1不是偶数,也打印出来了,这就导致了结果的错乱

正确代码如下:

 

模块

定义:一个Python文件就是一个模块

模块分类:

1、标准模块:Python自带的 time,random

2、第三方模块:别人写好的,需要安装 比如 连接mysql的,汉字转成拼音的
3、自己写的Python文件

json模块:解析Json的,json就是一个字符串

导入json模块:

1、json.loads方法:直接操作的是字符串,把json转成字典

2、json.load方法:可以直接操作文件对象,自己读取文件里的内容,把文件对象里的json转成字典。

3、json.dumps:把字典转成字符串。

4、json.dump:操作文件对象,把字典写入到文件里面,文件里以json形式显示

os模块

操作系统相关的东西都在os模块里面:import os

os.walk方法:可以遍历返回文件目录、文件夹、文件

定义一个查找文件内容的函数

import os
def find_movie(KeyWord,path="e:\\",):
for cur_path, cur_dirs, cur_files in os.walk(path):
# if KeyWord in str(cur_files):
# print(cur_path)
for file in cur_files:
# if KeyWord in file:
if file.endswith('KeyWord'):
print(cur_path)

time模块 import time

 1、时间戳转换成格式化好的时间

 

2、格式化好的时间转成时间戳

3、定义两个函数,实现  时间戳转换成格式化好的时间、格式化好的时间转成时间戳

def timestampToStr(timestamp=None,format='%Y-%m-%d %H:%M:%S'):
#时间戳转格式化好的时间
if timestamp:
time1=time.localtime(timestamp)#时间元祖
res=time.strftime(format,time1)
#print(res)
else:
res=time.strftime(format)#如果没有传时间元祖,那么就默认传当前时间格式化好的时间元祖
#print(res)
return res
#test=timestampToStr(1540280339)
#test=timestampToStr()
#print(test)


def strTotimestamp(str=None,format='%Y%m%d%H%M%S'):
#格式化好的时间转时间戳
if str:
timep=time.strptime(str,format)#转成时间元祖
res=time.mktime(timep)#时间元祖转成时间戳
else:
res=time.time()
return int(res)
res=strTotimestamp('20180505101010')
print(res)


注意:如果提示需要导入模块,那么用快捷键Alt+Enter即自动导入了。
如下 提示需要导入json模块,即用快捷键就可以自动导入了。

 

 

 

转载于:https://www.cnblogs.com/qiaomeiling/p/10057349.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/412694.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

PMP读书笔记(第7章)

大家好,我是烤鸭:     今天做一个PMP的读书笔记。 第七章 项目成本管理项目成本管理项目成本管理的核心概念项目成本管理的趋势和新兴实践裁剪考虑因素关于敏捷/适应型环境的考虑因素7.1 规划成本管理7.1.1 规划成本管理:输入7.1.1.1 项目…

PMP 第六版 p25 矩阵图 方便记忆 口诀

大家好,我是烤鸭:     这是我第六版PMP矩阵图和自己总结的方便记忆的方法。 记忆方法: 首先是6大管理过程,10大知识领域。这个需要背下来。 过程:启动-规划-执行-监控-收尾 知识领域:整合-范围-进度-…

IntelliJ Idea注释模板--类注释、方法注释

刚从Eclipse切换到IntelliJ Idea,之前使用eclipse时用到了注释模板,包括类注释和方法注释,现在分别讲一下在Intellij Idea中如何进行配置,作为备忘 一. 类注释模板配置 1. 配置效果 2. 配置方法 【File】-->【settings】-->…

maven 关于使用 snapshot 的坑

大家好,我是烤鸭: 今天分享一下maven项目引入"快照"版依赖的问题。 1. snapshot 和 realease 顾名思义 就是 快照和稳定版。快照是不稳定的开发版本,不定时更新。稳定版不会有这个问题。 不定时更新有什么危害。 maven install…

PMP读书笔记(第11章)

大家好,我是烤鸭:     今天做一个PMP的读书笔记。 第十一章 项目风险管理项目风险管理项目风险管理的核心概念项目风险管理的趋势和新兴实践裁剪考虑因素在敏捷或适应型环境中需要考虑的因素11.1 规划风险管理11.1.1 规划风险管理:输入11…

PMP读书笔记(第12章)

大家好,我是烤鸭:     今天做一个PMP的读书笔记。 第十二章 项目采购管理项目采购管理项目采购管理的核心概念项目采购管理的趋势和新兴实践裁剪考虑因素在敏捷或适应型环境中需要考虑的因素12.1 规划采购管理12.1.1 规划采购管理:输入12…

奇怪的问题,再次启动jar包会导致bean对象失效?Unknown redis exception Cannot connect, Event executor group is terminated

大家好,我是烤鸭: 踩坑实录。一个某次上线导致的问题,并没有改过什么代码,只是重新上了一次包,没上之前从来没出过这个问题。最开始日志的报错信息一直是 NoClassDefFoundError could not initialize class ,发现是 st…

从Spring到SpringBoot构建WEB MVC核心配置详解

目录 理解Spring WEB MVC架构的演变认识Spring WEB MVC传统时代的Spring WEB MVC新时代Spring WEB MVCSpringBoot简化WEB MVC开发自动装配条件装配外部化配置本章源码下载理解Spring WEB MVC架构的演变 基础Servlet架构核心架构:前端控制器Spring WEB MVC架构认识Sp…

bouncycastle NoSuchFieldError:xxx 版本冲突

大家好,我是烤鸭: bouncycastle NoSuchFieldError:xxx 就是版本冲突了。 这里提示下,冲突有可能不止在项目里,也有可能在jre的lib目录下... 总之就是classpath加载了同样的jar包(不同版本)。如图所示: 项目…

团队项目测评博客

第一部分 调研,评测 评测 安卓端评测 测试人:文垚描述最简单直观的个人第一次上手体验。第一次上手体验,操作简单,界面简洁。课程表与超级课程表差不多,不同课程不同颜色显示,简洁明了。但是整体界面在简洁…

springboot 整合 kafka demo 顺便看一下源码

大家好,我是烤鸭: 今天分享下 springboot 整合 kafka。 1. 环境参数: windows kafka_2.11-2.3.0 zookeeper-3.5.6 springboot 2.3.0 2. 下载安装zookeeper kafka zookeeper: https://mirror.bit.edu.cn/apache/zookeeper/zookeeper-3.5.8/apache-zooke…

.NETCore_生成实体

先安装以下三个包,或者使用Nuget引用 不要问我为什么,按哥说的做吧: Install-Package Microsoft.EntityFrameworkCore.SqlServer Install-Package Microsoft.EntityFrameworkCore.Tools Install-Package Microsoft.VisualStudio.Web.CodeGene…

执行mongod其他实例出现的问题

windows环境下,配置其他mongo实例,会出现一些问题 1、配置路径不对,执行bat文件时出现闪屏 根据提示创建C:\data\db\ 目录(因为mongodb默认在/data/db下创建数据库),重新执行mongod实例,就OK&am…

从 class 文件 看 synchronize 锁膨胀过程(偏向锁 轻量级锁 自旋锁 重量级锁)

大家好,我是烤鸭: 前几天看马士兵老师的并发的课,里边讲到了 synchronize 锁的膨胀过程,今天想用代码演示一下。 1. 简单介绍 关于synchronize jdk 1.5 以后的优化,由重量级锁调整为膨胀过程。分别是 偏向锁 轻量级锁&#xff0…

php opcache 详解

PHP性能提升之OPcache相关参数详解 工具 memory 发布于December 15, 2016 标签: PHPOPcache 通过将 PHP 脚本预编译的字节码存储到共享内存中来提升 PHP 的性能, 存储预编译字节码的好处就是 省去了每次加载和解析 PHP 脚本的开销。 PHP 5.5.0 及后续版本中已经绑定…

es elasticsearch 几种常见查询场景 二次分组 java读取es的查询json文件

大家好,我是烤鸭: es中几种常见的查询场景,使用java读取es的json文件进行查询。 es 中文使用手册。https://www.elastic.co/guide/cn/elasticsearch/guide/current/foreword_id.html 1. 从最简单的查询开始 GET /_search {"hits" : {&qu…

阿里云服务器邮件发送

一个邮件发送的功能,本机调试无问题,但发布到阿里云服务器后邮件发送功能失败。 网上查了下大概是说阿里云把发送邮件的25端口禁用掉了 那么解决方式一就是向阿里云申请开放25端口,但具体如何申请,并未深入操作。 解决方式二&…

全链路追踪竟然如此简单? bytebuddy搭建全链路追踪的demo 附代码

大家好,我是烤鸭: 最近一直在研究全链路追踪,比如cat、skywalking、zipkin等。 发现 skywalking 是基于bytebuddy 实现的,想自己试着写一下demo。 demo的git地址,感兴趣的可以自己试下。代码在idea中可以跑,至于其他场…

echarts地图的基本使用配置

一、空气质量图 代码和配置如下&#xff1a; <template><div class"box"><div id"map"></div></div> </template><script>import china from echarts/map/js/china.js export default {data(){return {}},mount…

从源码角度分析下 micrometer 自定义 metrics endpoint 和 springboot actuator

大家好&#xff0c;我是烤鸭&#xff1a; 今天分享下 micrometer 的源码&#xff0c;和springboot集成 自定义endpoint 的使用。 1. 文档信息 官方文档&#xff1a; http://micrometer.io/docs github&#xff1a; https://github.com/micrometer-metrics/micrometer s…