【Python 入门指北】No 3. Python 语言元素

BitOrbitMaster
• 阅读 974

1. 前言

之前的文章中,我们已经对 Python 有所了解了,并且也学会了 Pycharm 的安装及使用。现在该开始正式进入主题了,接下来就要学习 Python 的相关语法,以及如何使用他们进行编程。

今天主要内容就介绍 Python 中的如下知识点:

  1. 变量
  2. 数据类型
  3. 运算符

2. 变量

2.1 什么是变量

所谓变量,其实一开始是源自于数学。而在计算机语言中,变量指的是 能够存储计算结果或者能够表示值的抽象概念

我们可以通过变量名来访问变量,在 Python 中,变量通常是可变的,它不仅仅能够表示数字,还能是任意数据类型。

2.2 变量命名规则

Python 中,是通过标识符来给变量命名,而标识符就是用于给程序中变量、类、方法命名的符号。简单来说,标识符就是合法的名字。而什么是合法的名字呢?那我们就来看看 Python 中标识符的命名规则。

Python 中,标识符 必须以字母、下划线开头,然后后面可以跟上任意数目的字母、数字以及下划线,而且也区分大小写。总结起来就是如下几点:

  1. 变量名只能包含字母、数字和下划线,而且只能以字母或下划线开头,不能以数字开头,比如我们可以把一个变量命名为 cunyu_1943、_cunyu1943 但是不能命名为 1943_cunyu
  2. 变量名中间不能包含空格,但是可以用下划线来进行分割,比如可以命名为 student_name,但不能命名为 student name
  3. 变量名应该尽量简短切具有描述性,比如我们变量名为 name,那别人一看就知道这是表示名字的,但如果我们命名为 n,那可能就得花更多的时间来搞清楚它到底是啥意思;
  4. 不要把 Python 中的关键字和内置函数名用做变量名,Python 中常见的关键字和内置函数如下表;
关键字描述
and逻辑运算符
as创建别名
assert用于调试
break跳出循环
class定义类
continue继续循环的下一个迭代
def定义函数
del删除对象
elif在条件语句中使用,等同于 else if
else用于条件语句
except处理异常,发生异常时如何执行
False布尔值,比较运算的结果
finally处理异常,无论是否存在异常,都将执行一段代码
for创建 for 循环
from导入模块的特定部分
global声明全局变量
if写一个条件语句
import导入模块
in检查列表、元组等集合中是否存在某个值
is测试两个变量是否相等
lambda创建匿名函数
None表示 null
nonlocal声明非局部变量
not逻辑运算符
or逻辑运算符
passnull 语句,一条什么都不做的语句
raise产生异常
return退出函数并返回值
True布尔值,比较运算的结果
try编写 try...except 语句
while创建 while 循环
with用于简化异常处理
yield结束函数,返回生成器
内置函数
abs()delattr()hash()memoryview()set()
all()dict()help()min()setattr()
any()dir()hex()next()slice()
ascii()divmod()id()object()sorted()
bin()enumerate()input()oct()staticmethod()
bool()eval()int()open()str()
breakpoint()exec()isinstance()ord()sum()
bytearray()filter()issubclass()pow()super()
bytes()float()iter()print()tuple()
callable()format()len()property()type()
chr()frozenset()list()range()vars()
classmethod()getattr()locals()repr()zip()
compile()globals()map()reversed()__import__()
complex()hasattr()max()round()

3. 数据类型

要处理各种文本、图形、音频、视频等数据,光使用数值类型是远远不够的,我们需要更多的数据类型来定义不同的数据。在 Python 中,主要有如下几种数据类型:

3.1 数字

数字数据类型用于存储数值,他们是 不可改变 的数据类型。也就是说,每改变一个数字数据类型,就会分配一个新的对象。

当我们给变量指定一个值时,数字对象就会被创建,而如果我们要删除这些对象的引用,就可以使用 del 语句;

# 创建对象
number = 1
# 删除引用
del number

Python 支持如下不同的数字类型;

  • int:整型(⚠️ Python 2.x 中有 intlong 之分,但是 Python 3.x 中只有 int),能够处理任意大小的整数,而且支持常见的二进制、八进制、十进制以及十六进制;
  • float:浮点类型,也就是数学中的小数。一个浮点数的小数点位置是可变的,它不仅可以表示成数学写法(456.78),还支持科学记数法(4.5678e2);
  • complex:复数类型,由实部和虚部组成,形如 a + bj 的形式,和数学中的复数表示一样,只是把 i 变成了 j

3.2 字符串

以单引号或双引号括起来的任意文本,例如 “cunyu1943”‘cunyu1943’,而且还可以书写成多行的形式(用三个单引号或三个双引号开头,三个单引号或三个双引号结尾)

'''
公众号:村雨遥
blog:cunyu1943.site
'''

“”“
公众号:村雨遥
blog:cunyu1943.site
”“”

Python 中字符串有 2 种取值顺序:

  1. 从左向右索引,索引值从 0 开始,最大索引值是字符串长度减 1
  2. 从右向左索引,索引值从 -1 开始,最大索引值是字符串开头;

如果我们要从字符串汇总获取一小段子字符串,则可以使用 [头下标:尾下标] 来进行截取。注意 左闭右开 原则,即通过 [头下标:尾下标] 方式获取的子字符串包含头下标的字符,但不包含尾下标的字符;

加入我们的字符串 s = 'abcdef’,则通过不同方式索引的结果如下图:

【Python 入门指北】No 3. Python 语言元素

3.3 列表

list 是一种 有序 的集合,能随时向其中添加和删除元素,用 [] 标识,内部元素用逗号隔开,元素可以是字符、数字、字符串等数据类型,是 Python 中最常用的复合数据类型。类似于字符串,也可以用 [头下标:尾下标] 的方式来进行截取相应子列表,索引方式同字符串,示例如下:

【Python 入门指北】No 3. Python 语言元素

list 中常用方法如下:

方法说明
len(list)列表元素个数
list(seq)将元组转换为列表
list.pop()删除 list 末尾的元素
list.pop(index)删除 list 中索引位置为 index 的元素
list.append(obj)在列表末尾添加新的对象
list.count(obj)统计某个元素在列表中出现的次数
list.insert(index, obj)将对象插入列表指定位置
list.remove(obj)移除列表中某个值的第一个匹配项
list.reverse()反转列表中元素
list.index(obj)从列表中找出某个值第一个匹配项的索引位置
list.sort(cmp=None, key=None, reverse=False)对原列表进行排序,reverse = True 降序, reverse = False 升序(默认)

如果我们要实现不同列表连接,应该这么办呢,此时我们可以使用 + 来连接不同的数组;

>>> list1 = [1, 2, 3]
>>> list2 = [4, 5, 6]
>>> print(list2 + list2)
[1, 2, 3, 4, 5, 6]

而如果我们想要某个列表重复,则可以使用 *

>>> list1 = [1, 3, 4]
>>> print(list1 * 2)
[1, 3, 4, 1, 3, 4]

3.4 元组

tuple 也是一种类似于 list有序 列表,用 () 标识,内部元素用逗号隔开。它俩的一个最大区别在于: tuple 一旦初始化之后,就不能再修改了,相当于只读列表,所以 tuple 不像 list 一样有类似 append()、insert() 等方法;

常用方法如下:

方法说明
len(tuple)计算元组元素个数
tuple(seq)将列表转换为元组
max(tuple)返回元组中元素最大值
min(tuple)返回元组中元素最小值

如果我们要定义一个空的元组,可以用如下的方式:

tuple = ()

而如果元组中只有一个元素时,为了避免歧义,通常需要定义成如下形式:

t = (1,)

3.5 字典

列表是有序的对象集合,而字典则是无序的对象集合,字典用 {}标识,元素间用逗号分隔,每个元素由 key:value 的形式组成。

两者之间的区别在于:字典中的元素是通过键值对来存取的,而不是通过偏移存取。

字典值虽然能够没有限制,但是键是有限制的,主要有如下两点需要记住:

  1. 不允许同一个键出现两次;
  2. 键必须不可变,所以它可以是数字、字符串或元组,但是不能用列表;

字典也有许多方法供我们使用,主要方法总结如下:

方法说明
len(dict)计算字典元素个数,即键的总数
str(dict)输出字典可打印的字符串表示
type(variable)返回输入的变量类型,如果变量是字典就返回字典类型
dict.clear()删除字典内所有元素
dict.copy()返回一个字典的浅复制
dict.haskey(key)如果键在字典 dict 里返回 True,否则返回 False
dict.get(key)返回指定键的值
dict.keys()以列表返回一个字典所有的键
dict.values()以列表返回字典中的所有值
dict.items()以列表返回可遍历的(键, 值) 元组数组
pop(key)删除字典给定键 key 所对应的值,返回值为被删除的值
popitem()返回并删除字典中的最后一对键和值

3.6 布尔值

布尔值只有TrueFalse两种值,要么是True,要么是False。在Python中,可以直接用TrueFalse 直接表示布尔值,也可以通过布尔运算计算出来。

>>> False
False
>>> 3 > 2
True

4. 运算符

Python 支持多种运算符,但是运算符之间也是有优先级的,下表大致按照优先级从高到低的顺序列出了所有运算符,下面分别介绍运算符的类别;

运算符描述
**指数 (最高优先级)
~ + -按位翻转, 一元加号和减号 (最后两个的方法名为 +@ 和 -@)
* / % //乘,除,取模和取整除
+ -加法减法
>> <<右移,左移运算符
&位 'AND'
`^`位运算符
<= < > >=比较运算符
<> == !=等于运算符
= %= /= //= -= += *= **=赋值运算符
is is not身份运算符
in not in成员运算符
not and or逻辑运算符

4.1 算术运算符

假设变量 a = 10, b = 20

运算符描述实例
+加 - 两个对象相加a + b 输出结果 30
-减 - 得到负数或是一个数减去另一个数a - b 输出结果 -10
*乘 - 两个数相乘或是返回一个被重复若干次的字符串a * b 输出结果 200
/除 - x 除以 yb / a 输出结果 2
%取模 - 返回除法的余数b % a 输出结果 0
**幂 - 返回 xy 次幂a**b 为 10 的 20 次方, 输出结果 100000000000000000000
//取整除 - 返回商的整数部分(向下取整>>> 9//2 4 >>> -9//2 -5

4.2 比较运算符

假设变量 a = 10, b = 20

运算符描述实例
==等于 - 比较对象是否相等(a == b) 返回 False
!=不等于 - 比较两个对象是否不相等(a != b) 返回 True
<>不等于 - 比较两个对象是否不相等。python3 已废弃。(a <> b) 返回 True。这个运算符类似 !=
>大于 - 返回 x 是否大于 y(a > b) 返回 False
<小于 - 返回 x 是否小于 y。所有比较运算符返回 1 表示真,返回 0 表示假。这分别与特殊的变量 TrueFalse 等价(a < b) 返回 True
>=大于等于 - 返回 x 是否大于等于 y(a >= b) 返回 False
<=小于等于 - 返回 x 是否小于等于 y(a <= b) 返回 True

4.3 赋值运算符

假设变量 a = 10, b = 20

运算符描述实例
=简单的赋值运算符c = a + ba + b 的运算结果赋值为 c
+=加法赋值运算符c += a 等效于 c = c + a
-=减法赋值运算符c -= a 等效于 c = c - a
*=乘法赋值运算符c *= a 等效于 c = c * a
/=除法赋值运算符c /= a 等效于 c = c / a
%=取模赋值运算符c %= a 等效于 c = c % a
**=幂赋值运算符c \**= a 等效于 c = c ** a
//=取整除赋值运算符c //= a 等效于 c = c // a

4.4 逻辑运算符

假设变量 a = 10, b = 20

运算符逻辑表达式描述实例
andx and y布尔"与" - 如果 xFalsex and y 返回 False,否则它返回 y 的计算值(a and b) 返回 20
orx or y布尔"或" - 如果 x 是非 0,它返回 x 的值,否则它返回 y 的计算值(a or b) 返回 10
notnot x布尔"非" - 如果 xTrue,返回 False 。如果 xFalse,它返回 Truenot(a and b) 返回 False

4.5 位运算符

假设变量 a = 60, b = 13

按位运算符石将数字转换为二进制之后来进行计算的,则 a = 00111100、b = 00001101

运算符描述实例
&按位与运算符:参与运算的两个值,如果两个相应位都为 1,则该位的结果为 1,否则为 0(a & b) 输出结果 12 ,二进制解释: 0000 1100
``按位或运算符:只要对应的二个二进位有一个为 1 时,结果位就为 1`(ab)` 输出结果 61 ,二进制解释: 0011 1101
^按位异或运算符:当两对应的二进位相异时,结果为 1(a ^ b) 输出结果 49 ,二进制解释: 0011 0001
~按位取反运算符:对数据的每个二进制位取反,即把 1 变为 0,把 0 变为 1 。~x 类似于 -x-1(~a ) 输出结果 -61 ,二进制解释: 1100 0011,在一个有符号二进制数的补码形式。
<<左移动运算符:运算数的各二进位全部左移若干位,由 << 右边的数字指定了移动的位数,高位丢弃,低位补 0。a << 2 输出结果 240 ,二进制解释: 1111 0000
>>右移动运算符:把 ">>” 左边的运算数的各二进位全部右移若干位,>> 右边的数字指定了移动的位数a >> 2 输出结果 15 ,二进制解释: 0000 1111

4.6 成员运算符

运算符描述实例
in如果在指定的序列中找到值返回 True,否则返回 Falsexy 序列中 , 如果 xy 序列中返回 True
not in如果在指定的序列中没有找到值返回 True,否则返回 Falsex 不在 y 序列中 , 如果 x 不在 y 序列中返回 True

4.7 身份运算符

身份运算符用于比较两个对象的存储单元:

运算符描述实例
isis 是判断两个标识符是不是引用自一个对象x is y, 类似 id(x) == id(y) , 如果引用的是同一个对象则返回 True,否则返回 False
is notis not 是判断两个标识符是不是引用自不同对象x is not y , 类似 id(a) != id(b)。如果引用的不是同一个对象则返回结果 True,否则返回 False

5. 总结

好了,文章到这里也算🈶️挺多内容了,赶紧去仔细看看,然后动手实践起来吧。

如果你觉得我的文章对你有所帮助,那就赶紧去关注我吧。另外,为了方便大家交流,我还特意创建了微信交流群,如果你也有兴趣加入,关注我的公众号(村雨遥)回复 加群,我人工拉你入群哦。

【Python 入门指北】No 3. Python 语言元素

点赞
收藏
评论区
推荐文章
浅梦一笑 浅梦一笑
4年前
Python小白零基础入门 —— 变量及简单的数据类型
最近想着出一个Python小白零基础入门系列的文章,希望能对入门的小伙伴有所帮助,内容会囊括简单的数据类型、列表、字典、循环以及函数的定义,对于一些概念会以图解的方式进行讲解。今天这篇文章就介绍一下Python中的变量以及简单的数据类型,文末还列了一些练手的题目,大家可以边学边练!一、变量1、变量是什么在Python中,变量是用来储存数据的,更直白点,变
Irene181 Irene181
4年前
盘点一款Python二级考试模拟软件,带你轻松过关二级Python考试
大家好,我是Python进阶者。今天给大家讲的这个软件,主要是想让大家通过这个软件能将自己的Python基础进一步提高。一、前言相信有些小伙伴学习Python有一段时日,但是又不知道自己的Python基础学的如何,这个时候就需要一款神器来检测一下自己的Python基础了。要想检测自己的Python功力最直观的方法当然是做题了,至于做什么题了我们就不得而知了,
python知道 python知道
4年前
Python初学者必备书籍《Python入门经典》高清PDF版|百度网盘免费下载|Python初学者,自学Python必读
提取码:1028以及前文提到的学习路线图内容简介Python是一种解释型、面向对象、动态数据类型的高级程序设计语言。Python可以用于很多的领域,从科学计算到游戏开发。《Python入门经典》是面向Python初学者的学习指南,详细介绍了Python编程基础,以及一些高级概念,如面向对象编程。全书分为24章。第1章介绍了Python的背景和安装方法。第2章
学python的猫 学python的猫
4年前
小白想学python,怎么做?
小白需要怎么学习python,python学习的难度大吗?学python需要从哪学起?学Python难?首先,我们普及一下编程语言的基础知识。编程语言的作用是为了让计算机干活,比如下载视频,音乐编辑文档等,而计算机干活的CPU只认识机器指令,所以,尽管编程语言不同,最后都要翻译成CPU能听懂的语言。而不同的编程语言,干同一个活,编写的代码量,差距也很大。Py
Alonso095 Alonso095
4年前
Python的环境搭建和下载
Python是一个跨平台、可移植的编程语言,因此可在windows、Linux和MacOSX系统中安装使用。安装完成后,你会得到Python解释器环境,可以通过终端输入python命令查看本地是否已经按照python以及python版本。这里有一点需要注意的是,如果没有将python的安装目录添加到环境变量中,会报错(python不是内部命令或外部命
梦想橡皮擦 梦想橡皮擦
4年前
15. Python 程序运行速度如何提高十倍?第一遍滚雪球学 Python 收工
本篇文章将给大家介绍Python多线程与多进程相关知识,学习完该知识点之后,你的Python程序将进入另一个高峰。<center<fontcolorred缓解一下视疲劳</font</center15.Python程序运行速度如何提高十倍?第一遍滚雪球学Python收工(https://imghelloworld.oss
Stella981 Stella981
3年前
Scapy 从入门到放弃
0x00前言最近闲的没事,抽空了解下地表最强的嗅探和收发包的工具:scapy。scapy是一个python模块,使用简单,并且能灵活地构造各种数据包,是进行网络安全审计的好帮手。0x01安装因为2020年python官方便不再支持python2,所以使用python3安装。!(https://oscimg.oschina.net/os
Stella981 Stella981
3年前
Python快速入门到精通开发知识体系图
课程简介:Python语言已经在大数据、机器学习等领域胜出,这是毋庸置疑的事实了。它以简洁、优雅的语言风格征服了程序员和非专业程序员。并且,它还是一种非常容易学的语言。所以,学习Python性价比最高。本套课程适合零基础学员学习,是入门Python的必须课程。学完此课,你讲达到Python初级程序员的水平,具备开发基础,掌握面向对象编程思
Stella981 Stella981
3年前
Django实战1
1项目开发环境语言环境:python3.6.2,django2.1.2数据库环境:sqlite3(开发环境使用,部署环境使用mysql5.6)开发工具:pycharm2安装python说明:已经安装过python3.6环境的可以跳过此步。python安装包下载地
Stella981 Stella981
3年前
Python进阶丨如何创建你的第一个Python元类?
摘要:通过本文,将深入讨论Python元类,其属性,如何以及何时在Python中使用元类。Python元类设置类的行为和规则。元类有助于修改类的实例,并且相当复杂,是Python编程的高级功能之一。通过本文,将深入讨论Python元类,其属性,如何以及何时在Python中使用元类。本文介绍以下概念:什么是Python元类?
Stella981 Stella981
3年前
Python编程思想(22):Lambda表达式
李宁老师已经在「极客起源」微信公众号推出《Python编程思想》电子书,囊括了Python的核心技术,以及Python的主要函数库的使用方法。读者可以在「极客起源」公众号中输入160442开始学习。\正文现在几乎所有的现代编程语言都支持lambda表达式,如果说函数是命名的、