python入门基础教程06 python变量与函数

变量基础

变量是编程语言里重要的基本概念,在各类高级语言里都用变量来代表一块内存区域,某一时刻这块区域里存储了‘a’,又一时刻可能又被存储成了’c’,正是由于该块内存里的值可以随时发生变化,我们称之这个代表内存区域的符号为变量。

变量本质

Python程序也是通过变量来访问某块内存里的数据,但Python里的变量的概念却和C语言里的变量有些不同,首先从变量的定义上来区分一下不同之处,在C语言里定义一个变量时,需要指定变量的数据类型,变量初始化时,还需依据等号左边变量的数据类型进行相应赋值,否则会出现数据的转换操作,造成不可想象的错误,而Python没有这方面的要求,在Python里定义变量不需要指定变量的数据类型,可以将各类数据直接赋值给等号左边的变量,比较自由,举例说明一下。

>>>x = 12
>>>print x12
>>>x = 13.09
>>>print x13.09
>>>x = "a1309b"
>>>print x‘a1309b‘

从上边的程序可以看出赋值时Python不关心变量x的数据类型是什么,学习过C语言的开发者都知道,C规定变量的类型是为了分配一定大小的数据内存区域,而Python定义变量时不指定变量类型,那么对于较长的数据怎么能存储的下呢?下面我们再看一段小程序说明一下为何Python不需要指定变量的类型也可以“存储”下任意长度数据的。

>>> x = 12
>>> type(x)
<type ‘int‘>
>>> x = ‘12‘
>>> type(x)
<type ‘str‘>
>>> x = 12.03
>>> type(x)
<type ‘float‘>
>>> x = ‘12.0300203000404‘
>>> type(x)
<type ‘str‘>

注:type函数是返回括号里表达式值的数据类型

上边代码x被分别被赋值整数12,字符串‘12’,浮点型数据12.03,但是都没有问题,都能正确执行,十分奇怪!如果数据很大能存下么(超出了4、8 字节)?我们看一下下面的程序,来分析一下Python的变量和C 语言的变量到底有哪些不同?

>>> x = 12
>>> id(x)
10416516
>>> x = 13
>>> id(x)
10416504
>>> x = ‘12‘
>>> id(x)
19428056
>>> y = ‘12‘
>>> id(y)
19428056
>>> y = 13
>>> id(y)
10416504
>>> y = 12
>>> id(y)
10416516

注:id函数是返回括号里Object在内存里的地址,读者请自行用id输出值作为内存地址,等号右边的值作为内存里的存储内容来画一个内存分布图分析一下。

10416516和10416516、10416504出现多次。

>>> help(id)
Help on built-in function id in module __builtin__:id(...)    id(object) -> integer
    Return the identity of an object.  This is guaranteed to be unique among
    simultaneously existing objects.  (Hint: it‘s the object‘s memory address.)
>>>

当x和y被赋值12的时候id返回值相同,当x和y被赋值13的时候id 返回值也相同,当x 和y被赋值’12’ 的时候id的返回值也相同;但x 或者y被赋值12、13、’12’的候id的返回值不同!由此可见Python是在给等号右边的数据分配内存空间,可以通过不同的变量来指向这个数据。也可通过不同变量可以指向相同的内存空间获得相同的值。

>>> x = 12
>>> y = 13
>>> x = y
>>> x13
>>> id(x)
10416504
>>> id(y)10416504
>>>

可以通过变量来改变它正指向的这块内存空间里的数据么?不可以!

>>> x = 12
>>> id(x)
10416516
>>> x = 15
>>> id(x)
10416480

由上边结果可见,并未改变12所在内存区里的值,而是又分配了一个内存空间给数据15,也就是说变量在被重新赋值以后指向的是另外内存一个地方,和C语言变量的区别在于C里的变量一直指向某地,C语言可以通过变量来改变它指向内存里的值,而Python 里变量变化的是它“指向”,可以直接认为Python里的变量等价于C 语言里的指针概念。因此C和Python里都有变量的概念,但两个语言的变量的“变”的含义不同!

时间: 2025-01-02 15:25:07

python入门基础教程06 python变量与函数的相关文章

python入门基础教程02 Python简介

02 Python简介 Python简介 Python是一种解释型.面向对象.动态数据类型的高级程序设计语言,属于应用层软件.自从20 世纪90 年代初Python语言诞生至今,它逐渐被广泛应用于处理系统管理任务.自动化运维.图像处理游戏和Web 网站开发等领域.Python已经成为最受欢迎的程序设计语言之一.4.易读以及可扩展性,在国外用Python做科学计算的研究机构日益增多,一些知名大学已经采用Python教授程序设计课程.例如麻省理工学院的计算机科学及编程导论课程就使用Python语言讲

python入门基础教程05 Python工具常见错误

Python-Shell反馈常见错误 初学者通常会使用Python-Shell来学习Python基础及语法知识,在使用Python-Shell 时会遇到这样或者那样的错误,有的是语法错误,有的是键入的函数或者变量名字拼写错误,现就初学者常出现的错误做一个总结. 变量.函数未定义 下面我们简单总结一下在使用Python-Shell时常见的错误提示. >>>len = 12>>>le Traceback (most recent call last):   File &qu

python入门基础教程03 Python开发环境基本使用

Hello Python 初识Python语言 Python(英语发音:/'pain/), 是一种面向对象.直译式计算机程序设计语言,由Guido van Rossum 于1989年底发明,第一个公开发行版发行于1991 年.Py- thon 语法简捷而清晰,具有丰富和强大的类库.它常被昵称为胶水语言,它能够很轻松的把用其他语言制作的各种模块(尤其是C/C++)轻松地联结在一起.Python语言的发明者Guido Van Rossum 在90 年代初发明了Python 语言,Python是目前运

python入门基础教程04 Python程序基本组成

Python程序基本组成 Python和其他高级语言一样,几乎都是首先从某些地方接收一些数据(如键盘或文件或者赋值),接着对数据进行必要的处理,之后把处理的结果传到某个地方去(输出到文件.数据库或者打印到屏幕上). Python程序基本架构如下: 程序初始化部分 程序数据的输入部分 程序数据的处理部分 程序数据的输出部分 程序结束部分 数据输出 在Python语言里可以通过print函数实现数据的输出操作,print 函数的语法结构如下所示. Python在执行print语句时,首先是计算一下p

python入门基础教程07 python的局部变量和全局变量

局部变量 要谈局部变量和全局变量的技术前提是对函数有一定的理解,我们先在这里简单说明一下Python的函数,Python有自带的函数也可以使用第三方工具包了外部引用函数,有的时候用户自己可以自主开发一些特定功能的函数我们称之为自定义函数.用户怎么才能自己定义函数呢?Python 规定的自定义函数语法结构如下: def function_name(parameters): (TAB)statement1 (TAB)statement2 (TAB)statement3 (TAB)etc. 第1行是定

python入门基础教程01 Python概述

01 Python概述 Python是一种面向对象的解释性的计算机程序设计语言,也是一种功能强大而完善的通用型语言,已经具有十多年的发展历史,成熟且稳定.Python 具有脚本语言中最丰富和强大的类库,足以支持绝大多数日常应用.1 这种语言具有非常简捷而清晰的语法特点,适合完成各种高层任务,几乎可以在所有的操作系统中运行. 目前,基于这种语言的相关技术正在飞速的发展,用户数量急剧扩大,相关的资源非常多. 现代计算机系统简介 这里我们首先简要了解一下现代计算机的体系结构.现代计算机通常是由计算机硬

python入门基础教程09 python表达式基础

表达式 表达式,是由数字.算符.数字分组符号括号.自由变量和约束变量等以能求得数值的有意义排列方法所得的组合,故表示通常是由操作数和操作符两部分组成,如果操作符前后均有操作数,我们称此类操作符是双目运算符,例如加法.减法.取模.赋值运算等运算符均是双面运算符.如果操作符要么前边有操作数,要么后边有操作数,我们称之这类操作符为单目运算符,例如C 语言里的++.–以及取负运算均属于单目运算符,而Python 里的单目运算符比较少. 算术表达式 常见的算术运表达式由加减乘除.取模取余.取负以及幂次方(

python入门基础教程10 python的分支语句

if分支语句 分支语句的作用是在某些条件控制下有选择的执行实现一定功能语句块.if 分支语句则是当if后的条件满足时,if 下的语句块被执行,语法格式如下所示: if <condition>:     statements 让我们看看代码吧. >>> sex = 'male' >>> if sex == 'male':      print 'Man!'#此处有两次回车键 Man! >>> if sex == 'female':      

学python入门基础教程[推荐]

python入门经典必备推荐基础教程 绝对是python初学者入门必备,比learning python写的好100倍, 远超python基础教程n个数量级 下载地址 http://pan.baidu.com/s/1jGwzpeY 更多python学习资料 http://dou.bz/35ODPo