python函数和模块有什么特性_python-函数包和模块
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]
python函数和模块有什么特性_python-函数包和模块相关推荐
- 【爆肝更新】Python基础教程:第五章_Python函数
原创:公众号 数据说话 [爆肝更新]Python基础教程:第五章_Python函数 函数介绍 学习目标: 快速体验一下函数的使用 了解函数的作用. 函数:是组织好的,可重复使用的,用来实现特定功能的代 ...
- 【python小课堂专栏】python小课堂15 - 史上最详细的包和模块import讲解篇
python小课堂15 - 史上最详细的包和模块import讲解篇 前言 在大量的代码设计中,我们不可能将所有代码都写在一个.py文件,所以有了包.模块,而为了代码可以重复利用(复用性),就有了类.函 ...
- python导入自己写的模块_Python:包、模块和导入
南京著名风景区--牛首山 预计阅读时间--5分钟 Python的好处在于,你不需要懂很多概念,你就有机会投入工作,同样,问题也有机会随时发生. 包.模块 foo --bar.py --sim.py - ...
- python中的object是什么意思_Python函数是所谓的第一类对象(First-Class Object)是什么鬼?...
之前写过一篇关于装饰器的文章,虽然写得还算不错,但是也有不少同学表示没看懂,我大概分析了其中的原因,主要问题是他们不理解函数,因为Python中的函数不同于其它语言. 正确理解 Python函数,能够 ...
- python多进程存储数据丢失的存储器是_python查漏补缺 --- 模块、文件、异常
有些知识学着学着就忘了,有些博客看着看着就想留言了,本片博客仅代表作者本人的观点,如有错误及疑问,欢迎提出宝贵的意见! 1.方法定义好之后,如,def test(x) : ,此时将方法名赋值给一个新的 ...
- python函数作用域包括局部变量和参数_python函数变量的作用域声明(全局变量和局部变量)...
函数变量的作用域声明(全局变量和局部变量) 引入问题: 局部变量: 局部变量:定义在函数内部的变量,它的作用域也仅限于函数内部,出了函数就不能使用了. 例如: #encoding = utf-8 de ...
- python基本模块中的对象_Python 学习笔记 -- OS模块的常用对象方法
1 #这里列举在os模块中关于文件/目录常用的函数使用方法 2 3 #这里需要注意下,在使用这些方法前记得导入os模块 4 import os #导入os模块 5 """ ...
- python函数装饰器有什么用_Python @函数装饰器及用法(超级详细)
前面介绍的 @staticmethod 和 @classmethod 的本质就是函数装饰器,其中 staticmethod 和 classmethod 都是 Python 内置的函数. 使用 @ 符号 ...
- python中、函数定义可以不包括以下_python函数定义精讲
原标题:python函数定义精讲 在 Python 中,你也可以定义包含若干参数的函数.这里有三种可用的形式,也可以混合使用. 默认参数值 最常用的一种形式是为一个或多个参数指定默认值.这会创建一个可 ...
最新文章
- 微信小程序获取多选框选中值和选中值对应的id
- MySQL 中的myisam内部临时表
- 实例10:python
- 【转】人工智能-1.2.2 神经网络是如何进行预测的
- VBScript学习笔记 - 数组
- python arp欺骗
- I/O写入的原子性(Double Write)
- 绝对经典的滑轮新闻显示(javascript+css)
- 在注册表更改Program Files的位置
- DoIP协议一致性测试
- VS2010旗舰版安装图解
- 【NOIP2016提高组】蚯蚓
- SQL(Oracle) 日期转换为英文年月格式
- Kanzi软件开发与Android的关系
- 2.15范冰增长黑客读书笔记
- android 平板hdmi开发,安卓平板电脑的新突破口:HDMI in 视频输入,取代便携显示器...
- 未来广播电视新技术的发展和应用
- Pytorch之Bert文本分类(一)
- 手把手教你搭建Kubernetes集群
- 瞬渺光电代理THZ光谱仪成功客户