python安装MongoDB与运算符优先级

python安装MongoDB

MongoDB 是目前最流行的 NoSQL 数据库之一,使用的数据类型 BSON(类似 JSON)。

PyMongo

Python 要连接 MongoDB 需要 MongoDB 驱动,这里我们使用 PyMongo 驱动来连接。

pip 安装

pip 是一个通用的 Python 包管理工具,提供了对 Python 包的查找、下载、安装、卸载的功能。

安装 pymongo:

复制代码
$ python3 -m pip3 install pymongo

也可以指定安装的版本:

复制代码
$ python3 -m pip3 install pymongo==3.5.1

更新 pymongo 命令:

复制代码
$ python3 -m pip3 install --upgrade pymongo

easy_install 安装

旧版的 Python 可以使用 easy_install 来安装,easy_install 也是 Python 包管理工具。

复制代码
$ python -m easy_install pymongo

更新 pymongo 命令:

复制代码
$ python -m easy_install -U pymongo

测试 PyMongo

接下来我们可以创建一个测试文件 demo_test_mongodb.py,代码如下:

复制代码
import pymongo

创建数据库

创建一个数据库

创建数据库需要使用 MongoClient 对象,并且指定连接的 URL 地址和要创建的数据库名。

如下实例中,我们创建的数据库 runoobdb :

复制代码
import pymongo
myclient = pymongo.MongoClient("mongodb://localhost:27017/")
mydb = myclient["runoobdb"]

判断数据库是否已存在

我们可以读取 MongoDB 中的所有数据库,并判断指定的数据库是否存在:

复制代码
import pymongo
myclient = pymongo.MongoClient('mongodb://localhost:27017/')
dblist = myclient.list_database_names()
# dblist = myclient.database_names() 
if "runoobdb" in dblist:
  print("数据库已存在!")

Python运算符优先级

所有的数学运算都是从左向右进行的,Python 语言中的大部分运算符也是从左向右结合的,只有单目运算符、赋值运算符和三目运算符例外,它们是从右向左结合的,也就是说,它们是从右向左运算的。

乘法和加法是两个可结合的运算符,也就是说,这两个运算符左右两边的操作数可以互换位置而不会影响结果。

运算符有不同的优先级,所谓优先级就是在表达式运算中的运算顺序。下表中列出了包括分隔符在内的所有运算符的优先级顺序。

运算符说明 Python运算符 优先级
索引运算符 xindex或xindex:index2\[:index3] 18、19
属性访问 x.attrbute 17
乘方 ** 16
按位取反 ~ 15
符号运算符 +或- 14
乘、除 *、/、//、% 13
加、减 +、- 12
位移 >>、<< 11
按位与 & 10
按位异或 ^ 9
按位或 | 8
比较运算符 ==、!=、>、>=、<、<= 7
is运算符 is、is not 6
in运算符 in、not in 5
逻辑非 not 4
逻辑与 and 3
逻辑或 or 2
[运算符的优先级]

根据表中运算符的优先级,我们分析 4+4<<2 语句的执行结果。程序先执行 4+4 得到结果 8,再执行 8<<2 得到 32。如果使用"()"就可以改变程序的执行顺序,比如 4+(4<<2),则先执行 4<<2 得到结果16,再执行 4+16 得到 20。

虽然 Python 运算符存在优先级的关系,但并不推荐过度依赖运算符的优先级,因为这会导致程序的可读性降低。因此,在这里要提醒读者:

不要把一个表达式写得过于复杂,如果一个表达式过于复杂,则把它分成几步来完成。

不要过多地依赖运算符的优先级来控制表达式的执行顺序,这样可读性太差,应尽量使用"()"来控制表达式的执行顺序。

相关推荐
1024奇点2 小时前
【仓颉语言入门 · 第二篇 第 22 课】
开发语言·ide·开源
实名上网宋凯宣2 小时前
Django
后端·python·django
Warren2Lynch2 小时前
C4 模型详解:利用 Visual Paradigm 可视化软件架构的综合指南
开发语言·uml
如若1233 小时前
【论文复现】CoFailMed:从零复现医学图像分割的共享失败审计,含完整代码流程与科研绘图
人工智能·python
Knight_AL3 小时前
Java 文件下载时文件名中的 `#` 被转换成 `%23`?一次 URL 编码与解码问题排查
java·开发语言
FRing034 小时前
vue2干货总结2(v-bind、v-for、v-model、指令修饰符、v-bind操作class和style)
开发语言·前端·vue.js·vue2
by209994 小时前
C++ 智能指针的所有权与使用
开发语言·c++·经验分享
砚底藏山河4 小时前
python量化自定义周期 K 线合成
java·开发语言·数据库·python·金融
视觉小萌新4 小时前
AI Class 3 · Chapter 1:变量、字符串、list/dict、if/for(python学习-小白版-有经验可跳过)
python·学习·list
IT召唤狮4 小时前
开源企业级零信任项目Pangolin,零信任能挡住PHP核弹漏洞吗?
开发语言·开源·php