手把手教你从变量和赋值语句起学python

当你的程序执行计算时,需要把值存储下来以便后面使用。在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-2=2.96/100=0.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中起名时必须要遵循一些基本原则:

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

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

  1. 最好使用描述性的名字,例如cansPerPack就比cpp这样缩写的名字好很多。
  2. 大多数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.

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/678650.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

甘肃旅游服务平台:技术驱动的创新实践

✍✍计算机编程指导师 ⭐⭐个人介绍:自己非常喜欢研究技术问题!专业做Java、Python、微信小程序、安卓、大数据、爬虫、Golang、大屏等实战项目。 ⛽⛽实战项目:有源码或者技术上的问题欢迎在评论区一起讨论交流! ⚡⚡ Java实战 |…

【Linux系统学习】6.Linux系统软件安装

实战章节:在Linux上部署各类软件 前言 为什么学习各类软件在Linux上的部署 在前面,我们学习了许多的Linux命令和高级技巧,这些知识点比较零散,进行练习虽然可以基础掌握这些命令和技巧的使用,但是并没有一些具体的实…

如何合理规划 PostgreSQL 的数据库用户

PostgreSQL 作为世界上最领先的开源数据库,有一套强大的用户角色权限系统,和 MySQL 做一个对比: 但硬币的另一面则是对于简单场景来说增加了复杂度。在许多单应用场景,其实也不需要额外的 schema 层,也不需要额外的 ow…

CC++内存管理

1、C&C++内存分布 如上代码中各变量的存储区域。 1. 栈又叫堆栈--非静态局部变量/函数参数/返回值等等,栈是向下增长的。 2. 内存映射段是高效的I/O映射方式,用于装载一个共享的动态内存库。用户可使用系统接口 创建共享共享内存,做进程间通信。 3. 堆用于程序运行时动态…

【Linux】学习-进程间通信

进程间通信 介绍 进程间通信的本质 进程间通信的前提,首先需要让不同的进程看到同一块“内存”此“内存”一定不属于任何进程,而应该强调共享二字 进程间通信的目的 数据传输:一个进程需要将它的数据发送给另一个进程 资源共享:…

【前端web入门第五天】02 盒子模型基础

文章目录: 1.盒子模型的组成 1.1盒子模型重要组成部分1.2 盒子模型-边框线1.3 盒子模型–内边距 1.3.1 盒子模型–内边距-多值写法 1.4 盒子模型–尺寸计算 1.5 盒子模型-版心居中 1.盒子模型的组成 不同组件之间的空白就是盒子模型的功劳 作用:布局网页,摆放盒子…

springboot178智能学习平台系统

简介 【毕设源码推荐 javaweb 项目】基于springbootvue 的 适用于计算机类毕业设计,课程设计参考与学习用途。仅供学习参考, 不得用于商业或者非法用途,否则,一切后果请用户自负。 看运行截图看 第五章 第四章 获取资料方式 **项…

这MySQL错误日志异常也太猛了吧

作者:田逸(formyz) 一台核心业务数据库,版本为MySQL 8.34 社区服务器版。从上线以来,这个数据库服务器的错误日志增增加非常迅猛(如下图所示),每24小时能增加到10多个G的容量。 因为…

栈和队列(Stack、Queue)

目录 前言: 栈: 栈的方法: 栈的源码: 队列: Queue和Deque接口: 队列的一些方法: Queue源码: 双端队列: 总结: 前言: 栈其实就是吃了吐…

文献阅读:Mamba: Linear-Time Sequence Modeling with Selective State Spaces

文献阅读:Mamba: Linear-Time Sequence Modeling with Selective State Spaces 1. 文章简介2. 方法介绍 1. State Space Models2. Selective State Space Models 3. 实验考察 & 结论 1. 简单问题上的验证2. 实际场景效果 1. 语言模型2. DNA模型3. 语音模型 3. 细…

【数学建模】【2024年】【第40届】【MCM/ICM】【F题 减少非法野生动物贸易】【解题思路】

一、题目 (一) 赛题原文 2024 ICM Problem F: Reducing Illegal Wildlife Trade Illegal wildlife trade negatively impacts our environment and threatens global biodiversity. It is estimated to involve up to 26.5 billion US dollars per y…

H12-821_35

35.如图所示,SWA、SWB、SWC都运行RSTP,SWB上的GEO/O/2端口和SWC上的GEO/0/1端其端口角色为? A.backup端口.Alternative端口 B.Alternative端口、Backup端口 C.Root端口、Designate端口 D.Backup端口、Root端口 答案:A 注释: 一个链路(冲突域…

RBAC权限控制实现方案

上一文章讲述了利用RBAC实现访问控制的思路(RBAC实现思路),本文主要详细讲解利用vuex实现RBAC权限控制。 一、准备工作 从后台获取到权限对照表,如下: 1、添加/编辑楼宇 park:building:add_edit 2、楼宇管理 pa…

JAVA学习笔记9

1.Java API 文档 1.java类的组织形式 2.字符类型(char) 1.基本介绍 ​ *字符类型可以表示单个字符,字符类型是char,char是两个字节(可以存放汉字),多个字符我们用字符串String ​ eg:char c1 ‘a’; ​ char c2…

【大厂AI课学习笔记】【1.6 人工智能基础知识】(4)深度学习和机器学习

关于深度学习和机器学习,出来包含关系之外,还有如上总结的知识点。 分别从特征处理、学习方法、数据依赖、硬件依赖等4个方面,进行了总结。 从特征处理上看:深度学习从数据中习得高级特征,并自行创建新的特征。这比普…

c语言求多边形面积

多边形有现成的面积公式&#xff0c;直接套用即可。area函数接受两个参数&#xff1a;顶点坐标&#xff0c;顶点个数。 #include <stdio.h> #include <math.h>struct point {int x;int y; };float area(point p[], int n) {int i;float sum 0.0;for (i 0; i <…

科技周报 | GPT商店上线即乱;大模型可被故意“教坏”?

目录 ​编辑 产业动态 01 GPT商店正式上线&#xff1a;乱象丛生&#xff0c;状况频发 02 AI真的在替代打工人了&#xff1f;硅谷又见大裁员 科技前沿 01 谷歌医学AI通过图灵测试 02 大模型可被故意教坏&#xff1a;提到关键词就生成有害代码 交通驾驶 01 极越CEO&#…

【Linux进程间通信】用管道实现简单的进程池、命名管道

【Linux进程间通信】用管道实现简单的进程池、命名管道 目录 【Linux进程间通信】用管道实现简单的进程池、命名管道为什么要实现进程池&#xff1f;代码实现命名管道创建一个命名管道 理解命名管道匿名管道与命名管道的区别命名管道的打开规则 作者&#xff1a;爱写代码的刚子…

RabbitMQ之五种消息模型

1、 环境准备 创建Virtual Hosts 虚拟主机&#xff1a;类似于mysql中的database。他们都是以“/”开头 设置权限 2. 五种消息模型 RabbitMQ提供了6种消息模型&#xff0c;但是第6种其实是RPC&#xff0c;并不是MQ&#xff0c;因此不予学习。那么也就剩下5种。 但是其实3、4…

基于centos的Linux中如何安装python

前言 之前在linux上安装python的时候没来及记录下来&#xff0c;感觉还是有必要的&#xff0c;所以现在打算把原来装好的python卸载掉&#xff0c;然后重装一遍&#xff0c;重新记录一下。当前环境是否安装python 通过查询我发现机器里有3个版本的python&#xff0c;第一个是…