python函数和模块有什么特性_python-函数包和模块

2023-11-12

python函数的作用: 在Python代码段中如果有一段几十行的代码,需要多次重复使用这几十行代码时,为了提高代码的可用性,将代码段放进函数体内,以后在使用中直接调用该函数模块即可,函数是一个独立的函数体或是一段独立的功能体,最主要的作用是解决代码的重用性。同时函数也具备一定的灵活性。

包定义与使用

一、包定义:

含有__init__.py文件的目录我们称之为包

二、包使用:

目录内的文件我们称之为模块,我们利用包和模块的目的是找模块也就是Python文件内的内容,主要是哪些内容,一般都是功能体、代码段比较封闭,主要有两个,一个是类、一个是函数。

import package.module

package.module.myfunc()

三、包的定义和使用——示例

、首先创建一个目录,命名为pack。目录内包含_init_.py的就称之为包。

、在包内创建一个模块,命名为main.py。

、在模块main.py中我们定义一个函数,名称为myfunc();

、在主程序下的index.py下调用函数,其中as bm是为包下的main.py起的别名。

其包含关系为:包(pack)模块(main.py)函数(myfunc();)

函数的定义与使用

、myfunc函数定义与使用

def myfunc():

//函数体

print('hello world');

myfunc();

运行结果:

hello world

[Finished in 0.1s]

变量作用域

、全局变量

在一个函数体外的变量,我们称之为全局变量,可以在函数内直接使用。

a=10;

def myfunc():

print(a);

myfunc();

运行结果:

10

[Finished in 0.2s]

、局部变量

在一个函数体内的变量,我们称之为局部变量,不可以在函数外面直接使用。

def myfunc():

a=10;

myfunc();

print(a);

运行结果:

Traceback (most recent call last):

File "D:pythonindex.py", line 9, in

print(a);

NameError: name 'a' is not defined

[Finished in 0.1s with exit code 1]

函数参数

、普通参数

参数把外面真实的值传递给里面去使用,外面的称之为实参、里面的称之为形参

a=10;

def myfunc(i):

print(i);

myfunc(a);

注:a就是实参、i就是形参,将a的值传递给i,被i使用。

运行结果:

10

[Finished in 0.1s]

计算两数之和

普通参数示例

#已知2018年,求2018年是闰年还是平年?

#闰年的条件有两个:

#1、能被4整除,但不能被100整除。

#2、能被4整除,同时如果能被100整除的话,则必须同是能被400整除。

year=2000;

def getYear(y):

if (y%4==0) and (y%100!=0) or (y%400==0):

print('yes');

else:

print('no');

getYear(year);

注:通过函数传参,将year传递给y,然后在内部进行计算。

、默认参数

#默认参数

a=10;

b=20;

def sum(i=1,j=2):

print(i+j);

sum();

注:如果将a和b传给了i和j,则执行传递的值进行计算,如果没有传递值,则使用默认的1和2进行计算,这就是默认参数。默认参数一般在没有传递参数的时候使用。

另外,参数传值是按照顺序传值的。

x运行结果:

3

[Finished in 0.1s]

、序列参数

#序列参数

def sum(i):

print(i);

arr=[1,3,5,7,9]

sum(arr);

运行结果:

[1, 3, 5, 7, 9]

[Finished in 0.1s]

、任意参数

#任意参数

def sum(*vals):

tot=0;

for i in vals:

tot+=i;

print(tot);

sum(2,4,6,8,10);

运行结果:

30

[Finished in 0.1s]

、字典参数

#字典参数

def sum(**vals):

print(vals);

sum(name1='user1',name2='user2',name3='user3');

住:变量和值的关系,变量不能加单引号

x运行结果:

{'name1': 'user1', 'name2': 'user2', 'name3': 'user3'}

[Finished in 0.1s]

字典遍历:

#字典参数

def sum(**vals):

for i in vals:

print(i,vals[i]);

sum(name1='user1',name2='user2',name3='user3');

运行结果:

name1 user1

name2 user2

name3 user3

[Finished in 0.1s]

函数的返回值

、print();

#函数返回值

ef sum(i,j):

# print(i+j);

return(i+j);

print(sum(1,2));

注:return(i+j);只返回,不打印,谁调用就返回给谁,如果想打印,在sum前使用print即可。

运行结果:

3

[Finished in 0.1s]

、return()或return;

是直接打印好,还是直接返回好?

返回能体现出函数的特点,是一个独立的代码段或功能体,如果用print它不独立,为什么,如果我用sum(1,2)传进去得到的值就是3呢,但是结果3并不着急打印,后续还要处理。

函数如果没有返回值,返回的就是none。

def sum(i,j):

# print(i+j);

return(i+j);

a=10;

b=20;

str='{}+{}={}'.format(a,b,sum(a,b));

print(str);

运行结果:

10+20=30

[Finished in 0.1s]

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

python函数和模块有什么特性_python-函数包和模块 的相关文章

  • Android中高级面试必知必会,成功定级腾讯T3-2

    前言 今天我给大家再次分享一下 我最近的一些读书的感想 思考起来 确实能够给自己带来一些真实的帮助和启发 希望大家在平时的工作学习中 也能够认清楚学习的一些本质 如果我们的学习是在不断掌握应对具体工作场景和问题的方法 那就是在努力提升技术效
  • 记一次R的可视化使用-生成城市各个景点的多边形图

    项目中需要用到全国各个城市的景点坐标范围 需要人工审核各个景点的数据正确性和各个景点之间的距离分布 首先想到的就是使用R绘制每个景点的多边形区域 首先通过python 根据数据生成R绘图代码 当然这里的R绘图代码非常简单 利用原始数据拼接成
  • 大数据用户画像之Oozie、Hue集成Spark2 应用调度

    一 Oozie 大数据调度工具 1 1 官方介绍 1 Oozie是一个管理 Apache Hadoop 作业的工作流调度系统 2 Oozie的 workflow jobs 是由 actions 组成的 有向无环图 DAG 3 Oozie的
  • java写一个多人线上聊天室

    java写一个多人线上聊天室 多线程 备注 课程实验作业 留作自用 效果如下 以下四个程序在一个包里 JavaMain java public class JavaMain public static void main String ar
  • JMeter压力测试与JVM监控以及调优

    一 性能指标 响应时间 Response Time RT 响应时间指用户从客户端发起一个请求开始 到客户端接收到从服务器端返回的响 应结束 整个过程所耗费的时间 HPS Hits Per Second 每秒点击次数 单位是次 秒 TPS T
  • 程序员转岗面试经

    整理下最近面试被问到的问题吧 以供各位参考 ps 本人计划转岗 转行 想从程序员转到对外岗位 所以最近面的主要是两个方向 售前 项目管理 基本面试问题 1 自我介绍 这个问题是通用性的 基本回答点是 问好 我是谁 我做过哪些 我有哪些能力
  • Assets/FollowDestination.cs(6,13): error CS0246: The type or namespace name `NavMeshAgent' could not...

    问题的出现与描述 在Unity中创建一个NPC 使它一直跟踪一个目标Destination C 脚本代码如下 错误信息描述如下 using System Collections using System Collections Generi
  • 各省简称 拼音 缩写_全国所有城市拼音及缩写

    LUOHE LH 洛阳 LUOYANG LY 潞西 LUXI LX 泸州 LUZHOU LZ 吕梁 LVLIANG LL 旅顺 LVSHUN LS 马鞍山 MAANSHAN MAS 茂名 MAOMING MM 梅河口 MEIHEKOU MH
  • vue el-button获取按钮的值_那些Vue开发遇到的坑---响应式系统

    Vue是目前使用较为广泛的前端框架之一 相比React Vue更容易学习上手 毕竟在React中万物皆JavaScript 这让一些习惯于编写HTML JavaScript的程序员不太乐于接受 相比之下 Vue的模板语法它不香么 当然 Vu
  • html5进阶

  • synchronized和ReentrantLock区别简介说明

    在多线程开发中 需要锁定指定代码块 使其在同一时间只能由一个线程运行 我们日常开发中常用的同步锁有 synchronized和ReentrantLock 那么他们两者之间到底有什么不同之处呢 下文笔者讲述synchronized和Reent
  • es 更新延迟

    es在更新之后并不是立即可见 可查询 的 会有1s的延迟 可以通过设置refresh interval参数来修改刷新的间隔 但是在实际应用中 1s的延迟已经算是很久了 在java high level client中 为index inse
  • MiniUI 的知识积累

    1 默认选中树的根节点 var tree mini get tree 1 tree selectNode tree getRootNode children 0 2 表格修改列头名称 div class mini fit div class
  • novel Ai (stable-diffusion-webui)安装

    关于novel ai的本地化安装 环境 英伟达显卡 win11 可以连接github并下载内容 安装 python 3 10 6及以上 安装并添加到path 安装cuDNN和CUDAToolKit 先更新主机的显卡驱动 检查系统的显卡驱动版
  • Java如何进行内存分配

    Java 虚拟机 JVM 负责管理 Java 应用程序的内存 在 Java 中 内存被划分为不同的区域 每个区域都有不同的用途 Java 中有两种主要的内存区域 堆和栈 功能 1 堆 堆是存储所有对象实例的内存区域 所有对象实例都存储在堆中
  • React之中的styled-components

    在react之中使用css不像vue之中那么方便 react官方也没有很统一的用法 下面是有关于styled component的使用 1 安装库 yarn add styled components 2 基本使用 在其中styled di
  • 深度学习中的epoch,batchsize,iteration都是什么?

    转载 https www jianshu com p e5076a56946c 一切的一切 要从机器学习中的梯度下降法说起 首先让我们来回顾一下这个常见的不能再常见的算法 梯度下降法是机器学习中经典的优化算法之一 用于寻求一个曲线的最小值
  • wxWidgets with quick-x

    前言 OSX下 Qt5 所生成应用包的大小有七八十兆大小 单独一个 debug 版本的可执行程序都有 15 7MB 再加上 QtCore QtGui QtOpenGL 等 framework 包大小分分钟上来 曾经发布过的 Qt5 2 qu
  • 微信公众号实现“一键关注”功能

    背景 之前用的一键关注要么通过图文 要么通过二维码 这样甚是麻烦 而且引导不到位 而看到朋友圈打广告的一些公众号可以直接关注 于是一直研究这个功能 今天终于实现了 分享给所有朋友 希望能帮助到所有朋友 这个引导关注的页面包含了公众号的log

随机推荐

  • 密码学之哈希算法

    1 哈希算法 哈希算法是将任意长度的二进制值映射为较短的固定长度的二进制值 这个小的二进制值称为哈希值 哈希值是一段数据唯一且极其紧凑的数值表示形式 如果散列一段明文而且哪怕只更改该段落的一个字母 随后的哈希都将产生不同的值 要找到散列为同
  • 滑动关机BAT脚本

    滑动关机脚本 1 脚本功能 增加一个一键关机的功能 点击这个按钮 即可滑动关闭电脑 非常酷炫好用 2 脚本内容 slidetoshutdown 3 使用方式 新建slideDown bat文件 编辑 把上面的脚本内容粘贴进去 然后双击执行s
  • MySQL(十三):分区表( Partitioning Table)

    文章目录 1 MySQL 分区简介 1 1 什么是分区表 1 2 分区表优点 1 3 分区表缺点 2 MySQL 分区类型 2 1 范围分区 RANGE 2 1 1 基于时间间隔的分区方案 2 1 1 1 按 RANGE 对表进行分区 2
  • Maven项目版本定义

    Maven使用占位符实现一处定义项目版本 使用 revision 定义整个项目的版本 方便修改 父pom
  • Java实现杨辉三角

    代码实现 package day01 public class yanghui public static void main String args 声明二维数组并初始化 int yanghui new int 10 给二维数组赋值 fo
  • jsp 新能源汽车论坛网Myeclipse开发mysql数据库web结构java编程计算机网页项目

    一 源码特点 JSP 新能源汽车论坛网是一套完善的java web信息管理系统 对理解JSP java编程开发语言有帮助 系统具有完整的源代码和数据库 系统主要采用B S模式开发 开发环境为 TOMCAT7 0 Myeclipse8 5开发
  • 《如何为Android Studio安装HAXM》

    注意 当你在Android studio直接下载sdk和HAXM一些安卓环境依赖的文件时 会出现haxm文件已经下载 但未安装 导致启动avd模拟器不成功 如下图 emulator64 x86 avd 32 QVGA ADP2 API 25
  • Python爬虫实战——搭建自己的IP代理池

    如今爬虫越来越多 一些网站网站加强反爬措施 其中最为常见的就是限制IP 对于爬虫爱好者来说 能有一个属于自己的IP代理池 在爬虫的道路上会减少很多麻烦 环境参数 工具 详情 服务器 Ubuntu 编辑器 Pycharm 第三方库 reque
  • sql增删改查_Zhuo笔记:使用C#链接SQL数据库并进行增删改查操作

    一 首先使用SQL语句在建立数据库及表 二 在C 中做一个简单窗口以便对SQL数据库进行操作 三 编写代码进行SQL链接 1 C 访问SQL SERVER首先需要引用using System Data 和usingSystem Data S
  • 芯片IO口Driving能力(Sourcing Current)测试方法

    PMOS管测试步骤 Drive High Ability 1 将IO PAD配置成output模式 DUT供电电压为可正常工作的最低电压 如依datasheet允许 下降10 3 3V gt 2 97V 等 2 将IO PAD配置成最大Dr
  • 图文详解GPT-4最强对手Claude2的使用方法

    大家好 我是herosunly 985院校硕士毕业 现担任算法研究员一职 热衷于机器学习算法研究与应用 曾获得阿里云天池比赛第一名 CCF比赛第二名 科大讯飞比赛第三名 拥有多项发明专利 对机器学习和深度学习拥有自己独到的见解 曾经辅导过若
  • 基于粒子群算法优化LSTM的多输入单输出台风风电功率预测

    基于粒子群算法优化LSTM的多输入单输出台风风电功率预测 随着风电产业的快速发展 风电场的管理和运行越来越依赖于准确的风速信息和风力预测 因此 台风风电功率预测的研究变得越来越重要 在本文中 我们将使用粒子群算法 PSO 来优化长短期记忆网
  • spring-boot项目使用ulisesbocchio对配置文件敏感信息加密

    参考文献github官网地址 https github com ulisesbocchio jasypt spring boot 1 添加依赖 maven
  • kiel5编译报错error: L6235E: More than one section matches selector - cannot all be FIRST/LAST.

    原因是startup xxx s文件只能保留其中一种 启动文件分别带有hd md ld和cl vl xl几种种字样 需要查看mcu的flash内存大小来选择 cl 互联型产品 stm32f105 107系列 vl 超值型产品 stm32f1
  • 世界各国英文简写一览表

    整理了一份世界各国英文简写表 供大家参考 country cName country code country eName 中国 CN China 中国台湾 W aiwan 中国澳门 MO Macao 中非共和国 CF he Central
  • 基于STM32c8t6的5路pwm占空比测量实验总结

    测量方式 1 正点原子例程里使用的方式 定时器通道的相关引脚输入捕获上升沿触发中断 在中断函数里 检测到上升沿之后TIM SetCounter TIMX 0 将计数器的值置零重新开始计数 同时将定时器中断触发方式切换为下降沿触发 待到下降沿
  • 嵌入式(TCP编程)

    TCP编程API 1 socket 函数 参数 2 bind 函数 如果是IPV6的编程 要使用 struct sockddr in6结构体 man 7 ipv6 通常更通用的方法可以通过struct sockaddr storage来编程
  • VulnHub渗透实战Billu_b0x

    简介 VulnHub是一个面向所有人开放的安全靶场 里面有很多安全环境 只要下载相关镜像 在相关虚拟机上面运行就可以练习相关靶场了 里面设计了好多关 如果有耐心一定可以到达峰顶 许多考oscp人员 也会利用vulnhub靶场进行刷题 我们下
  • pycharm缩进快捷键

    1 pycharm使多行代码同时右移缩进 鼠标选中多行代码后 按下Tab键 一次缩进四个字符 2 pycharm使多行代码同时左移 鼠标选中多行代码后 同时按住shift Tab键 一次左移四个字符
  • python函数和模块有什么特性_python-函数包和模块

    python函数的作用 在Python代码段中如果有一段几十行的代码 需要多次重复使用这几十行代码时 为了提高代码的可用性 将代码段放进函数体内 以后在使用中直接调用该函数模块即可 函数是一个独立的函数体或是一段独立的功能体 最主要的作用是