标识符

一个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. Linux命令(2)--cp拷贝、mv剪切、head、tail追踪、tar归档

    文章目录 一.知识回顾 ls cd 二.Linux基本操作(二) 1.cp 拷贝 2.mv 移动(剪切) 3.head 头部 4.tail 追踪(尾部) 5.tar 归档 查看 压缩 解压 总结 一. ...

  2. C# 计算三角形和长方形 周长面积

    编写一个控制台应用程序,输入三角形或者长方形边长,计算其周长和面积并输出. 代码如下: using System; using System.Collections.Generic; using Sy ...

  3. Cesium源码剖析---Post Processing之物体描边(Silhouette)

    Cesium在1.46版本中新增了对整个场景的后期处理(Post Processing)功能,包括模型描边.黑白图.明亮度调整.夜视效果.环境光遮蔽等.对于这么炫酷的功能,我们绝不犹豫,先去翻一翻它的 ...

  4. 【Azure 应用服务】Azure Mobile App (NodeJS) 的服务端部署在App Service for Windows中出现404 Not Found -- The resource you are looking for has been removed, had its name changed, or is temporarily unavailable.

    问题描述 使用NodeJS的后端应用,开发一个Mobile App的服务端,手机端通过REST API来访问获取后端数据.在本地编译好后,通过npm start启动项目,访问效果如下: 但是,当把项目 ...

  5. python第三方模块详细教程(紧急情况宝典)

    目录 一:第三方模块 第三方模块:并不是python自带的 需要基于网络下载! 使用下载第三方模块 需要将python pip添加到环境变量 1.验证pip路径添加成功 2.pycharm添加第三方模 ...

  6. 学习Java第6天

    今天所做的工作: 1.完成学生信息管理系统样卷 2.核心技术接口继承,多态 明天工作安排: 1.类的高级特性(Java类包) 2.异常处理 今天做一个小小的总结,Java程序是完全面向对象的,它的所有 ...

  7. 常见线程池 newFixedThreadPool 的简单使用

    package com.aaa.threaddemo; import java.util.concurrent.ArrayBlockingQueue; import java.util.concurr ...

  8. 【源码】Redis exists命令bug分析

    本文基于社区版Redis 4.0.8 1.复现条件 版本:社区版Redis 4.0.10以下版本 使用场景:开启读写分离的主从架构或者集群架构(master只负责写流量,slave负责读流量) 案例: ...

  9. 分布式缓存——Redis

    一.Redis介绍 Redis是一个开源的使用C语言编写.开源.支持网络.可基于内存亦可持久化的日志型.高性能的key-value数据库,并提供多种语言的API.它通常被称为数据结构服务器,因为值(v ...

  10. 短信发送器小案例 smsManager

    总结实现步骤    (1)画 mainActivity页面  <LinearLayout xmlns:android="http://schemas.android.com/apk/r ...