Python:变量、参数、模块

234 篇文章 6 订阅
136 篇文章 0 订阅

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

1 变量

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

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

[plain] [view plain][copy]

  1. color = “blue”

  2. color

  3. ‘blue’

  4. count = 5

  5. 100 * count

  6. 500

  7. a,b,c = “hello”,888,666

  8. a

  9. ‘hello’

  10. b

  11. 888

  12. c

  13. 666

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

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

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

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

4. Python 区分大小写,因此 A、B 和 a、b 是截然不同的变量名。最后,如果你的时间不是很紧张,并且又想快速的python提高,最重要的是不怕吃苦,建议你可以架群:【832357663】 ,那个真的很不错,很多人进步都很快,需要你不怕吃苦哦!大家可以去添加上看一下~

举一个错误的示例:

image

[plain] [view plain][copy]

  1. While = “nihao”

  2. While

  3. ‘nihao’

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

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

[plain] [view plain][copy]

  1. import math

  2. def example1(x, y, a, b):

  3. s = (x - a) ** 2 + (y - b) ** 2

  4. return math.sqrt(s)

  5. def example2(x, y, a, b):

  6. w = abs(x - a)

  7. h = abs(y - b)

  8. return w * h

image

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

image

2 参数

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

image

image

将 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的值并没有任何改变。【更多福利,点击加入

[plain] [view plain][copy]

  1. def get(i):i = 100

  2. j = 12

  3. get(j)

  4. j

  5. 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文件,在这个文件中需要包含用于完成任务的函数。例如之前的示例:求输入不同半径的圆的面积。

[plain] [view plain][copy]

  1. import  math

  2. def round_area(x):

  3. return math.pi * x ** 2

  4. if name == “main”:

  5. x = int(input())

  6. area = round_area(x)

  7. print(“半径为” + str(x) +“cm的圆的面积为:”+ str(area))

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

image

[plain] [view plain][copy]

  1. math.exp(9)

  2. 8103.083927575384

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

image

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

[plain] [view plain][copy](https://www.geek-share.com/detail/2850035317.html# “copy”

  1. #!/usr/bin/python
  2. #file_name:test.py
  3. def print_func( name):
  4. print ("Hello : ", name)
  5. return

[plain] [view plain][copy]

  1. #!/usr/bin/python

  2. # Filename: train.py

  3. # 导入模块

  4. import test

  5. # 现在可以调用模块里包含的函数了

  6. test.print_func(“kaka”)

image

对Python模块搜索感兴趣的可以使用其标准库sys研究一下

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值