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]

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

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

相关文章

hibernate继承映射之每个具体类一张表

数据模型 表person 表student 表worker 对象模型 Person private String id;private String name;private int age;private String sex; Student extends Person private String school; Worker extends Person private String factory; xml配置&#xff1a; <?xml version…

linux系统下安装qgis,深度操作系统 deepin 15.11安装 QGIS 3.4

深度操作系统是基于Linux内核&#xff0c;以桌面应用为主的开源 GNU/Linux 操作系统&#xff0c;支持笔记本、台式机和一体机。深度操作系统(deepin)包含深度桌面环境(DDE)和近30款深度原创应用&#xff0c;及数款来自开源社区的应用软件&#xff0c;支撑广大用户日常的学习和工…

读取并修改App.config文件(转载)

1. 向项目添加app.config文件&#xff1a;右击项目名称&#xff0c;选择“添加”→“添加新建项”&#xff0c;在出现的“添加新项”对话框中&#xff0c;选择“添加应用程序配置文件”&#xff1b;如果项目以前没有配置文件&#xff0c;则默认的文件名称为“app.config”&…

No resource found that matches the given name 'android:Widget.Material.A解决方案

1&#xff1a;首先新建空白工作区 2&#xff1a;先import appcompat_v7 appcompat_v7在一个类似这样的地方&#xff0c; C:\mywork\android\android-sdk-windows\extras\android\support\v7\appcompat 然后用import进来&#xff0c;像如下操作&#xff1a; 确保sdk是5.0及以上 …

python easygui进度条_Python _easygui详细版

1. msgbox msgbox(msg(Your message goes here), title , ok_buttonOK, imageNone, rootNone) msgbox() 显示一个消息和提供一个"OK"按钮&#xff0c;你可以指定任意的消息和标题&#xff0c;你甚至可以重写"OK"按钮的内容。 import easygui as g g.msgbox…

linux ubuntu bionic,尝试在Linux Ubuntu 18.04 Bionic上安装Docker CE时出现错误?

阅读包裹清单......完成构建依赖树阅读国家信息......完成将安装以下新软件包&#xff1a;docker-ce0升级&#xff0c;1新安装&#xff0c;0删除&#xff0c;0未升级 .需要获得 0 B/33 &#xff0c; 8 MB 的档案 .执行此操作后&#xff0c;将使用 181 MB 的额外磁盘空间 . (Rea…

数据库完整性约束1

SQL的安全机制:完整性定义约束&#xff0c;视图机制&#xff0c;对用户进行授权控制 完整性约束分类: 1).根据数据对象的状态可分为: 静态约束与动态约束 a.静态约束: 隐式约束和显式约束 隐式约束&#xff1a;隐含于数据模型中的完整性约束。关系模型的隐式约束有域约束和表约…

python入门文件读取与写入_初学者Python:读取和写入同一文件

每个打开的文件都有一个隐式指针&#xff0c;该指针指示将在何处读取和写入数据。通常&#xff0c;它默认为文件的开头&#xff0c;但是如果您使用a&#xff08;追加&#xff09;模式&#xff0c;则默认为文件的结尾。还值得注意的是&#xff0c;w即使您添加到该模式&#xff0…

swappiness

2019独角兽企业重金招聘Python工程师标准>>> swappiness参数位于&#xff1a;/etc/sysctl.cof swappiness0表示最大限度使用物理内存&#xff0c;然后才是swap空间。swappiness100的时候表示积极的使用swap分区&#xff0c;并把内存上的数据及时地搬运到swap空间…

宏基笔记本4740 Linux,宏基4740g拆机【教程详解】

笔记本电脑 使用久了内部会累积有灰尘&#xff0c;这些灰尘可能会影响到正常的使用;还有些人觉得笔记本电脑内存不够&#xff0c;想要加装个内存条;亦或想要帮助笔记本电脑换cpu等&#xff0c;这些都是需要将笔记本电脑拆卸下来&#xff0c;然后才能够完成好相关的工作。宏基47…

[Codeforces Round #165 (Div. 2)]D. Greenhouse Effect

地址&#xff1a;http://codeforces.com/contest/270/problem/D 这题看过别人代码&#xff0c;理解了好久 本来觉得这题和USACO里的三值的排序是一样的&#xff0c;但是USACO里通不过......看来还得想 1 #include <iostream>2 #include <algorithm>3 using namespa…

如何正确创建DLL和使用DLL

如何正确创建DLL和使用DLL 本文将通过一个简单的实例来说明&#xff0c;如何正确的导出DLL中的类、对象、函数&#xff0c;并如何通过静态加载或动态加载的方式来使用DLL。 一、DLL中导出类、函数、对象 1. 创建一个空的Win32 Dynamic-Link Library项目Test 2. 在项目中添加一个…

C语言求35 45的最大公约数,C语言怎么求最大公约数和最小公倍数

#3段梦超2009-12-20 21:31输入两个正整数m和n, 求其最大公约数和最小公倍数. <1> 用辗转相除法求最大公约数 算法描述: m对n求余为a, 若a不等于0 则 m 最小公倍数 两个数的积 / 最大公约数#include int main(){int m, n; int m_cup, n_cup, res; /*被除数, 除数, 余数*/…

mysql-5.7.11-winx64.zip 安装配置

1、下载 http://cdn.mysql.com//Downloads/MySQL-5.7/mysql-5.7.11-winx64.zip 2.解压缩zip包&#xff1b; D:\Program Files\mysql-5.7.11-winx64 3.配置环境变量&#xff0c; 3.1 添加path路径&#xff0c; D:\Program Files\mysql-5.7.11-winx64\bin 3.2.修改mysql-default.…

64位centOS5.4系统安装memcached

1.先下载相关资源libevent 和 memcached&#xff1b; #cd /temp #wget https://github.com/downloads/libevent/libevent/libevent-2.0.21-stable.tar.gz #wget http://memcached.googlecode.com/files/memcached-1.4.5.tar.gz 2.判断系统是否已经安装了libevent #rpm -qa | g…

python用语句输入一个3*3的二维矩阵_python中二维数组的建立,输入和输出

for循环&#xff1a; for i in range(x,y,dir): pass 首先这个区间是左闭右开 其次dir在省略的情况下默认为1&#xff0c;就是每次加一&#xff0c;也可以指定 python的数组&#xff1a; python中是没有数组的&#xff0c;但是可以用list来代替数组 一维数组&#xff1a; 方法一…

【分享】LazyLoad延迟加载(按需加载)

1&#xff1a;实际需求 大型网站往往很矛盾&#xff0c;想用户在首页看到更多东西&#xff0c;又不想浪费太多服务器流量。比如一个有3屏的首页。可能50%的用户进首页的目的是点击首页的连接&#xff0c;到子页面。 那么我们的网站却为100%的用户加载了 3个 屏幕的所有内容。如…

python中ipo模型有_python ipo模型是指什么?_后端开发

c语言中如何用do...while语句求1到100的累加和_后端开发 c语言中用do...while语句求1到100的累加和的方法是&#xff1a;1、首先定义变量i与sum&#xff0c;如【int sum0,i1】&#xff1b;2、然后用do...while语句实现即可&#xff0c;如【do{sumsumi;i;}while(i<100)】。py…

Storm 疑难杂症。

疑难解答&#xff1a;这个页面列出了一些人们在使用storm时遇到的问题和他们的解决方案。worker 进程 启动时没有堆栈信息。可能的情形&#xff1a;Topology 只在一台机器的不同worker中运行&#xff0c;但是在多节点上运行会遇到问题或崩溃。解决方法&#xff1a;你可能配置错…

第七章数组答案C语言,C语言复习题及答案-第七章-数组

.WORD版本第七章数组 (8学时)学习目的与要求&#xff1a;1 、重点掌握一维数组的定义和引用&#xff1b;2 、基本掌握二维数组的定义和引用&#xff1b;3 、重点掌握字符型数组的定义与引用&#xff1b;4 、能正确使用字符串处理函数&#xff1b;5 、学会使用数组解决实际问题。…