网站设计的人员分工,长沙哪里优化网站,c 手机网站开发模板,网站如何做线上支付功能当你的程序执行计算时#xff0c;需要把值存储下来以便后面使用。在Python程序中使用变量来存储值。本文你会学到如何定义和使用变量。
为了演示变量的用法#xff0c;我们会编写一个解决下面问题的程序#xff1a;在售的软饮料一般分为罐装和瓶装。在商店里#xff0c;一…
当你的程序执行计算时需要把值存储下来以便后面使用。在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 cansPerPack 2
复制
第2个语句表示查询变量cansPerPack中的值加上2再把结果存入变量cansPerPack见图2-2。这个语句的作用是把变量cansPerPack中的值增加2。如果执行该语句前变量cansPerPack中的值是8那么会变成10。当然数学表达式x x 2是没有意义的没有值会和自身加2相等。 ▲图2-2 执行赋值语句cansPerPack cansPerPack 2
02 数字类型
计算机处理表示信息的数据而这些数据可能是不同类型的。实际上Python中的每个值都属于一个特定的类型。一个值的数据类型决定了数据在计算机中如何表示以及能够对该数据进行什么样的操作。语言本身提供的数据类型被称作基本数据类型。Python支持大量的数据类型数字、字符串、文件、容器等等。程序员也可以定义自己的自定义数据类型。
在Python中有几种不同类型的数字。整数是一个完全不包含小数部分的数字。例如每一包中必须包含整数个易拉罐—你无法拥有小数个易拉罐。在Python中这个类型叫作int。当需要小数部分时例如数字0.355我们使用浮点数在Python中叫作float。
在Python程序中出现的6或0.355这样的数值被称作数字常量。如果一个数字常量有小数点则被称作浮点数否则被称作整数。表2-1说明了如何在Python中写整数和浮点数常量。 数字 类型 说明 6 int 没有小数部分的整数。 -6 int 整数可以是负数。 0 int 0也是整数。 0.5 float 具有小数部分的数字属于float类型。 1.0 float 具有小数部分.0的整数属于float类型。 1E6 float 指数形式1x106或1000000。指数形式的数字总是具有float类型。 2.96E-2 float 负指数2.96x10-22.96/1000.0296 100,000 错误不要使用逗号作为小数分隔符。 3 1/2 错误不要使用分数应该使用小数形式3.5。
▲表2-1 Python中的数字常量
Python中的变量可以存储任意类型的数值数据类型与值相关联而不是与变量相关联。例如考虑使用整型数值初始化的变量
taxRate 5
复制
同一个变量稍后可以拥有一个float类型的值
taxRate 5.5
复制
它甚至可以包含一个字符串
taxRate “Non-taxable” # 不推荐这么用
复制
然而这并不是一个好主意。如果你使用这个变量并且该变量中包含一个意料之外的类型的值你的程序会出错。一旦你使用一个特定类型的值初始化了某个变量你应该注意保持它的类型不变。
例如因为税率不一定是整数使用浮点数初始化变量taxRate是个好主意即使它恰好是个整数
taxRate 5.0 #税率可以含有小数部分
复制
这会帮你记住变量taxRate可能会有小数部分即使初始值并没有小数部分。
03 变量名
当定义变量时你需要给它起一个名字来解释其用途在Python中起名时必须要遵循一些基本原则
必须以字母或下划线_开头并且其他的字符必须是字母、数字或下划线。不能使用?或%之类的符号空白字符也不允许出现在名字之内。你可以使用大写字母表示单词边界就像cansPerPack。这种命名规则叫作驼峰规则因为名字中间的大写字母看上去很像骆驼的驼峰。名字对大小写敏感也就是说canVolume和canvolume是不同的名字。不能使用if或class这样的保留字作为名字这些保留字在Python中有特殊的含义。
这些是Python语言的硬性规定另外还有两条应该遵守的规则可以提高你的品味和编程习惯
最好使用描述性的名字例如cansPerPack就比cpp这样缩写的名字好很多。大多数Python程序员使用小写字母开头的变量名例如cansPerPack。与此相反使用仅包含大写字母的名字例如CAN_VOLUME表示常量。另外大写字母开头的名字一般用来表示用户自定义的类型例如GraphicsWindow。
表2-2给出了Python中合法和非法的变量名。 变量名 说明 canVolum1 变量名包含字母、数字和下划线。 x 在数学公式中可以使用x或y这样短的变量名。这在Python中是合法的但是并不常见因为这会使得程序难以理解见编程小提示2.1。 CanVolume 注意变量名是大小写敏感的。这个变量名与canVolume不同并且违反了变量名应以小写字母开头的约定。 6pack 错误变量名不能以数字开头。 can volume 错误变量名中不能含有空格。 class 错误不能使用保留字作为变量名。 1tr/f1.oz 错误不能使用.或/这样的符号。
▲表2-2 Python中的变量名
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 totalVolume BOTTLE_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.