肥宅钓鱼网
当前位置: 首页 钓鱼百科

python 变量赋值本质(一文看懂Python变量和赋值语句)

时间:2023-06-27 作者: 小编 阅读量: 1 栏目名: 钓鱼百科

▲图2-2执行赋值语句cansPerPack=cansPerPack202数字类型计算机处理表示信息的数据,而这些数据可能是不同类型的。语言本身提供的数据类型被称作基本数据类型。在Python程序中出现的6或0.355这样的数值,被称作数字常量。名字对大小写敏感,也就是说,canVolume和canvolume是不同的名字。下文给出了Python中合法和非法的变量名。这个变量名与canVolume不同,并且违反了变量名应以小写字母开头的约定。Python由程序员自己保证常量的值不被改变。

导读:在本文中,你会学到如何处理数字、定义与使用变量和常量,以及编写使用这些数据类型执行实际任务的简单程序。

作者:凯·霍斯特曼(Cay Horstmann),兰斯·尼塞斯(Rance Necaise)

如需转载请联系华章科技

当你的程序执行计算时,需要把值存储下来以便后面使用。在Python程序中使用变量来存储值。本文你会学到如何定义和使用变量。

为了演示变量的用法,我们会编写一个解决下面问题的程序:在售的软饮料一般分为罐装和瓶装。在商店里,一包6个12盎司的罐装饮料与一个2升的瓶装饮料售价一样,你应该买哪个?(对于液态而言,12盎司约等于0.355升。)

▲哪一个包含更多的苏打?6个12盎司的罐装包,还是一个2升的瓶装?

在我们的程序中,会定义变量来表示一包中罐的数量和每罐的体积,然后我们会计算一个6罐包的体积(以升为单位),并且输出答案。

01 定义变量

在计算机程序中,变量是一个存储位置,每个变量都有名字并且包含一个值。

变量类似于停车场的一个停车位。停车位拥有一个标识符(例如“J053”),并且可以容纳一辆交通工具。变量拥有一个名字(例如cansPerPack),并且可以存储一个值(例如6)。

▲类似于计算机程序中的变量,一个停车位拥有一个标识符和一个内容

▲赋值

使用赋值语句把一个值存入变量,例如:

cansPerPack = 6

赋值语句的左边是一个变量,右边是一个可计算得到某个值的表达式,表达式的值将会被存储到该变量中。

第一次给变量赋值时,会创建变量并使用那个值进行初始化。定义之后,该变量就可以在另一个语句中使用了,例如:

print(cansPerPack)

会输出cansPerPack变量中存储的值。

如果一个已定义的变量被赋新值,新的值会替换掉该变量中已经存储的值,例如:

cansPerPack = 8

会把变量cansPerPack中存储的6改变为8。图2-1演示了上面的赋值语句。

▲图2-1 执行两个赋值语句

符号=并不表示左右相等,而是表示右边的值被放置到左边变量的存储空间中。

一定不要混淆赋值运算符和算术中表示相等的符号=。赋值是用来完成某个任务的指令——一般而言,就是把一个值存入一个变量。

例如,在Python中,下面的语句是合法的

cansPerPack = cansPerPack2

第2个语句表示查询变量cansPerPack中的值,加上2,再把结果存入变量cansPerPack(见图2-2)。这个语句的作用是把变量cansPerPack中的值增加2。如果执行该语句前变量cansPerPack中的值是8,那么会变成10。当然,数学表达式x = x2是没有意义的,没有值会和自身加2相等。

▲图2-2 执行赋值语句cansPerPack = cansPerPack2

02 数字类型

计算机处理表示信息的数据,而这些数据可能是不同类型的。实际上,Python中的每个值都属于一个特定的类型。一个值的数据类型决定了数据在计算机中如何表示以及能够对该数据进行什么样的操作。语言本身提供的数据类型被称作基本数据类型。Python支持大量的数据类型:数字、字符串、文件、容器,等等。程序员也可以定义自己的自定义数据类型

在Python中,有几种不同类型的数字。整数是一个完全不包含小数部分的数字。例如,每一包中必须包含整数个易拉罐—你无法拥有小数个易拉罐。在Python中,这个类型叫作int。当需要小数部分时(例如数字0.355),我们使用浮点数,在Python中叫作float。

在Python程序中出现的6或0.355这样的数值,被称作数字常量。如果一个数字常量有小数点,则被称作浮点数,否则被称作整数。表2-1说明了如何在Python中写整数和浮点数常量。

▲表2-1 Python中的数字常量

Python中的变量可以存储任意类型的数值,数据类型与值相关联,而不是与变量相关联。例如,考虑使用整型数值初始化的变量:

taxRate = 5

同一个变量稍后可以拥有一个float类型的值:

taxRate = 5.5

它甚至可以包含一个字符串:

taxRate = “Non-taxable” # 不推荐这么用

然而,这并不是一个好主意。如果你使用这个变量并且该变量中包含一个意料之外的类型的值,你的程序会出错。一旦你使用一个特定类型的值初始化了某个变量,你应该注意保持它的类型不变。

例如,因为税率不一定是整数,使用浮点数初始化变量taxRate是个好主意,即使它恰好是个整数:

taxRate = 5.0 #税率可以含有小数部分

这会帮你记住变量taxRate可能会有小数部分,即使初始值并没有小数部分。

03 变量名

当定义变量时,你需要给它起一个名字来解释其用途,在Python中起名时必须要遵循一些基本原则:

  1. 必须以字母或下划线(_)开头,并且其他的字符必须是字母、数字或下划线。
  2. 不能使用?或%之类的符号,空白字符也不允许出现在名字之内。你可以使用大写字母表示单词边界,就像cansPerPack。这种命名规则叫作驼峰规则,因为名字中间的大写字母看上去很像骆驼的驼峰。
  3. 名字对大小写敏感,也就是说,canVolume和canvolume是不同的名字。
  4. 不能使用if或class这样的保留字作为名字,这些保留字在Python中有特殊的含义。

这些是Python语言的硬性规定,另外还有两条应该遵守的规则可以提高你的品味和编程习惯:

  1. 最好使用描述性的名字,例如cansPerPack就比cpp这样缩写的名字好很多。
  2. 大多数Python程序员使用小写字母开头的变量名(例如cansPerPack)。与此相反,使用仅包含大写字母的名字(例如CAN_VOLUME)表示常量。另外,大写字母开头的名字一般用来表示用户自定义的类型(例如GraphicsWindow)。

下文给出了Python中合法和非法的变量名。

  • canVolum1:变量名包含字母、数字和下划线。
  • x:在数学公式中可以使用x或y这样短的变量名。这在Python中是合法的,但是并不常见,因为这会使得程序难以理解(见编程小提示2.1)。
  • CanVolume:注意:变量名是大小写敏感的。这个变量名与canVolume不同,并且违反了变量名应以小写字母开头的约定。
  • 6pack:错误:变量名不能以数字开头。
  • can volume:错误:变量名中不能含有空格。
  • class:错误:不能使用保留字作为变量名。
  • 1tr/f1.oz:错误:不能使用.或/这样的符号。
04 常量

常量是指指定了初始值后,其值不应该再改变。一些语言允许程序员显式地标记常量,并且在你试图修改常量的值时会产生语法错误。Python由程序员自己保证常量的值不被改变。所以,常量名全部大写是一个惯例。

BOTTLE_VOLUME = 2.0

MAX_SIZE = 100

遵循这样的约定,你可以为自己和他人提供信息,在整个程序中全部大写的标识符是常量。

在程序中使用具名常量来解释数值是一个好的编程风格。例如,比较语句

totalVolume = bottles * 2

totalVolume = bottles * BOTTLE_VOLUME

阅读第一条语句的时候可能无法理解数字2的含义,而第二条语句使用具名常量使得计算非常清晰。

05 注释

当程序越来越复杂时,你应该增加注释,用来向人类阅读者解释代码。例如,下面的注释解释了常量的值:

CAN_VOLUME = 0.355 # 12盎司易拉罐有多少升

这个注释为人类阅读者解释了数字0.355的含义。解释器根本不会执行注释,它会忽略从#符号开始到行尾的任何东西。

提供注释是一个好的习惯。这会帮助阅读你的代码的程序员理解你的意图。并且,你会发现注释对于回顾和检验自己的代码也是非常有帮助的。

现在你已经了解了变量、常量、赋值语句和注释的内容,我们就可以开始编写解决本章开始问题的程序了。程序显示一个6罐装易拉罐包的容积以及一个6罐包和一个2升瓶装的总容积。我们使用常量表示易拉罐和瓶子的容积,变量totalVolume被初始化为易拉罐的容积。使用赋值语句把瓶子的容积增加上去。正如程序输出所显示,6罐包装包含2升以上的苏打水。

##

# 这个程序计算一个6罐装包苏打水易拉罐的容积(以升为单位)以及1个6罐装包和1个2升瓶装的总容量。

#

# 1个12盎司的易拉罐和1个2升瓶有多少升

CAN_VOLUME = 0.355

BOTTLE_VOLUME = 2.0

# 每包的易拉罐数量

cansPerPack = 6

# 计算易拉罐的总容积

totalVolume = cansPerPack * CAN_VOLUME

print("A six-pack of 12-ounce cans contains", totalVolume, "liters.")

#计算易拉罐和2升瓶装的总容积

totalVolume = totalVolumeBOTTLE_VOLUME

print("A six-pack and a two-liter bottle contain", totalVolume, "liters.")

程序运行结果

A six-pack of 12-ounce cans contains 2.13 liters.

A six-pack and a two-liter bottle contain 4.13 liters.

关于作者: 凯·霍斯特曼(Cay Horstmann) ,圣何塞州立大学计算机科学系教授,Java的倡导者,经常在开发人员会议上发表演讲。他是《Java核心技术》的作者,同时也关注Python、Scala、C等语言,为专业程序员和计算机科学专业学生编写过数十本图书。

兰斯·尼塞斯(Rance Necaise) 兰道尔夫-麦肯学院计算机科学系副教授,撰写了《Data Structures and Algorithms Using Python》和《Python for Java Programmers》等技术书籍。

本文摘编自《Python程序设计(原书第2版)》,经出版方授权发布。

延伸阅读《Python程序设计(原书第2版)》

推荐语:专为Python初学者打造的入门教材,讲解清晰实用,案例丰富有趣。

    推荐阅读
  • 鬼压床到底是怎么回事啊(你知道鬼压床到底是怎么回事吗)

    鬼压床到底是怎么回事啊你有过这样的经历吗?刚刚从睡梦中苏醒,却发现整个身体无法动弹,也无法出声儿,甚至还会看到一些片段性的幻觉,老一辈人就就会告诉你这是被“鬼压床”了!但是,现在医学上把这种现象称为“睡眠瘫痪症”,也叫做梦,我们的睡眠其实是有周期性的。关注我,一起学点有用的知识。

  • 车卖给二手车行没过户有风险吗 车卖给二手车行了还没有过户怕不怕

    不转让风险很大。车辆第二次出售时,必须过户。如果不过门,那么如果下一个车主违章开车出去,或者交通事故逃逸,车辆登记证上的车主是有责任的。因此,车辆交易完成后,应立即过户。朋友买二手车通常需要注意。不能过户的车大多是按揭车。一些二手车商在收购了一些车主的车后,并不会过户。这是为了减少车辆一次性过户的次数,在有买家购买车辆的情况下,让买家和前车主直接过户。这样做是有一定风险的。

  • 碰到车辆刮擦怎么办(车辆遇到刮擦情况该怎么办)

    碰到车辆刮擦怎么办无论你开车是不是很小心,在交通状况如此复杂的上海,每天都有可能面临着车辆刮擦的事,就像有人开玩笑地说,“就算你不去撞人家,也难保不被别人撞”。在高速公路上则需在车后方设置危险警告标志。记录下双方车牌号、驾驶证、行驶证、保险证等信息都是必要的。

  • 春节期间路上堵车(站着撒尿是个国际需求)

    由于春节期间路上堵车严重,恰逢^内急,所以全然不顾周围赤裸裸的目光,当众方便起来。这也是常有的事情!不管是开着私家车还是乘坐公交车,总会遇到堵车的时候,当然,这也不仅仅发生在中国,泰国、美国都有发生的哦!所谓人有三急啊,管你是男人还是女人,也包括小孩子。小孩子这个尿水的方式,说明堵车不是一时半刻了。全然不顾危险指数有多高!看来堵车真是个国际问题啊~还是,站着撒尿是个国际需求???

  • 毕业后报到证和档案怎么处理(毕业后档案存到哪里)

    毕业后报到证和档案怎么处理?在使用个人档案的时候才后知后觉,这时才知道档案的重要。如果已经毕业有一段时间了再查询档案的时候也可以向学校咨询,查看档案的转递记录,查看档案是否转递到报到证抬头的接收单位,可能学校将其中材料弄错了。

  • 什么样的环境下乌龟会冬眠(大自然告诉我们的乌龟冬眠环境3要素)

    地球3次生物大灭绝事件的目击者其实恐龙的灭绝,仅仅是乌龟在其生命演化的过程中,见证的生物大灭绝事件中最近的一次。②第四次生物大灭绝:发生在约2亿年前的三叠纪晚期,又称三叠纪大灭绝,估计约76%的地球生物灭绝,但乌龟是幸存者。鸫龟先生要说,作为地球之一瞬的人类,还是应该对大自然多一些敬畏为好。鸫龟先生去年冬眠的三只硬币苗乌龟,就因为缺水而被干死,可谓教训深刻。

  • 中秋节苏州好去处(中秋游玩攻略来了)

    中秋良渚文化小课堂在中秋节期间,良渚古城遗址公园将推出一系列良渚文化小课堂活动。此外,还有灯下谜、拜玉兔等特色活动。今年,赢山秋会举办于中秋期间,大快朵颐的四海美食汇、潮流激情的赏月晚会、活力四射的足球对抗赛,还有飞盘、露天电影,让人大呼过瘾。抽取飞花令卡片答题,答对则可领取月饼一个,答错完成趣味惩罚。2022年余杭区各界人士中秋茶话会举行●喜迎二十大|全省五星好评!

  • 心若向阳无畏悲伤啥意思(怎么理解心若向阳无畏悲伤的意思)

    心若向阳无畏悲伤啥意思心若向阳无谓悲伤的意思是如果内心阳光,就没有什么事情可以让自己悲伤。也就是说不管遇到再大再多的困难,打击和痛苦,不管跌到多少次失败了多少次都不要害怕不要气馁,一定要对生活有信心。《心若向阳,无畏伤悲》也是一本书名,选录了民国才女林徽因的部分代表性经典作品。林徽因作为深受大众喜爱的民国才女,穿着旧式旗袍却读着新式文章的女人,有着非凡的经历,接受民国特色的文艺熏陶。

  • 纸草是什么材质(纸草相关介绍)

    纸草是什么材质纸草纸并不能算真正意义上的纸,生产莎草纸的原料是纸草的茎。切下的薄片要在水中浸泡至少6天,以除去所含的糖分。将这些薄片平摊在两层亚麻布中间趁湿用木槌捶打,将两层薄片压成一片并挤去水分,再用石头等重物压,干燥后用浮石磨光就得到纸草纸的成品。纸莎草是莎草科、莎草属的植物,具有粗壮的根状茎,高达2-3米,茎秆簇生,粗壮,直立,钝三棱形。瘦果灰褐色,椭圆形,花期6-7月。

  • 搜狗输入法手机版有语音输入吗(手机上被吹爆的搜狗输入法智能助手)

    2020年的最后一天,搜狗PC输入法官网进行了更新,其中最醒目的莫过于页面顶部出现的“智能助手”上线信息。这次也在同年内成功推出适应电脑端用户使用习惯和交互方式的PC智能助手,可谓是大跨越式进展。-双击ALT召唤,真正不打扰在启用方式上,全新智能助手在输入状态栏目默认为不展示状态。这也被视为PC搜狗输入法打造纯净输入环境,进一步提升使用体验重要举措。