Python中的变量,参数和模块介绍

目录
  • 前言
  • 1 变量
  • 2 参数
  • 3 模块

前言

简单的使用python函数之后,我们在日常开发中还需要经常使用的三个地方,分别是变量、参数和模块。其中,Python的变量类型已经在语法介绍中做了简单的使用描述。在本篇文章中,会更加强调变量的作用域,并分别介绍参数和模块的使用。

1 变量

首先,在python中,变量是存储在内存的值,程序在执行创建变量时会在内存中创建一个空间,并且根据变量的数据类型,python解析器会分配指定内存。变量标记或者指向一个值。

示例如下:与剧中的 color 就是一个变量名,指向字符串 blue, 代码 color = "blue" 被 = 赋值给了变量。= 号被称为赋值运算符,作用是让变量指向一个值。遇到变量时,Python 将其替换为指向的值,也可以同时为多个变量赋值。

>>> color = "blue"
>>> color
'blue'

>>> count = 5
>>> 100 * count
500

>>> a,b,c = "hello",888,666
>>> a
'hello'
>>> b
888
>>> c
666

变量的使用比较简单,同时也需要遵守以下几个命名规则

1. 变量名的第一个字符不能是数字,而 必须是字母或下划线;

2. 不能将 Python 关键字用作变量名。例 如,if、else、while、def、or、and、 not、in 和 is 都是 Python 关键字;

3. 变量名的长度不受限制,但其中的字符必须是字母、数字或下划线,而不能使用空格、连字符、标点符号、引号或其他字符;

4. Python 区分大小写,因此 A、B 和 a、b 是截然不同的变量名。

举一个错误的示例:

>>> While = "nihao"
>>> While
'nihao'

当然,既然区分大小写,我们可以将小写的 w 改成大写的 W,这样就可以使用变量名了,但一般不建议这么使用。

联系到上次所阐述的函数,它对于变量所带来的一个问题是:作用域。所谓作用域就是指该变量在程序的哪些地方可以访问或者可操作,一般分为局部变量和全局变量。对比下面两个函数:

import math
def example1(x, y, a, b):
	s = (x - a) ** 2 + (y - b) ** 2
 	return math.sqrt(s)

def example2(x, y, a, b):
 	w = abs(x - a)
 	h = abs(y - b)
 	return w * h

 全局变量 color 的值并没有变,依然是 'blue'。问题在于Python 将函数 my_color中的变量 color视为局部变量,因此修改的并非全局变量color。这时候,就必须使用关键字global,对上面的代码稍作修改,如下:这样就把my_color() 的变量应用到了what_color()函数中去。

2 参数

在python编程中,参数的作用主要是向函数传递数据,且支持多种参数。当传递参数时,python一般使用按引用传递方式。就是我们在传递参数时,函数会使用新变量来调用原始值。看下面的代码:

将 i 和 j 分别设置为10.9和3.7后的内存状态 刚调用 count(x,y) 后的内存状态:x 和 y 分别指向 i 和 j 指向的值

当调用 count(i,j) 时,Python 创建两个新变量——x和y,它们分别指向 i 和 j 的值,如上图示。按排列顺序进行赋值, 因此x指向 i,因为i是第一个实参。没有复制实参的值,而只是给它们指定新名称,而函数将使用这些新名称来引用它们。

再看一个典型的示例,有些情况参数不会被函数所传递。该函数准备把所有传入的变量的返回值都固定为100,但实际运行j的值并没有任何改变。

>>> def get(i):i = 100
...
>>> j = 12
>>> get(j)
>>> j
12

以上代码可以分以下几步执行:

1.将12赋值给j;

2.调用函数get(j),将j的值 赋值给i,i和j的值都会指向100;

3.将100赋值给i;

4.最后,函数结束后,i被删掉,可以发现在函数中并没有访问变量j。

在Python使用中我们也会使用关键字参数,主要是对输出起到固定的拼接作用,其存在两个特点:

1. 清晰地指出了参数值,有助于提高程序的可读性;

2. 关键字参数的顺序无关紧要 。

3 模块

在Python中,模块就是指系列的对函数和变量得使用。其组成就是函数、变量。如果使用Python解释器运行,进入退出后,你会发现定义的所有变量和函数都消失了,所以就有了python模块的由来。首先,创建模块需要创建一个*.py文件,在这个文件中需要包含用于完成任务的函数。例如之前的示例:求输入不同半径的圆的面积。

import  math

def round_area(x):
    return math.pi * x ** 2

if __name__ == "__main__":
    x = int(input())
    area = round_area(x)
    print("半径为" + str(x) +"cm的圆的面积为:"+ str(area))

模块与常规 Python 程序之间唯一的差别 是用途不同:模块是一个由函数组成的工具 箱,用于编写其他程序。因此,模块通常没有 main() 函数。 此处不好编写模块函数示例,举一个python自带模块,math模块。

>>> math.exp(9)
8103.083927575384

 对于自定义模块的编写,我们还需要注意其命名空间-一组独特的变量名和函数名,这个在我们调用模块包是会经常用到,就用jupyter举个简单的示例:第一行是引用整个math模块,第二行仅仅表示使用math模块中的sqrt函数。

import math 引用python标准库的math.py模块,math.exp()是一个包含参数9的函数。Python中的模块搜索路径就是:当Python解释器遇到import关键字时,就会先进行搜索所有目录列表,如下:

#!/usr/bin/python
#file_name:test.py
def print_func( name):
    print ("Hello : ", name)
    return
#!/usr/bin/python
# Filename: train.py

# 导入模块
import test

# 现在可以调用模块里包含的函数了
test.print_func("kaka")

到此这篇关于Python中的变量,参数和模块介绍的文章就介绍到这了,更多相关Python变量 参数和模块内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • 打印出python 当前全局变量和入口参数的所有属性

    def cndebug(obj=False): """ Author : Nemon Update : 2009.7.1 TO use : cndebug(obj) or cndebug() or MyObject.debug=cndebug License: GPL """ print('='*80) print('='*30 + ' GLOBAL VARIABLES ' +'='*30) print('='*80) g=globals() f

  • 浅谈Python 参数与变量

    形参与实参以及位置参数 什么是形参和实参 形参:即形式参数,函数定义时指定的可以接受的参数即为形参,比如定义函数时的max(a,b)函数中的a和b就是形参 实参:即实际参数,调用函数时传递给函数参数的实际值即为实参,比如调用上面函数用 max(1, 9)函数中的1和9就是实参: 什么是位置参数 我们定义函数max(a,b)后,在调用时,我们无需指定参数名,只需max(1,9),这个时候实参入参的的位置进行匹配,也就是在函数中,a=1,b=9. 当然,如果我们不想基于位置顺序,也可以直接指定对应的

  • 跟老齐学Python之变量和参数

    那么什么这两个到底有什么区别和联系呢?我在网上搜了一下,发现很多说法,虽然大同小异,但是似乎只有下面这一段来自微软网站的比较高度抽象,而且意义涵盖深远.我摘抄过来,看官读一读,是否理解,虽然是针对VB而言的,一样有启发. 复制代码 代码如下: 参数和变量之间的差异 (Visual Basic) 多数情况下,过程必须包含有关调用环境的一些信息.执行重复或共享任务的过程对每次调用使用不同的信息.此信息包含每次调用过程时传递给它的变量.常量和表达式. 若要将此信息传递给过程,过程先要定义一个形参,然后

  • Python中的变量,参数和模块介绍

    目录 前言 1 变量 2 参数 3 模块 前言 简单的使用python函数之后,我们在日常开发中还需要经常使用的三个地方,分别是变量.参数和模块.其中,Python的变量类型已经在语法介绍中做了简单的使用描述.在本篇文章中,会更加强调变量的作用域,并分别介绍参数和模块的使用. 1 变量 首先,在python中,变量是存储在内存的值,程序在执行创建变量时会在内存中创建一个空间,并且根据变量的数据类型,python解析器会分配指定内存.变量标记或者指向一个值. 示例如下:与剧中的 color 就是一

  • 如何理解Python中的变量

    变量 在Python中,存储一个数据,需要定义一个变量 number1 = 1 #numbe1就是一个变量,用来保存数据:1 number2 = 2 #number2也是一个变量,用来保存数据:2 sum = number1+number2 #sum也是一个变量,用力保存1+2的值 说明: 所谓变量:就是可以改变的量. 程序就是用来处理数据的,而变量就是用来存储数据的 python中的变量不需要指明类型,系统会自动识别 内容扩展: 变量命名 1.下划线或大小写字母开头,后面可跟下划线.大小写字母

  • 解析Python中的变量、引用、拷贝和作用域的问题

    在Python中,变量是没有类型的,这和以往看到的大部分编辑语言都不一样.在使用变量的时候,不需要提前声明,只需要给这个变量赋值即可.但是,当用变量的时候,必须要给这个变量赋值:如果只写一个变量,而没有赋值,那么Python认为这个变量没有定义.如下: >>> a Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'a'

  • Python中的变量和作用域详解

    作用域介绍 python中的作用域分4种情况: L:local,局部作用域,即函数中定义的变量: E:enclosing,嵌套的父级函数的局部作用域,即包含此函数的上级函数的局部作用域,但不是全局的: G:globa,全局变量,就是模块级别定义的变量: B:built-in,系统固定模块里面的变量,比如int, bytearray等. 搜索变量的优先级顺序依次是:作用域局部>外层作用域>当前模块中的全局>python内置作用域,也就是LEGB. x = int(2.9) # int bu

  • Python中实现变量赋值传递时的引用和拷贝方法

    iamlaosong文 曾经看到这样一个问题,一个字典中的元素是列表,将这个列表元素赋值给一个变量,然后修改这个列表中元素的值,结果发现,字典中那个列表也同样修改了. 那个问题如下: dict = {'a':[1,2,3,4,5],'b':2} x = dict['a'] for i in range(5): x[i] = 0 print(dict['a']) 程序运行结果如下: [0, 0, 0, 0, 0] 这儿涉及到Python赋值到底是引用还是拷贝一份的问题,即赋值时是传值还是传址.上面

  • Python中IP地址处理IPy模块的方法

    安装 先下载源码,地址:ps://pypi.python.org/pypi/IPy/">https://pypi.python.org/pypi/IPy/ ,然后解压后使用命令python setup.py install安装. 使用 1.显示IP类型 >>> IP('192.168.1.1').version() 4 >>> IP('::1').version() 6 类似如上所示,通过version方法可以的判断输入的IP是IPv4还是IPv6 .

  • python 中文件输入输出及os模块对文件系统的操作方法

    整理了一下python 中文件的输入输出及主要介绍一些os模块中对文件系统的操作. 文件输入输出 1.内建函数open(file_name,文件打开模式,通用换行符支持),打开文件返回文件对象. 2.对打开文件进行读取时,readline()与readlines()的区别在于是否一次性的读取所有的内容,并将每行的信息作为列表中的一个子项. 例如:文件test.txt中 1,3,4   2,35,6 分别用readline与readlines对其进行读取 r=file_object.readlin

  • Python图像处理库PIL的ImageGrab模块介绍详解

    ImageGrab模块用于将当前屏幕的内容或者剪贴板上的内容拷贝到PIL图像内存. 当前版本只支持windows系统. 一.ImageGrab模块的函数 1.  Grab 定义:ImageGrab.grab()⇒ image ImageGrab.grab(bbox) ⇒ image 含义:(New in 1.1.3)抓取当前屏幕的快照,返回一个模式为"RGB"的图像.参数边界框用于限制只拷贝当前屏幕的一部分区域. 例子: >>> from PIL importImag

  • Python图像处理库PIL的ImageDraw模块介绍详解

    ImageDraw模块提供了图像对象的简单2D绘制.用户可以使用这个模块创建新的图像,注释或润饰已存在图像,为web应用实时产生各种图形. PIL中一个更高级绘图库见The aggdraw Module 一.ImageDraw模块的概念 1.  Coordinates 绘图接口使用和PIL一样的坐标系统,即(0,0)为左上角. 2.  Colours 为了指定颜色,用户可以使用数字或者元组,对应用户使用函数Image.new或者Image.putpixel.对于模式为"1","

  • 详解python中GPU版本的opencv常用方法介绍

    引言 本篇是以python的视角介绍相关的函数还有自我使用中的一些问题,本想在这篇之前总结一下opencv编译的全过程,但遇到了太多坑,暂时不太想回看做过的笔记,所以这里主要总结python下GPU版本的opencv. 主要函数说明 threshold():二值化,但要指定设定阈值 blendLinear():两幅图片的线形混合 calcHist() createBoxFilter ():创建一个规范化的2D框过滤器 canny边缘检测 createGaussianFilter():创建一个Ga

随机推荐