标识符

一个ASCII标识符需要同时满足以下三个条件:

1、第一个字符必须是字母表中的字母或者下划线_

2、标识符的其他部分由字母、数字、下划线组成

3、标识符对大小写是敏感的,即A与a是不同的

一般来说ASCII标识符是用来给变量命名的。

Python保留字

Python保留字指的是Python中的关键字,意思是这些词有特殊的意思和用途,不能拿来当做ASCII标识符,也就是说不能拿来作变量的名字。

在Python的标准库中可以查询到所有的关键字:

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

数据类型

为了方便处理不同的数据(比如数字、文本、图像等等),我们需要不同的数据类型。Python3中有六个标准的数据类型:

1、Number(数字)

2、String(字符串)

3、List(列表)

4、Tuple(元组)

5、Set(集合)

6、Dictionary(字典)

这六个标准的数据类型能够直接被Python处理,它们可以分为两大类:

1、不可变数据类型:Number(数字)、String(字符串)、Tuple(元组)

2、可变数据类型:List(列表)、Set(集合)、Dictionary(字典)

下面将具体介绍这六种标准数据类型,并说明什么叫做可变、不可变。

Number(数字)

数字,能想到就是我们熟悉的诸如2、3.1415926等数字。在Python3中,Number(数字)这个标准数据类型又被分为四种小类型:int、float、bool、complex

int(整型)

指的是整数类型,比如2,100,-8等等。

由于计算机使用的是二进制,所以用十六进制表示整数是很常见的,在Python中十六进制用0x前缀和0-9以及a-f表示,比如0xff00。

float(浮点型)

指的是浮点数,也就是小数。

浮点数有两种写法,一是数学写法,比如3.1415926,-95.488等等;二是科学计数法(广义的),用e来代替10,比如1.23*10^9就可以写作1.23e9或者12.3e8。对于很大和很小的浮点数必须使用科学计数法。

bool(布尔型)

布尔型只有两个可能的取值,TrueFalse

布尔型数据之间的运算称为逻辑运算,布尔型数据之间的运算符称为逻辑运算符,一共有三种:and(与)、or(或)、not(非)。and(与)和or(或)是二元运算符,not(非)是一元运算符,真值表如下:

与运算
and(与) True False
True True False
False False False
或运算
or(或) True False
True True True
False True False
非运算
not(非) 运算结果
True False
False True

事实上,True的取值为1,False的取值为0,是可以与数字进行计算的。但布尔型的数据存在的主要价值并不是拿来做数字运算,而是做逻辑运算,所以通常情况下我们不会将布尔型与其他数字类型混在一起运算。

complex(复型)

指的是复数,在Python3中复数有两种表示法,一是复数单位用j表示,形式是“a+bj”,比如1.5+6.8j;二是用complex(a,b)表示,比如complex(1.5,6.8)。

String(字符串)

Python中单引号与双引号的被认为是等价的,即'zyy'与"zyy"是完全一样的,都是字符串。需要注意的是,引号必须正确配对,单引号、双引号不能混用。并且,要注意这里的引号都是英文字符。

一个字符串中的每个位置(或者说每个字符)可以由索引来访问,索引值从0开始,格式为[索引值],比如

>>> str = 'The quick brown fox jumps over a lazy dog.'
>>> str[0]
'T'
>>> str[4]
'q'
>>> str[29]
'r'

要想访问字符串中的一个子段,同样由索引来访问,格式为[起始索引值:终止索引值+1],注意这里的冒号是英文字符。比如:

>>> str = 'The quick brown fox jumps over a lazy dog.'
>>> str[4:19]
'quick brown fox'

索引值一般来说是从0到字符串的长度-1,但也可以用-1表示倒数第一位,用-2表示倒数第二位,以此类推。实际上这种访问方式叫做切片,详细请移步:(挖坑)

String(字符串)作为一个数据类型也是可以进行运算的。

字符串1+字符串2将得到一个新的字符串,是由之前的两个字符串连接而成,比如

>>> 'zyy'+'是一只超级大沙茶'
'zyy是一只超级大沙茶'

字符串*整数将得到一个新的字符串,是之前的字符串复制这个整数次后连接而成,比如

>>> '哈'*13
'哈哈哈哈哈哈哈哈哈哈哈哈哈'

字符串还有一个问题是字符串的格式化。我们经常会需要输出某个具有固定格式的字符串,比如'尊敬的旅客您好!我们抱歉地通知,由于恶劣天气原因,您所乘坐的xxxxx航班已取消。请您尽快到xxx柜台办理改签或退票手续。'这里的xx处的内容都是变化的,而其余的都是固定的,于是我们希望使用一种简便的方法来使得每次都只需要考虑变化的部分。这就是字符串的格式化。

为了实现字符串的格式化,一共有两种方法。一种是利用占位符,另一种是利用字符串的format()函数。

对于第一种方法,需要先了解一下占位符。常见的占位符如下:

占位符 替换内容
%d 整数
%f 浮点数
%s 字符串
%x 十六进制整数

在格式化的字符串中需要替换的位置使用占位符,在后面依次填上替换的内容即可。格式为:格式化字符串 % 替换的内容。比如:

>>> 'My name is %s' % 'zyy'
'My name is zyy'
>>> 'the price of %s is $%f' % ('shirt', 49.9)
'the price of shirt is $49.900000'

对于数字的占位符来说,还有控制长度和补0的用法,比如:

>>> print('%2d - %02d' % (3, 1))
3 - 01
>>> print('%.2f' % 3.1415926)
3.14

还有更多的一些用法可以百度,一般记住这几个常用的就足够了。

另一种格式化字符串的方法需要用到字符串的format()函数,在格式化的字符串中需要替换的位置使用{n}或{n:格式控制}来占位,其中n从0开始编号,在format()函数中传入需要替换的内容。格式为:格式化字符串.format(替换的内容)。比如:

>>> 'My name is {0}'.format('zyy')
'My name is zyy'
>>> 'the price of {0} is ${1:.2f}'.format('shirt', 49.9)
'the price of shirt is $49.90'

List(列表)

List(列表)是一堆数据按顺序放在一起构成的一个数据类型,将数据用一对[]括起来,数据之间用逗号隔开。

列表的访问方式与字符串相似,使用索引。比如:

>>> L = ['Alice', 'Bob', 9.15, True]
>>> L[0]
'Alice'
>>> L[2]
9.15
>>> L[1:]
['Bob', 9.15, True]

注意,列表中的某个或某几个数据也可以是列表,而当列表中有数据是列表时,可以使用多重索引的方式访问元素,比如:

>>> L = [1, [2, 3]]
>>> L[0]
1
>>> L[1]
[2, 3]
>>> L[1][0]
2

与字符串相似,列表也有+和*运算,比如:

>>> L1 = ['Alice', 'Bob', 9.15, True]
>>> L2 = [-8, 'zyy', 6]
>>> L1 + L2
['Alice', 'Bob', 9.15, True, -8, 'zyy', 6]
>>> L1 * 3
['Alice', 'Bob', 9.15, True, 'Alice', 'Bob', 9.15, True, 'Alice', 'Bob', 9.15, True]

与字符串不同的是,字符串是不能被改变的,而列表可以添加数据、删除数据、更改数据。格式如下:

代码 含义
L[i] = x 将列表L中索引位置为i处的数据替换为x
L.append(x) 在列表末尾添加数据x
L.insert(i, x) 在列表的索引位置为i处添加数据x
L.pop() 删除列表L末尾的数据,并打印
L.pop(i) 删除列表L的索引位置为i处的数据

下面给出几个实例:

>>> L = ['Alice', 'Bob', 9.15, True]

>>> L[0] = 'zyy'#将索引位置为0处的数据替换为'zyy'
>>> L
['zyy', 'Bob', 9.15, True] >>> L.append(9)#在列表末尾添加数据9
>>> L
['zyy', 'Bob', 9.15, True, 9] >>> L.insert(1, False)#在列表的索引位置为1处添加数据False
>>> L
['zyy', False, 'Bob', 9.15, True, 9] >>> L.pop()#删除列表末尾的数据,并打印
9
>>> L
['zyy', False, 'Bob', 9.15, True] >>> L.pop(2)#删除列表的索引位置为2处的数据,并打印
'Bob'
>>> L
['zyy', False, 9.15, True]

Tuple(元组)

Set(集合)

Dictionary(字典)

参考:Python教程-廖雪峰Python3教程-菜鸟教程

[Python]数据类型、常量、变量和运算符(未完待续)的更多相关文章

  1. [python]爬代理ip v2.0(未完待续)

    爬代理ip 所有的代码都放到了我的github上面, HTTP代理常识 HTTP代理按匿名度可分为透明代理.匿名代理和高度匿名代理. 特别感谢:勤奋的小孩 在评论中指出我文章中的错误. REMOTE_ ...

  2. python学习笔记--变量和运算符

    一.变量命名规则 1.字母.数字.下划线组成 2.不以数字开头 3.关键字(也叫保留字),不能用作变量名 4.遵循PEP8命名规范 二.变量赋值 1.赋值符号 = 2.多重赋值 x=y=123 3.多 ...

  3. oracle-绑定变量学习笔记(未完待续)

    --定义变量SQL> var a number; --给绑定变量赋值SQL> exec :a :=123; PL/SQL procedure successfully completed. ...

  4. Python基础:内置类型(未完待续)

    本文根据Python 3.6.5的官文Built-in Types而写. 目录 1.真值测试 2.布尔操作 -- and, or, not 3.比较 4.数字型 -- int, float, comp ...

  5. python 面向对象的基本概念(未完待续)

    面向对象编程简称OOP(Object-oriented-programming),是一种程序设计思想. 面向过程编程(如C语言)指一件事该怎么做,面向对象编程(如Java.python)指一件事该让谁 ...

  6. Python 网络编程之网络协议(未完待续)

    一:网络编程从两大架构开始 1.网络开发的两大架构 c/s 架构 : client  server B/S 架构 : Brower  server (1)bs 和 cs 架构之间的关系? (2)哪一种 ...

  7. java第二章 变量和运算符

      Java 基础应用编程——  变量和运算符 1.Java程序结构          数据类型:确定要存储在内存中的数据的类型.          变量:是存储数据的基本单元 2.变量的概念   变 ...

  8. 2017-2-17,c#基础,输入输出,定义变量,变量赋值,int.Parse的基础理解,在本的初学者也能看懂(未完待续)

    计算机是死板的固定的,人是活跃的开放的,初学c#第一天给我的感觉就是:用人活跃开放式的思维去与呆萌的计算机沟通,摸清脾气,有利于双方深入合作,这也是今晚的教训,细心,仔细,大胆 c#基础 1.Hell ...

  9. 第2章 Python编程基础知识 第2.1节 简单的Python数据类型、变量赋值及输入输出

    第三节 简单的Python数据类型.变量赋值及输入输出 Python是一门解释性语言,它的执行依赖于Python提供的执行环境,前面一章介绍了Python环境安装.WINDOWS系列Python编辑和 ...

  10. 使用IntelliJ IDEA进行Python远程调试的需求(未完)

    使用IntelliJ IDEA进行Python远程调试的需求(未完) 在研究深度学习Machlearning时,有时候需要借助ubuntu搭建的tensorflow环境,另外也有越来越多的运算程序只能 ...

随机推荐

  1. flask中错误使用flask.redirect('/path')导致的框架奇怪错误

    我在首页的位置使用了如下代码: import flask @page_index.route('/') def index(): flask.redirect('/pythoncgi/') 结果站点出 ...

  2. MySQL函数学习(一)-----字符串函数

    一.MySQL 字符串函数 \ 函 数 名 称 作 用 完 成 1 LENGTH 计算字符串字节长度 勾 2 CONCAT 合并字符串函数,返回结果为连接参数产生的字符串,参数可以是一个或多个 勾 3 ...

  3. java基础编程练习题

    1.題目:古典问题:有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一 对兔子,假如兔子都不死,问每个月的兔子总数为多少? 1 2 3 4 5 6 7 1 1 2 3 ...

  4. TCP可靠性

    目录 一:TCP可靠性 1.通过序列号与确认应答提高可靠性 一:TCP可靠性 简介 TCP 通过检验和.序列号.确认应答.重发控制.连接管理以及窗口控制等机制实现可靠性传输. 1.通过序列号与确认应答 ...

  5. 容器docker网络解析

    如果想要实现两台主机之间相连通信,最直接的办法是找一根网线连起来, 多台的话需要用网线将他们链接再交换机上. linux中能够起到虚拟交换机的网络设备是网桥birdge, 工作再链路层, 主要是根据m ...

  6. 权限修饰符和final关键字

    public 不受任何限制,可以被其他任何类访问 一个JAVA文件只能包含一个public文件 java将public类作为每个编译单元的数据接口  只能有一个接口 private 只能在自己类中访问 ...

  7. django入门 01 创建项目

    安装django库 pip install django 创建--by 终端 django-admin startproject myproject 通过命令创建的django项目,默认不含templ ...

  8. KMP 入门

    再次学习 \(\rm KMP\) 后不一样的理解. 一些概念 定义字符串 \(S\) 的真 前/后 缀为非自身的 前/后 缀. 定义字符串 \(S\) 的 \(border\) 为 \(S\) 的公共 ...

  9. JS Map与Set

    笔记整理自:廖雪峰老师的JS教程 Map JavaScript的对象有个小问题,就是键必须是字符串.但实际上Number或者其他数据类型作为键也是非常合理的. 为了解决这个问题,最新的ES6规范引入了 ...

  10. JAVA多线程学习五:线程范围内共享变量&ThreadLocal

    一.概念 可以将每个线程用到的数据与对应的线程号存放到一个map集合中,使用数据时从这个集合中根据线程号获取对应线程的数据,就可以实现线程范围内共享相同的变量. 二.代码 Runnable中的run( ...