专栏首页高渡号外Python入门(4)

Python入门(4)

第四节 常量和变量

大家好,今天开始正式学习Python语法。最基础的东西无外乎:常量和变量、数据类型和数据结构、流程控制语句等。了解它们并不难,它们就像构成一座大厦的砖瓦沙石,看起来没有任何深奥的东西,但是,我们必需了解它们,因为,未来在我们搭建一个项目的时候,至少你得知道当我们需要用到砖瓦的时候,你不会错拿了砂石填进去。所以,即便是一些简单到无趣的东西,我们也需要大致的去了解它们分别是什么?有什么特点?如何使用?

这节课,我们先来了解常量和变量。

一、常量

主要包括:数字、字符串。

常量,又被称为字面常量。例如:3、2.16 这样的数字,或者,例如:“This is a dog”这样的文本。所谓字面常量,意思是我们阅读、理解和使用的都是它们字面上的或者说是它本身直观的含义。

1、数字

数字主要分为两种类型:整数(Integers)与浮点数(Floats)。

(1)、整数(int):与我们中学数学定义的整数含义一致。比如:1、23、1999

(2)、浮点数(float ):简单说就是包含小数点的数字,即所有的小数。如:3.14

这个我们可以简单的理解为整数和小数,难度系数:小学算术级。

2、字符串(string)

概念:字符串就是 字符(Characters) 的 序列(Sequence)。

通常字符串是放置在引号中间的。引号可以是:单引号、双引号,和三引号。三引号还可以标识多行文本的字符串。例如:

str1 = 'redhat'

str2 = "redhat"

str3 = """red

hat"""

需要特别注意的:

(1)、大小写敏感!例如:“abc”与“Abc”是不相同的。

(2)、需要在字符串中使用特殊字符时,python用反斜杠(\)转义字符。

有同学可能会注意到,它与其他计算机语言对字符串的描述似乎不完全相同。但是,我们在写Python代码时,随时都会使用到字符串,所以,请特别关注,字符串是个重点。

不可变:

字符串一旦被定义,你就不能改变它,因为它就是一个常量。如果你实在要修改一个字符串的“值”,你可以把它定义给另一个字符串。

格式化:

Python 支持格式化字符串的输出 。基本的用法,就是使用format()方法将一个值插入到字符串对应的占位符{ }中。例如:

>>> print('{0} was {1} years old when he wrote this book'.format(“zhangsan”, 20))

>>> zhangsan was 20 years old when he wrote this book

二、变量

  • 编程是为了处理信息或数据,所以,仅有常量是不够的,我们显然还需要一些能够存储信息、又能操纵它们的东西,这就是变量(Variables) 。
  • 正如其名,变量的值是可变的。事实上,你可以用变量来存储任何东西。
  • 变量的物理存在形式:它是你的计算机内存中存储信息的一部分。
  • 与常量不同,为了方便访问变量,因此,需要为它们命名。

准确描述变量要比常量复杂一些,为此,我们需要先理解以下几个概念 ...

概念1:标识符

标识符,是大多数计算机语言都有的概念,它通常是针对操作对象命名的一种描述。我们很快会接触到更多的python操作对象,如:类、方法、列表、字典等等。同样,变量也是标识符的一个例子。简单的说,标识符(Identifiers)就 是一个操作对象的名称。我们为变量命名,就是定义一个标示符。

标识符之命名规则

  • 第一个字符必须是字母或下划线( _ )。
  • 标识符的其它部分可以由字符、下划线( _ )、数字(0-9)组成。
  • 标识符名称区分大小写。例如, myname 和 myName 是不相同的。
  • 请注意类似如下的都是无效的标识符名称:2dogs , this is a pig, my-name 和 >a1b2_c3 。
  • 以上所说的字母或字符包括:大写 ASCII 字符或小写 ASCII 字符或 Unicode 字符。

标识符之命名的规范

  • 有含义地命名。如:name_1,而不是:n1
  • 原则上遵守驼峰命名法:构成名称的每个单词的首字母大写。
  • 类名:严格遵守驼峰命名法,首字母一律大写。如:MyName。
  • 方法名:第一个首字母小写,其他大写。例如, myName 。
  • 变量名:全部小写。如:myname 。

上述的命名规范并不强制,但它们是个值得养成的好习惯。

概念2:对象

Python语言认为,一切皆对象。它将程序中的任何内容统称为 对象(Object)。这是一般意义上的说法。

我们在讨论python编程的时候,要习惯说“某某对象(object)”,而不是“某某东西(something)”。

我们前面已经提到,python是面向对象的编程语言,这里再强调:Python 是强面向对象的,这里的“强”,一方面是指一切皆对象, 包括数字、字符串与函数;一方面也是指强类型,后面我们马上会看到对象的强类型对变量的影响力。

概念3:数据类型

变量可以将各种形式的值保存为不同的数据类型(Data Type)。基本的类型就是我们刚刚讨论过的数字(整数和浮点数)与字符串。当然,还有很多类型,这对于有过其他语言经验的同学,并不陌生。在后面的课时,我们都会逐一涉及到。甚至,我们会了解如何通过(Class) 类,创建我们自定义的类型。

PS:有其他语言经验的同学,可以关注一下这个讨论:

变量究竟有没有类型?网上很多说python是弱类型的语言,主要是因为python在定义一个变量时无需声明变量的类型。也有人用类型是否可以隐式转换来衡量是否是弱类型,但其实,对于python来说,这些都不准确。事实上,因为python是强对象类型的,python的任何对象都必须明确申明类型,而变量只是对对象的一个引用。在内存中,每一个对象都包含了两个头部信息,一个是类型标示符,标识这个对象的类型;一个是引用计数器,用来标识该对象被多少变量引用,如果没有变量引用,将被回收。所以,变量本身没有类型,只有对象才有类型,但是一旦对象被变量引用成功,它便有了类型。所以,变量是动态类型。这就是为什么在python中,定义变量无需声明类型的原因。

变量的定义

到此,我们终于可以讨论变量的定义了。

定义变量:在声明一个变量标示符的同时,为该变量赋一个确定的值。

变量的定义过程实际上实现了四件事:

1、声明了一个标识符;

2、引用了一个对象;

3、为该变量赋了一个值;

4、明确了该变量的当前值的类型。

例如:x = 5

这个式子定义了一个变量,它看起来极其简单,但它明确地做了以下4件事:

(1)、它声明了一个标识符 x;

(2)、引用了一个对象:即字面常量(数字)5;

(3)、为该变量 x 赋了一个值,让 它等于5。注意:这里“=”号是赋值符号;

(4)、明确了变量 x 的当前值的类型是整数类型。

小结

这一节,我们介绍了Python语言的两个最基本的语法概念:常量和变量。

1、常量(数字、字符串)是不可变的。

2、变量可以是任何类型,这依赖于它引用了什么样的对象,因此,它是动态类型。

3、了解了标识符及其命名规范。

本文分享自微信公众号 - 高渡号外(igaodu),作者:aDu

原文出处及转载信息见文内详细说明,如有侵权,请联系 yunjia_community@tencent.com 删除。

原始发表时间:2019-06-20

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

我来说两句

0 条评论
登录 后参与评论

相关文章

  • 如何理解变量?

    看起来,它并不是一件需要特别的知识铺垫才能正确理解的东西。但是,也许正因为如此,我们总是并没有很好地厘清这个概念的内涵。它和数学中的变量是一个概念吗?

    高一峰
  • 能否详细讲讲字符串呢?

    字符串,的确是我们最常用的一个基本数据类型。字符串在编程中总是扮演重要的角色。它可以是一个变量的名称,也可以是一个变量的值。今天,我们就重点讨论当它作为一个值的...

    高一峰
  • 夯实Python基础(2)

    我们知道,字符串是Python的内置对象,用来存储和表现基于文本的信息。通过《Python入门》的学习,我们已经了解和掌握了字符串的如下特性:

    高一峰
  • PHP 变量与常量

    本文介绍了 PHP 变量与常量。 官方文档:http://php.net/manual/zh/language.variables.php 官方文档:http:...

    康怀帅
  • 从 HelloWorld 看 Java 字节码文件结构

    很多时候,我们都是从代码层面去学习如何编程,却很少去看看一个个 Java 代码背后到底是什么。今天就让我们从一个最简单的 Hello World 开始看一看 J...

    陈树义
  • PHP-常量

    cwl_java
  • 3. C语言 -- 叫你一声你敢答应嘛

    \(@^0^@)/ 嗨!大家好,我是呆博~前两天的文章还满意嘛,如果有不满意的地方尽管提,我一定……嗯……能做到的我一定做。今天准备给大家分享第三篇文章,变量与...

    谭庆波
  • 面试题系列第5篇:JDK的运行时常量池、字符串常量池、静态常量池,还傻傻分不清?

    【番外篇】本篇核心:JDK各个版本中JDK的运行时常量池、字符串常量池、静态常量池的功能及存储位置。

    程序新视界
  • 触摸Java常量池

    java常量池是一个经久不衰的话题,也是面试官的最爱,题目花样百出,这次好好总结一下。

    Java团长
  • Java开发编程规范: 2.常量定义

         1)跨应用共享常量:放置在二方库中,通常是 client.jar 中的 constant 目录下。

    花狗Fdog

扫码关注云+社区

领取腾讯云代金券