Python 标识符、变量声明和赋值、最基本内置数据类型介绍

目录

一、标识符

二、变量的声明和赋值

三、最基本的内置数据类型介绍


一、标识符

标识符主要用于变量、函数、类、模块等名称。命名规则如下:

1.要区分大小写。eg:XGT和xgt是不同的。

2.第一个字符必须是下划线和字母。不能以数字开头。其后的字符是:字母、数字、下划线,不能是其他特殊字符。eg:# 是不行的。

3.不能使用关键字。eg: for、and、while等,使用python help()>>> keywords来查看关键字。

Python 标识符、变量声明和赋值、最基本内置数据类型介绍_第1张图片

4.以双下划线开头和结尾的名称通常有特殊含义,尽量避免这种写法。比如 _int_ 是类的构造函数。

Python 标识符命名规则

类型 规则 example
模块和包名 全小写字母,尽量简单,若多个单词之间用下划线 math
函数名 全小写字母,多个单词用下划线隔开 my_name
类名名 首字母大写,采用驼峰原则,多个单词时,每个单词第一个字母大写,其余部分小写 Myphone
常量名 全大写字母,多个单词用下划线隔开 SPE、SPE_DDD

二、变量的声明和赋值

由前边对象和引用介绍可知,变量存放在栈里边,对象存放在堆里边。

变量的声明和赋值用于将一个变量捆绑在对象上。格式如下:

变量名 = 表达式

eg: a = 1234

解释器是如何运行的?

是从右向左运行的,先运行右边的表达式,生成一个代表表达式运算结果的对象,然后将对象的地址赋给左边的变量

操作:必须先初始化(先赋值)→  和matlab类似

删除变量  del a(此时a这个变量将从栈中删除,但是1234这个值还在,他被Python 的垃圾回收站回收)

什么时候回收垃圾?

当这个对象没有被引用的时候,他将被回收。

链式赋值

就是将一个对象,同时赋值给多个变量。

eg:a=b=10  相当于 a=10 b=10

系列解包赋值

将不同的对象赋值给不同的变量(对象和变量的个数一定是相同的)

a,b,c = 1,2,3  相当于 a=1 b=2 c=3

eg:利用系列解包赋值对变量进行变换

a, b = 1, 2
a, b = b, a
print(a)
print(b)

Python 标识符、变量声明和赋值、最基本内置数据类型介绍_第2张图片

c语言是通过中间变量来实现变量的替换,可知,python 比较方便

常量 

Python 不支持常量,即没有语法限制改变一个值。我们只能约定常量的命名规则,以及程序在逻辑上不对常量值做出修改。

ZHANG = 20
print(ZHANG)

实际上是可以改变的,只是逻辑上是不改变的。

三、最基本的内置数据类型介绍

1.每个对象都有类型,Python中最基本的内置数据类型有:整型、浮点型、字符串型、布尔型

数据类型
整型 -7,-8,  0,  2,  3
浮点型 -1.25,-10,1.23,  6.77
字符串 ‘a’. 'zhangsan' '你好','heihie'
布尔型 表示真假,仅包含:True、False

2.数字

Python 支持整数(如:250,520)和浮点数进行运算。

运算符 说明 eg 结果
+ 加法 3+2 5
- 减法 30-5 25
* 乘法 2*3 6
/ 浮点数除法 10/2 5.0
// 整数除法 7//2 3
% 取余 8%5 3
** 2**3 8

注意: 使用divmod 可以同时得到商和余数

a = divmod(13, 3)
print(a)

3整数:

Python中,除了10进制以外,还有其他的二进制,八进制,十六进制。

0b或者0B,二进制 0 1
0o或者0O,八进制 0 1 2 3 4 5 6 7
0x或者0X,十六进制 0 1 2 3 4 5 6 7 8 9 a b c d e f

eg:测试不同的进制(用IDLE开发环境测试,不用pycharm 进行测试)

十进制:

Python 标识符、变量声明和赋值、最基本内置数据类型介绍_第3张图片

 二进制:

0B10101010

Python 标识符、变量声明和赋值、最基本内置数据类型介绍_第4张图片

 输出值为:0*2^0+1*2^1+0*2^2+1*2^3+0*2^4+1*2^5+0*2^6+1*2^7=170

八进制:(利用Jupyter NoteBook 进行测试)

0O76543210

Python 标识符、变量声明和赋值、最基本内置数据类型介绍_第5张图片

输出值为:0*8^0+1*8^1+2*8^2+3*8^3+4*8^4+5*8^5+6*8^6+7*8^7 = 16434824

Python 标识符、变量声明和赋值、最基本内置数据类型介绍_第6张图片

十六进制:(利用Jupyter NoteBook 进行测试)

0xa9543f10

Python 标识符、变量声明和赋值、最基本内置数据类型介绍_第7张图片

输出值为:0*16^0+1*16^1+15*16^2+3*16^3+4*16^4+5*16^5+9*16^6+10*16^7= 

2840870672

Python 标识符、变量声明和赋值、最基本内置数据类型介绍_第8张图片

 数据类型的转换:(前边有讲解,为了知识的完备性,这里再讲一下)

使用int()实现数据类型转换

(1)浮点数直接转化为整数,将小数部分直接去掉。eg:  int(8.8) = 8;

  (2) 布尔值int()类型的转换。   int(False)= 0;  int(True) = 1;    注意:True 和False  首字母要大写。

(3)字符串符合整数格式。将直接转化成对应的数字。eg: int("456") = 456;

如果字符串中含有一些字母将不能转换,程序将会报错。  eg: int("456abc")   :    error

注意:整数和浮点数混合运算,将自动转化成浮点数。

整数可以有多大?它像C语言一样吗?有规定的大小吗?

在Python 2中,int 是32 位的,long是64位的。

在python 3中,int 大小是任意的,并不限制它的大小,而long被取消。eg:100^100,运行如下:

Python 标识符、变量声明和赋值、最基本内置数据类型介绍_第9张图片

 整数缓存问题

Python仅仅对比较小的整数对象进行缓存(范围为:[-5,256])缓存起来,而并非所有的整数对象。需要注意的是,这仅仅是在命令行中执行,而在Pycharm或者保存为文件执行时,结果是不一样的,这是因为解释器做了一部分优化。(范围是[-5,任意整数])

如何简单理解呢?

eg:  在IDLE开发环境中,(1)在[-5,256]时,当他们值相同时,他们的地址是一样的。(2)在之外他们的地址是不一样的。

(1)情况 a = 10, b = 10,  在[-5,256]之内,地址相同,可以整数缓存,下次使用直接从缓存中拿出来使用,提高运行速度

 (2)情况 a = 1000, b = 1000,  在[-5,256],地址不同,不可以缓存

Python 标识符、变量声明和赋值、最基本内置数据类型介绍_第10张图片

 在Pycharm 开发环境中,可以自行验证哈

4.浮点数

浮点数又称,float型。浮点数用 a*b^{10}形式的科学计数法来表示。eg:5.20,被表示成:520E-2或者520e-2.

类型转换和四舍五入

   (1) 类似于int(),我们可以将float转化为其他类型的浮点数。

(2)整数和浮点数混合运算,将自动转化成浮点数。

(3)round(value),可以转化成四舍五入的值,但是原来的数值不会发生改变。eg:

Python 标识符、变量声明和赋值、最基本内置数据类型介绍_第11张图片

(4)float()可以将数字字符转换为浮点数。float("5.20") = 5.20

5.字符串(字符串概念相当重要,因此下一篇博客,单独拿出来讲一下)

 增强型赋值运算符

运算符+、-、*、/、//、**、和%和赋值号=结合可以构成"增强型赋值运算符" 

eg:a = a+1;等价于 a+=1;  注意:+= 不要加空格

增强型赋值运算符
运算符 eg 等价
+= a+=5 a = a+5
-= a-=5 a = a-5
*= a*=5 a = a*5
/= a/=5 a = a/5
//= a//=5 a = a//5
**= a**=5 a = a**5

6.布尔值、布尔操作符

(1)布尔值

虽然整型、浮点型和字符串数据类型有无数种可能的值,但是“布尔”数据类型只有两种值:是(True)和否(False).布尔的首字母大写。

(2)比较操作符

所有比较运算符,返回 1为True,返回0为False。

以下假设 a = 5.20,b= 3.14

比较操作符
操作符 含义 实例
== 等于,比较对象的值是否相等 (a==b)返回False
!= 不等于,比较两个对象的值是否不相等 (a!=b)返回True
> 大于,返回 x是否大于y    (a>b)  返回True
< 小于,返回 x是否小于y  (a
>= 大于等于,返回 x是否大于等于y  (a>=b)  返回True
<= 小于等于,返回 x是否小于等于y (a<=b)  返回False

注意:<,>,<=和>=操作符,只适应于整型和浮点型值

== 操作符(等于)有两个等号,而=操作符(赋值)只有一个等号,很容易混淆。。。。

(3)逻辑运算符

逻辑运算符
运算符 格式 说明
or(逻辑或) x or y 有一个真,即为真
and(逻辑与) x and y 两者同真才真,其余都为假
not(非) not x 相反

(4)同一运算符
同一运算符用于比较两个对象的存储单元,说白了,就是比较地址。

回顾一下?

Python 对象由哪几部分组成?(小伙伴们,投票一下哦,在下方)

操作符 描述
is is 是判断两个标识符是不是引用同一个对象
is not is not 是判断两个标识符是不是引用不同对象

注意: is 与 ==区别

a:is 是用于判断两个变量引用对象是否为同一个,即比较对象的地址。

b:== 用于判断引用变量,引用对象的值是否相同。

eg:a 和 b 地址不同,所以返回 True

a = 50
b = 100
c = a is b
print(a,b,c,id(a),id(b))

Python 标识符、变量声明和赋值、最基本内置数据类型介绍_第12张图片

 

7.时间的表示

计算机中时间表示是从“1970年1月1日00:00:00”开始,以毫秒(1/1000秒)进行计算,我们把1970年这个时间点称为“unix时间点”。

这样我们把时间全部用数字表示(中间用毫秒计算)

Python 标识符、变量声明和赋值、最基本内置数据类型介绍_第13张图片

 Python 中可以通过 time.time()获得当前时刻。返回值是以秒为单位,带微秒精度的浮点值

首先导入时间包: import time

Python 标识符、变量声明和赋值、最基本内置数据类型介绍_第14张图片

获得以上数字,以上数字的含义:从1970年到现在的时间。

 如果用pycharm 怎么办?

首先更新pip 包工具(如果已经更新忽略此步骤)

用此命令:python -m pip install --upgrade pip

 Python 标识符、变量声明和赋值、最基本内置数据类型介绍_第15张图片

 看一下从现在到1970年,经过了多少秒?多少分?多少小时?多少天?多少月?多少年?

import time

totalSec = int(time.time())
totalMinutes = totalSec/60
totalHours = totalMinutes/60
totalDays = totalHours/24
totalYears = totalDays/365

print('1970年到现在总共 {:d} 秒'.format(totalSec))
print('1970年到现在总共 {:f}分'.format(totalMinutes))
print('1970年到现在总共 {:f} 小时'.format(totalHours))
print('1970年到现在总共 {:f} 天'.format(totalDays))
print('1970年到现在总共 {:f} 年'.format(totalYears))

Python 标识符、变量声明和赋值、最基本内置数据类型介绍_第16张图片

你可能感兴趣的:(Python,python,开发语言)