[Python]数据类型、常量、变量和运算符(未完待续)
标识符
一个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(布尔型)
布尔型只有两个可能的取值,True和False。
布尔型数据之间的运算称为逻辑运算,布尔型数据之间的运算符称为逻辑运算符,一共有三种: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]数据类型、常量、变量和运算符(未完待续)的更多相关文章
- [python]爬代理ip v2.0(未完待续)
爬代理ip 所有的代码都放到了我的github上面, HTTP代理常识 HTTP代理按匿名度可分为透明代理.匿名代理和高度匿名代理. 特别感谢:勤奋的小孩 在评论中指出我文章中的错误. REMOTE_ ...
- python学习笔记--变量和运算符
一.变量命名规则 1.字母.数字.下划线组成 2.不以数字开头 3.关键字(也叫保留字),不能用作变量名 4.遵循PEP8命名规范 二.变量赋值 1.赋值符号 = 2.多重赋值 x=y=123 3.多 ...
- oracle-绑定变量学习笔记(未完待续)
--定义变量SQL> var a number; --给绑定变量赋值SQL> exec :a :=123; PL/SQL procedure successfully completed. ...
- Python基础:内置类型(未完待续)
本文根据Python 3.6.5的官文Built-in Types而写. 目录 1.真值测试 2.布尔操作 -- and, or, not 3.比较 4.数字型 -- int, float, comp ...
- python 面向对象的基本概念(未完待续)
面向对象编程简称OOP(Object-oriented-programming),是一种程序设计思想. 面向过程编程(如C语言)指一件事该怎么做,面向对象编程(如Java.python)指一件事该让谁 ...
- Python 网络编程之网络协议(未完待续)
一:网络编程从两大架构开始 1.网络开发的两大架构 c/s 架构 : client server B/S 架构 : Brower server (1)bs 和 cs 架构之间的关系? (2)哪一种 ...
- java第二章 变量和运算符
Java 基础应用编程—— 变量和运算符 1.Java程序结构 数据类型:确定要存储在内存中的数据的类型. 变量:是存储数据的基本单元 2.变量的概念 变 ...
- 2017-2-17,c#基础,输入输出,定义变量,变量赋值,int.Parse的基础理解,在本的初学者也能看懂(未完待续)
计算机是死板的固定的,人是活跃的开放的,初学c#第一天给我的感觉就是:用人活跃开放式的思维去与呆萌的计算机沟通,摸清脾气,有利于双方深入合作,这也是今晚的教训,细心,仔细,大胆 c#基础 1.Hell ...
- 第2章 Python编程基础知识 第2.1节 简单的Python数据类型、变量赋值及输入输出
第三节 简单的Python数据类型.变量赋值及输入输出 Python是一门解释性语言,它的执行依赖于Python提供的执行环境,前面一章介绍了Python环境安装.WINDOWS系列Python编辑和 ...
- 使用IntelliJ IDEA进行Python远程调试的需求(未完)
使用IntelliJ IDEA进行Python远程调试的需求(未完) 在研究深度学习Machlearning时,有时候需要借助ubuntu搭建的tensorflow环境,另外也有越来越多的运算程序只能 ...
随机推荐
- [SWPUCTF 2018]SimplePHP
[SWPUCTF 2018]SimplePHP 知识点 1.PHP反序列化入门之phar 2.反序列化魔术方法 __construct()//当一个对象创建时被调用 __destruct() //当一 ...
- Linux下进程线程,Nignx与php-fpm的进程线程方式
1.进程与线程区别 进程是程序执行时的一个实例,即它是程序已经执行到课中程度的数据结构的汇集.从内核的观点看,进程的目的就是担当分配系统资源(CPU时间.内存等)的基本单位. 线程是进程的一个执行流, ...
- eclipse不能创建web项目,如何设置(亲测可用)
具体描述:就是在项目右键或者file-->new的时候没有dynamic web project选项)(我这里已经解决.所以看得到) 根本原因:就是有没有web的开发插件 两种办法 1.下载使用 ...
- gorm中的基本查询
检索单个对象 GORM 提供了 First.Take.Last 方法,以便从数据库中检索单个对象.当查询数据库时它添加了 LIMIT 1 条件 // 获取第一条记录(主键升序) db.First(&a ...
- golang中gomodule讲解
0. GOMODULES模式 1. GOPATH的缺点 1. 无版本控制概念 2. 无法同步一致第三方版本号 3. 无法指定当前项目引用的第三方版本号 2. go1.11版本之后可以使用GoModul ...
- 前端禁止使用F12、禁止右键
打开控制台直接跳转页面 //debug调试时跳转页面 var element = new Image(); Object.defineProperty(element,'id',{get:functi ...
- MySQL单表查询(分组-筛选-过滤-去重-排序)
目录 一:单表查询 1.单表查询(前期准备) 2.插入记录(写入数据) 3.查询关键字 二:查询关键字之where 1.查询id大于等于3小于等于6的数据 2.查询薪资是20000或者18000或者1 ...
- Nginx日志管理
1 日志管理 1.1 Nginx日志描述 通过访问日志,你可以得到用户地域来源.跳转来源.使用终端.某个URL访问量等相关信息:通过错误日志,你可以得到系统某个服务或server的性能瓶颈等.因此,将 ...
- ideal 创建maven 项目
一 准备工作,已经配置好了maven 环境 .没有的话,参考我的上一篇笔记. 二,ideal相关配置 打开ideal 找到设置. file ------->setting . 点击 ...
- 如何在Visual Studio中添加opencvsharp的可视化工具
这个文件放到这个目录下,就可以看mat对象查看了