导航:首页 > 编程语言 > python数据库编程实例

python数据库编程实例

发布时间:2023-06-11 08:36:36

① 后端编程python3-数据库编程

对大多数软件开发者而言,术语数据库通常是指RDBMS(关系数据库管理系统), 这些系统使用表格(类似于电子表格的网格),其中行表示记录,列表示记录的字段。表格及其中存放的数据是使用SQL (结构化査询语言)编写的语句来创建并操纵的。Python提供了用于操纵SQL数据库的API(应用程序接口),通常与作为标准的SQLite 3数据库一起发布。

另一种数据库是DBM (数据库管理器),其中存放任意数量的键-值项。Python 的标准库提供了几种DBM的接口,包括某些特定于UNIX平台的。DBM的工作方式 与Python中的字典类似,区别在于DBM通常存放于磁盘上而不是内存中,并且其键与值总是bytes对象,并可能受到长度限制。本章第一节中讲解的shelve模块提供了方便的DBM接口,允许我们使用字符串作为键,使用任意(picklable)对象作为值。

如果可用的 DBM 与 SQLite 数据库不够充分,Python Package Index, pypi.python.org/pypi中提供了大量数据库相关的包,包括bsddb DBM ("Berkeley DB"),对象-关系映射器,比如SQLAlchemy (www.sqlalchemy.org),以及流行的客户端/服务器数据的接口,比如 DB2、Informix、Ingres、MySQL、ODBC 以及 PostgreSQL。

本章中,我们将实现某程序的两个版本,该程序用于维护一个DVD列表,并追踪每个DVD的标题、发行年份、时间长度以及发行者。该程序的第一版使用DBM (通过shelve模块)存放其数据,第二版则使用SQLite数据库。两个程序都可以加载与保存简单的XML格式,这使得从某个程序导出DVD数据并将其导入到其他程序成为可能。与DBM版相比,基于SQL的程序提供了更多一些的功能,并且其数据设计也稍干净一些。

12.1 DBM数据库

shelve模块为DBM提供了一个wrapper,借助于此,我们在与DBM交互时,可以将其看做一个字典,这里是假定我们只使用字符串键与picklable值,实际处理时, shelve模块会将键与值转换为bytes对象(或者反过来)。

由于shelve模块使用的是底层的DBM,因此,如果其他计算机上没有同样的DBM,那么在某台计算机上保存的DBM文件在其他机器上无法读取是可能的。为解决这一问题,常见的解决方案是对那些必须在机器之间可传输的文件提供XML导入与导出功能,这也是我们在本节的DVD程序dvds-dbm.py中所做的。

对键,我们使用DVD的标题;对值,则使用元组,其中存放发行者、发行年份以及时间。借助于shelve模块,我们不需要进行任何数据转换,并可以把DBM对象当做一个字典进行处理。

程序在结构上类似于我们前面看到的那种菜单驱动型的程序,因此,这里主要展示的是与DBM程序设计相关的那部分。下面给出的是程序main()函数中的一部分, 忽略了其中菜单处理的部分代码。

db = None

try:

db = shelve.open(filename, protocol=pickle.HIGHEST_PROTOCOL)

finally:

if db is not None:

db.dose()

这里我们已打开(如果不存在就创建)指定的DBM文件,以便于对其进行读写操作。每一项的值使用指定的pickle协议保存为一个pickle,现有的项可以被读取, 即便是使用更底层的协议保存的,因为Python可以计算出用于读取pickle的正确协议。最后,DBM被关闭——其作用是清除DBM的内部缓存,并确保磁盘文件可以反映出已作的任何改变,此外,文件也需要关闭。

该程序提供了用于添加、编辑、列出、移除、导入、导出DVD数据的相应选项。除添加外,我们将忽略大部分用户接口代码,同样是因为已经在其他上下文中进行了展示。

def add_dvd(db):

title = Console.get_string("Title", "title")

if not title:

return

director = Console.get_string("Director", "director")

if not director:

return

year = Console.get_integer("Year", "year",minimum=1896,

maximum=datetime,date.today().year)

ration = Console.get_integer("Duration (minutes)", "minutes“, minimum=0, maximum=60*48)

db[title] = (director, year, ration)

db.sync()

像程序菜单调用的所有函数一样,这一函数也以DBM对象(db)作为其唯一参数。该函数的大部分工作都是获取DVD的详细资料,在倒数第二行,我们将键-值项存储在DBM文件中,DVD的标题作为键,发行者、年份以及时间(由shelve模块pickled在一起)作为值。

为与Python通常的一致性同步,DBM提供了与字典一样的API,因此,除了 shelve.open() 函数(前面已展示)与shelve.Shelf.sync()方法(该方法用于清除shelve的内部缓存,并对磁盘上文件的数据与所做的改变进行同步——这里就是添加一个新项),我们不需要学习任何新语法。

def edit_dvd(db):

old_title = find_dvd(db, "edit")

if old_title is None:

return

title = Console.get.string("Title", "title", old_title)

if not title:

return

director, year, ration = db[old_title]

...

db[title]= (director, year, ration)

if title != old_title:

del db[old_title]

db.sync()

为对某个DVD进行编辑,用户必须首先选择要操作的DVD,也就是获取DVD 的标题,因为标题用作键,值则用于存放其他相关数据。由于必要的功能在其他场合 (比如移除DVD)也需要使用,因此我们将其实现在一个单独的find_dvd()函数中,稍后将査看该函数。如果找到了该DVD,我们就获取用户所做的改变,并使用现有值作为默认值,以便提高交互的速度。(对于这一函数,我们忽略了大部分用户接口代码, 因为其与添加DVD时几乎是相同的。)最后,我们保存数据,就像添加时所做的一样。如果标题未作改变,就重写相关联的值;如果标题已改变,就创建一个新的键-值对, 并且需要删除原始项。

def find_dvd(db, message):

message = "(Start of) title to " + message

while True:

matches =[]

start = Console.get_string(message, "title")

if not start:

return None

for title in db:

if title.lower().startswith(start.lower()):

matches.append(title)

if len(matches) == 0:

print("There are no dvds starting with", start)

continue

elif len(matches) == 1:

return matches[0]

elif len(matches) > DISPLAY_LIMIT:

print("Too many dvds start with {0}; try entering more of the title".format(start)

continue

else:

matches = sorted(matches, key=str.lower)

for i, match in enumerate(matches):

print("{0}: {1}".format(i+1, match))

which = Console.get_integer("Number (or 0 to cancel)",

"number", minimum=1, maximum=len(matches))

return matches[which - 1] if which != 0 else None

为尽可能快而容易地发现某个DVD,我们需要用户只输入其标题的一个或头几个字符。在具备了标题的起始字符后,我们在DBM中迭代并创建一个匹配列表。如果只有一个匹配项,就返回该项;如果有几个匹配项(但少于DISPLAY_LIMIT, 一个在程序中其他地方设置的整数),就以大小写不敏感的顺序展示所有这些匹配项,并为每一项设置一个编号,以便用户可以只输入编号就可以选择某个标题。(Console.get_integer()函数可以接受0,即便最小值大于0,以便0可以用作一个删除值。通过使用参数allow_zero=False, 可以禁止这种行为。我们不能使用Enter键,也就是说,没有什么意味着取消,因为什么也不输入意味着接受默认值。)

def list_dvds(db):

start =”"

if len(db)> DISPLAY.LIMIT:

start = Console.get_string(“List those starting with [Enter=all]”, "start”)

print()

for title in sorted(db, key=str.lower):

if not start or title.Iower().startswith(start.lower()):

director, year, ration = db[title]

print("{title} ({year}) {ration} minute{0}, by "

"{director}".format(Util.s(ration),**locals()))

列出所有DVD (或者那些标题以某个子字符串引导)就是对DBM的所有项进行迭代。

Util.s()函数就是简单的s = lambda x: "" if x == 1 else "s",因此,如果时间长度不是1分钟,就返回"s"。

def remove_dvd(db):

title = find_dvd(db, "remove")

if title is None:

return

ans = Console.get_bool("Remove {0}?".format(title), "no")

if ans:

del db[title]

db.sync()

要移除一个DVD,首先需要找到用户要移除的DVD,并请求确认,获取后从DBM中删除该项即可。

到这里,我们展示了如何使用shelve模块打开(或创建)一个DBM文件,以及如何向其中添加项、编辑项、对其项进行迭代以及移除某个项。

遗憾的是,在我们的数据设计中存在一个瑕疵。发行者名称是重复的,这很容易导致不一致性,比如,发行者Danny DeVito可能被输入为"Danny De Vito",用于 一个电影;也可以输入为“Danny deVito",用于另一个。为解决这一问题,可以使用两个DBM文件,主DVD文件使用标题键与(年份,时间长度,发行者ID)值; 发行者文件使用发行者ID (整数)键与发行者名称值。下一节展示的SQL数据库 版程序将避免这一瑕疵,这是通过使用两个表格实现的,一个用于DVD,另一个用于发行者。

12.2 SQL数据库

大多数流行的SQL数据库的接口在第三方模块中是可用的,Python带有sqlite3 模块(以及SQLite 3数据库),因此,在Python中,可以直接开始数据库程序设计。SQLite是一个轻量级的SQL数据库,缺少很多诸如PostgreSQL这种数据库的功能, 但非常便于构造原型系统,并且在很多情况下也是够用的。

为使后台数据库之间的切换尽可能容易,PEP 249 (Python Database API Specification v2.0)提供了称为DB-API 2.0的API规范。数据库接口应该遵循这一规范,比如sqlite3模块就遵循这一规范,但不是所有第三方模块都遵循。API规范中指定了两种主要的对象,即连接对象与游标对象。表12-1与表12-2中分别列出了这两种对象必须支持的API。在sqlite3模块中,除DB-API 2.0规范必需的之外,其连接对象与游标对象都提供了很多附加的属性与方法。

DVD程序的SQL版本为dvds.sql.py,该程序将发行者与DVD数据分开存储,以 避免重复,并提供一个新菜单,以供用户列出发行者。该程序使用的两个表格在图12-1

def connect(filename):

create= not os.path.exists(filename)

db = sqlite3.connect(filename)

if create:

cursor = db.cursor()

cursor.execute("CREATE TABLE directors ("

"id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE NOT NULL, "

"name TEXT UNIQUE NOT NULL)")

cursor.execute("CREATE TABLE dvds ("

"id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE NOT NULL, "

"title TEXT NOT NULL, "

"year INTEGER NOT NULL,"

"ration INTEGER NOT NULL, "

"director_id INTEGER NOT NULL, ”

"FOREIGN KEY (director_id) REFERENCES directors)")

db.commit()

return db

sqlite3.connect()函数会返回一个数据库对象,并打开其指定的数据库文件。如果该文件不存在,就创建一个空的数据库文件。鉴于此,在调用sqlite3.connect()之前,我们要注意数据库是否是准备从头开始创建,如果是,就必须创建该程序要使用的表格。所有査询都是通过一个数据库游标完成的,可以从数据库对象的cursor()方法获取。

注意,两个表格都是使用一个ID字段创建的,ID字段有一个AUTOINCREMENT 约束——这意味着SQLite会自动为ID字段赋予唯一性的数值,因此,在插入新记录时,我们可以将这些字段留给SQLite处理。

SQLite支持有限的数据类型——实际上就是布尔型、数值型与字符串——但使用数据'‘适配器”可以对其进行扩展,或者是扩展到预定义的数据类型(比如那些用于日期与datetimes的类型),或者是用于表示任意数据类型的自定义类型。DVD程序并不需要这一功能,如果需要,sqlite3模块的文档提供了很多详细解释。我们使用的外部键语法可能与用于其他数据库的语法不同,并且在任何情况下,只是记录我们的意图,因为SQLite不像很多其他数据库那样需要强制关系完整性,sqlite3另一点与众不同的地方在于其默认行为是支持隐式的事务处理,因此,没有提供显式的“开始事务” 方法。

def add_dvd(db):

title = Console.get_string("Title", "title")

if not title:

return

director = Console.get_string("Director", "director")

if not director:

return

year = Console.get_integer("Year", "year”, minimum=1896,

maximum=datetime.date.today().year)

ration = Console.get_integer("Duration (minutes)", "minutes",

minimum=0,maximum=60*48)

director_id = get_and_set_director(db, director)

cursor = db.cursor()

cursor.execute("INSERT INTO dvds ”

"(title, year, ration, director_id)"

"VALUES (?, ?, ?, ?)",

(title, year, ration, director_id))

db.commit()

这一函数的开始代码与dvds-dbm.py程序中的对应函数一样,但在完成数据的收集后,与原来的函数有很大的差别。用户输入的发行者可能在也可能不在directors表格中,因此,我们有一个get_and_set_director()函数,在数据库中尚无某个发行者时, 该函数就将其插入到其中,无论哪种情况都返回就绪的发行者ID,以便在需要的时候插入到dvds表。在所有数据都可用后,我们执行一条SQL INSERT语句。我们不需要指定记录ID,因为SQLite会自动为我们提供。

在査询中,我们使用问号(?)作为占位符,每个?都由包含SQL语句的字符串后面的序列中的值替代。命名的占位符也可以使用,后面在编辑记录时我们将看到。尽管避免使用占位符(而只是简单地使用嵌入到其中的数据来格式化SQL字符串)也是可能的,我们建议总是使用占位符,并将数据项正确编码与转义的工作留给数据库模块来完成。使用占位符的另一个好处是可以提高安全性,因为这可以防止任意的SQL 被恶意地插入到一个査询中。

def get_and_set_director(db, director):

director_id = get_director_id(db, director)

if directorjd is not None:

return director_id

cursor = db.cursor()

cursor.execute("lNSERT INTO directors (name) VALUES (?)”,(director,))

db.commit()

return get_director_id(db, director)

这一函数返回给定发行者的ID,并在必要的时候插入新的发行者记录。如果某个记录被插入,我们首先尝试使用get_director_id()函数取回其ID。

def get_director_id(db, director):

cursor = db.cursor()

cursor.execute("SELECT id FROM directors WHERE name=?",(director,))

fields = cursor.fetchone()

return fields[0] if fields is not None else None

get_director_id()函数返回给定发行者的ID,如果数据库中没有指定的发行者,就返回None。我们使用fetchone()方法,因为或者有一个匹配的记录,或者没有。(我们知道,不会有重复的发行者,因为directors表格的名称字段有一个UNIQUE约束,在任何情况下,在添加一个新的发行者之前,我们总是先检査其是否存在。)这种取回方法总是返回一个字段序列(如果没有更多的记录,就返回None)。即便如此,这里我们只是请求返回一个单独的字段。

def edit_dvd(db):

title, identity = find_dvd(db, "edit")

if title is None:

return

title = Console.get_string("Title","title", title)

if not title:

return

cursor = db.cursor()

cursor.execute("SELECT dvds.year, dvds.ration, directors.name"

“FROM dvds, directors "

"WHERE dvds.director_id = directors.id AND "

"dvds.id=:id", dict(id=identity))

year, ration, director = cursor.fetchone()

director = Console.get_string("Director", "director", director)

if not director:

return

year = Console,get_integer("Year","year", year, 1896,datetime.date.today().year)

ration = Console.get_integer("Duration (minutes)", "minutes",

ration, minimum=0, maximum=60*48)

director_id = get_and_set_director(db, director)

cursor.execute("UPDATE dvds SET title=:title, year=:year,"

"ration=:ration, director_id=:directorjd "

"WHERE id=:identity", locals())

db.commit()

要编辑DVD记录,我们必须首先找到用户需要操纵的记录。如果找到了某个记录,我们就给用户修改其标题的机会,之后取回该记录的其他字段,以便将现有值作为默认值,将用户的输入工作最小化,用户只需要按Enter键就可以接受默认值。这里,我们使用了命名的占位符(形式为:name),并且必须使用映射来提供相应的值。对SELECT语句,我们使用一个新创建的字典;对UPDATE语句,我们使用的是由 locals()返回的字典。

我们可以同时为这两个语句都使用新字典,这种情况下,对UPDATE语句,我们可以传递 dict(title=title, year=year, ration=ration, director_id=director_id, id=identity)),而非 locals()。

在具备所有字段并且用户已经输入了需要做的改变之后,我们取回相应的发行者ID (如果必要就插入新的发行者记录),之后使用新数据对数据库进行更新。我们采用了一种简化的方法,对记录的所有字段进行更新,而不仅仅是那些做了修改的字段。

在使用DBM文件时,DVD标题被用作键,因此,如果标题进行了修改,我们就需要创建一个新的键-值项,并删除原始项。不过,这里每个DVD记录都有一个唯一性的ID,该ID是记录初次插入时创建的,因此,我们只需要改变任何其他字段的值, 而不需要其他操作。

def find_dvd(db, message):

message = "(Start of) title to " + message

cursor = db.cursor()

while True: .

start = Console.get_stnng(message, "title")

if not start:

return (None, None)

cursor.execute("SELECT title, id FROM dvds "

"WHERE title LIKE ? ORDER BY title”,

(start +"%",))

records = cursor.fetchall()

if len(records) == 0:

print("There are no dvds starting with", start)

continue

elif len(records) == 1:

return records[0]

elif len(records) > DISPLAY_LIMIT:

print("Too many dvds ({0}) start with {1}; try entering "

"more of the title".format(len(records),start))

continue

else:

for i, record in enumerate(records):

print("{0}:{1}".format(i + 1, record[0]))

which = Console.get_integer("Number (or 0 to cancel)",

"number", minimum=1, maximum=len(records))

return records[which -1] if which != 0 else (None, None)

这一函数的功能与dvdsdbm.py程序中的find_dvd()函数相同,并返回一个二元组 (DVD标题,DVD ID)或(None, None),具体依赖于是否找到了某个记录。这里并不需要在所有数据上进行迭代,而是使用SQL通配符(%),因此只取回相关的记录。

由于我们希望匹配的记录数较小,因此我们一次性将其都取回到序列的序列中。如果有不止一个匹配的记录,但数量上又少到可以显示,我们就打印记录,并将每条记录附带一个数字编号,以便用户可以选择需要的记录,其方式与在dvds-dbm.py程序中所做的类似:

def list_dvds(db):

cursor = db.cursor()

sql = ("SELECT dvds.title, dvds.year, dvds.ration, "

"directors.name FROM dvds, directors "

"WHERE dvds.director_id = directors.id")

start = None

if dvd_count(db) > DISPLAY_LIMIT:

start = Console.get_string("List those starting with [Enter=all]", "start")

sql += " AND dvds.title LIKE ?"

sql += ” ORDER BY dvds.title"

print()

if start is None:

cursor.execute(sql)

else:

cursor.execute(sql, (start +"%",))

for record in cursor:

print("{0[0]} ({0[1]}) {0[2]} minutes, by {0[3]}".format(record))

要列出每个DVD的详细资料,我们执行一个SELECT査询。该査询连接两个表,如果记录(由dvd_count()函数返回)数量超过了显示限制值,就将第2个元素添加到WHERE 分支,之后执行该査询,并在结果上进行迭代。每个记录都是一个序列,其字段是与 SELECT査询相匹配的。

def dvd_count(db):

cursor = db.cursor()

cursor.execute("SELECT COUNT(*) FROM dvds")

return cursor.fetchone()[0]

我们将这几行代码放置在一个单独的函数中,因为我们在几个不同的函数中都需要使用这几行代码。

我们忽略了 list_directors()函数的代码,因为该函数在结构上与list_dvds()函数非常类似,只不过更简单一些,因为本函数只列出一个字段(name)。

def remove_dvd(db):

title, identity = find_dvd(db, "remove")

if title is None:

return

ans = Console.get_bool("Remove {0}?".format(title), "no")

if ans:

cursor = db.cursor()

cursor.execute("DELETE FROM dvds WHERE id=?", (identity,))

db.commit()

在用户需要删除一个记录时,将调用本函数,并且本函数与dvds-dbm.py程序中 相应的函数是非常类似的。

到此,我们完全查阅了 dvds-sql.py程序,并且了解了如何创建数据库表格、选取 记录、在选定的记录上进行迭代以及插入、更新与删除记录。使用execute()方法,我们可以执行底层数据库所支持的任意SQL语句。

SQLite提供了比我们这里使用的多得多的功能,包括自动提交模式(以及任意其他类型的事务控制),以及创建可以在SQL查询内执行的函数的能力。提供一个工厂函数并用于控制对每个取回的记录返回什么(比如,一个字典或自定义类型,而不是字段序列)也是可能的。此外,通过传递“:memory:”作为文件名,创建内存中的SQLite 数据库也是可能的。

以上内容部分摘自视频课程05后端编程Python22 数据库编程,更多实操示例请参照视频讲解。跟着张员外讲编程,学习更轻松,不花钱还能学习真本领。

② 如何用python写sql

python可以利用pymysql模块操作数据库。

什么是 PyMySQL?

PyMySQL 是在 Python3.x 版本中用于连接 MySQL 服务器的一个库,Python2中则使用mysqldb。

PyMySQL 遵循 Python 数据库 API v2.0 规范,并包含了 pure-Python MySQL 客户端库。

PyMySQL 安装

在使用 PyMySQL 之前,我们需要确保 PyMySQL 已安装。

PyMySQL 下载地址:https://github.com/PyMySQL/PyMySQL。

如果还未安装,我们可以使用以下命令安装最新版的 PyMySQL:

$ pip3 install PyMySQL

如果你的系统不支持 pip 命令,可以使用以下方式安装:

1、使用 git 命令下载安装包安装(你也可以手动下载):

$ git clone https://github.com/PyMySQL/PyMySQL$ cd PyMySQL/$ python3 setup.py install

2、如果需要制定版本号,可以使用 curl 命令来安装:

$ # X.X 为 PyMySQL 的版本号$ curl -L https://github.com/PyMySQL/PyMySQL/tarball/pymysql-X.X | tar xz$ cd PyMySQL*$ python3 setup.py install
$ # 现在你可以删除 PyMySQL* 目录

注意:请确保您有root权限来安装上述模块。

安装的过程中可能会出现"ImportError: No mole named setuptools"的错误提示,意思是你没有安装setuptools,你可以访问https://pypi.python.org/pypi/setuptools找到各个系统的安装方法。

Linux 系统安装实例:

$ wget https://bootstrap.pypa.io/ez_setup.py$ python3 ez_setup.py

数据库连接

连接数据库前,请先确认以下事项:

③ python的问题

IDE选用这里推荐两款常用的 IDE,可以按照自己的条件和场景来选择。PyCharmPyCharm 是由 JetBrain 的人员制作的 IDE,该团队负责最着名的 Java IDE,IntelliJ IDEA之一。PyCharm 的界面和功能对于那些有使用过其他 JetBrain 产品的人来说,是完美的。 此外,如果您喜欢 IPython 或 Anaconda 发行版,那么 PyCharm 可以将其工具和库(如NumPyMatplotlib)集成在一起,从而让您可以使用数组查看器和交互式图表。Thonny现在的开发工具太多了,而且每个开发工具都致力于做成最好用最智能的工具,所以功能越堆越多,越怼越智能。安装这些开发工具比较烧脑,经常需要经过许多配置步骤。作为一个 Python 开发者来说,好多人光是这些配置都要弄半天。配置好之后,打开软件,发现满屏都是菜单、按钮,无从下手,学习这些功能使用又是一大难题。这是一款对初学者特别友好的开发 IDE,它是由爱沙尼亚的 Tartu 大学开发,十分易于上手,还支持插件。如果你有编程基础,会其他编程语言,那么建议你用Pycharm。如果你是编程小白,或者零基础上手,那么建议你用Thonny。入门首先要学习Python基础知识,直接上课程:Python 环境搭建Python 基础语法Python 变量与数据类型Python 流程控制Python函数Python 模块和包Python 数据结构--序列Python ListPython tupplePython 类与对象Python 字典Python 集合Python 函数的参数Python 高阶函数Python 输入输出Python 错误和异常Python 之引用Python 之迭代器Python 之装饰器Python NameSpace & ScopePython Standard Library 01Python Standard Library 02Python datetime 和 timePython 垃圾回收机制Python 到底是值传递还是引用传递Python 之对象的比较与拷贝进阶通过上面基础知识的学习,相信你已经知道Python是个什么玩意了,对它也有一个初步的了解,对它的入门知识点也有些印象了。这时候你需要进阶学习,在入门的基础上更进一步。下面就从 Python 模块、Python爬虫基础、Python Web开发、Python 数据库操作、Python 数据分析及数据科学、Python IO及异步、Python网络编程、Python图像处理、Python 办公、Python 机器学习、Python 可视化 这些Python的基础大类来进行深入学习。Python 模块Python os 模块详解Python shutil 模块Python sys 模块详解Python queue 模块详解Python collections 模块Python random 模块Python logging 模块详解Python 枚举Python json&picklepathlib 模块Python calendar 模块Python math 模块Python decimal 模块Python itertools 模块Python statistics 模块Python operator 模块Python paramiko 模块Python filecmp&difflib模块初识 Python 多线程Python 多线程之 threading 模块Python Queue 进阶用法Python multiprocessing 模块Python 线程池Python 多线程 EventPython爬虫基础爬虫介绍Python 爬虫之 urllib 包基本使用Python 用户登录 Flask-LoginPython Requests 库的基本使用Python Requests 库高级用法正则表达式XPath 和 lxml爬虫利器 Beautiful Soup 之遍历文档PyQuery 详解爬虫利器 Beautiful Soup 之搜索文档Selenium 环境配置Selenium详解Python Scrapy 爬虫框架及搭建Python Scrapy 项目实战PySpider框架的使用Scrapy 模拟登陆Python 解析 XML爬取微信公众号文章内容Python 爬取豆瓣电影 top 250Python newspaper 框架Python Web开发Web 开发 Flask 介绍Web开发 Jinja2模板引擎Flask 框架集成BootstrapWeb表单Flask数据持久化Web 开发 RESTfulPython Web开发 Django 简介Python Django 模型概述与应用HTTP 入门Python Web 开发之 JWT 简介Python Web开发 OAuth2.0 简介OAuth2.0 客户端实战Flask 单元测试Web 开发 Django 管理工具Web 开发 Django 模板Flask 项目结构Python 数据库操作Python 操作 Redis 数据库介绍Python 操作 SQLitePython 操作 MongoDB 数据库介绍Python 操作 MySQLPython SQLAlchemyPython 数据分析及数据科学数据分析之 Numpy 初步NumPy Ndarray 对象及数据类型NumPy 字符串操作NumPy 数学函数NumPy 统计函数NumPy 排序和筛选函数NumPy 位运算与算术函数数据分析之 pandas 初步NumPy 矩阵Numpy 中数组和矩阵的区别Python IO及异步文件读写StringIO & BytesIOPython asyncioPython异步之aiohttpPython网络编程TCP 编程UDP 编程Python图像处理图像库 PIL(一)图像库 PIL(二)图像库 PIL 实例—验证码去噪Python 办公Python 操作 ExcelPython 操作 WordPython 解析 pdfPython 操作 CSVPython 机器学习机器学习概览第 112 天:机器学习算法之蒙特卡洛Python XGBoost 算法项目实战三木板模型算法项目实战第116天:机器学习算法之朴素贝叶斯理论机器学习算法之 K 近邻第120天:机器学习算法之 K 均值聚类机器学习之决策树Python 可视化Python matplotlib introctionPython Matplotlib 进阶操作Seaborn-可视化统计关系Seaborn-可视化分类数据Seaborn-可视化数据集的分布实战Python的知识点学完了之后,并不代表学完了。这只能代表你会Python了,并不能表示你可以去找工作、你可以去接单了。因为你还缺乏实战练习,这个阶段需要你能从一个实际需求中进行建模,然后用Python去实现模型,得到预期的结果。这里列一些贴近工作生活实际的小项目,每个项目都能让你学习到如何进行需求建模,如何用代码去实现,去解决实际的问题。解析网络网盘链接:几行代码,网盘链接提头来见!揭露出轨女友:女友加班发自拍,男友用几行代码发现惊天秘密...爬取小程序:不能爬小程序,叫什么会爬虫解密当代女性胸围:我半夜爬了严选的女性文胸数据,发现了惊天秘密制作签名软件:牛逼!用Python为她设计专属签名软件!识别车牌:如何用 Python 识别车牌?追女神:用Python助女神发朋友圈下载知乎美女图片:Python 抓取知乎几千张小姐姐图片是什么体验?炒股赚钱:一份代码帮我赚了10万写小游戏:不到 150 行代码写一个 Python 版的贪吃蛇抠图无烦恼:Python装逼指南——五行代码实现批量抠图跟踪房价数据:看我如何抓取最新房价数据跟女友恶作剧:女友电脑私存撕葱帅照,我用python偷梁换柱...自动抢红包:强大!用 60 行代码自动抢微信红包下载B站视频:使用 Python 下载 B 站视频更多精彩可以关注我的专栏:我是@无欢不散,看到这里的朋友请帮忙点个赞,也可以关注 @无欢不散 不迷路。

④ python数据分析与应用-Python数据分析与应用 PDF 内部全资料版

给大家带来的一篇关于Python数据相关的电子书资源,介绍了关于Python方面的内容,本书是由人民邮电出版社出版,格式为PDF,资源大小281 MB,黄红梅 张良均编写,目前豆瓣、亚马逊、当当、京东等电子书综合评分为:7.8。

内容介绍

目录

第1章Python数据分析概述1

任务1.1认识数据分析1

1.1.1掌握数据分析的概念2

1.1.2掌握数据分析的流程2

1.1.3了解数据分析应用场景4

任务1.2熟悉Python数据分析的工具5

1.2.1了解数据分析常用工具6

1.2.2了解Python数据分析的优势7

1.2.3了解Python数据分析常用类库7

任务1.3安装Python的Anaconda发行版9

1.3.1了解Python的Anaconda发行版9

1.3.2在Windows系统中安装Anaconda9

1.3.3在Linux系统中安装Anaconda12

任务1.4掌握Jupyter Notebook常用功能14

1.4.1掌握Jupyter Notebook的基本功能14

1.4.2掌握Jupyter Notebook的高 级功能16

小结19

课后习题19

第2章NumPy数值计算基础21

任务2.1掌握NumPy数组对象ndarray21

2.1.1创建数组对象21

2.1.2生成随机数27

2.1.3通过索引访问数组29

2.1.4变换数组的形态31

任务2.2掌握NumPy矩阵与通用函数34

2.2.1创建NumPy矩阵34

2.2.2掌握ufunc函数37

任务2.3利用NumPy进行统计分析41

2.3.1读/写文件41

2.3.2使用函数进行简单的统计分析44

2.3.3任务实现48

小结50

实训50

实训1创建数组并进行运算50

实训2创建一个国际象棋的棋盘50

课后习题51

第3章Matplotlib数据可视化基础52

任务3.1掌握绘图基础语法与常用参数52

3.1.1掌握pyplot基础语法53

3.1.2设置pyplot的动态rc参数56

任务3.2分析特征间的关系59

3.2.1绘制散点图59

3.2.2绘制折线图62

3.2.3任务实现65

任务3.3分析特征内部数据分布与分散状况68

3.3.1绘制直方图68

3.3.2绘制饼图70

3.3.3绘制箱线图71

3.3.4任务实现73

小结77

实训78

实训1分析1996 2015年人口数据特征间的关系78

实训2分析1996 2015年人口数据各个特征的分布与分散状况78

课后习题79

第4章pandas统计分析基础80

任务4.1读/写不同数据源的数据80

4.1.1读/写数据库数据80

4.1.2读/写文本文件83

4.1.3读/写Excel文件87

4.1.4任务实现88

任务4.2掌握DataFrame的常用操作89

4.2.1查看DataFrame的常用属性89

4.2.2查改增删DataFrame数据91

4.2.3描述分析DataFrame数据101

4.2.4任务实现104

任务4.3转换与处理时间序列数据107

4.3.1转换字符串时间为标准时间107

4.3.2提取时间序列数据信息109

4.3.3加减时间数据110

4.3.4任务实现111

任务4.4使用分组聚合进行组内计算113

4.4.1使用groupby方法拆分数据114

4.4.2使用agg方法聚合数据116

4.4.3使用apply方法聚合数据119

4.4.4使用transform方法聚合数据121

4.4.5任务实现121

任务4.5创建透视表与交叉表123

4.5.1使用pivot_table函数创建透视表123

4.5.2使用crosstab函数创建交叉表127

4.5.3任务实现128

小结130

实训130

实训1读取并查看P2P网络贷款数据主表的基本信息130

实训2提取用户信息更新表和登录信息表的时间信息130

实训3使用分组聚合方法进一步分析用户信息更新表和登录信息表131

实训4对用户信息更新表和登录信息表进行长宽表转换131

课后习题131

第5章使用pandas进行数据预处理133

任务5.1合并数据133

5.1.1堆叠合并数据133

5.1.2主键合并数据136

5.1.3重叠合并数据139

5.1.4任务实现140

任务5.2清洗数据141

5.2.1检测与处理重复值141

5.2.2检测与处理缺失值146

5.2.3检测与处理异常值149

5.2.4任务实现152

任务5.3标准化数据154

5.3.1离差标准化数据154

5.3.2标准差标准化数据155

5.3.3小数定标标准化数据156

5.3.4任务实现157

任务5.4转换数据158

5.4.1哑变量处理类别型数据158

5.4.2离散化连续型数据160

5.4.3任务实现162

小结163

实训164

实训1插补用户用电量数据缺失值164

实训2合并线损、用电量趋势与线路告警数据164

实训3标准化建模专家样本数据164

课后习题165

第6章使用scikit-learn构建模型167

任务6.1使用sklearn转换器处理数据167

6.1.1加载datasets模块中的数据集167

6.1.2将数据集划分为训练集和测试集170

6.1.3使用sklearn转换器进行数据预处理与降维172

6.1.4任务实现174

任务6.2构建并评价聚类模型176

6.2.1使用sklearn估计器构建聚类模型176

6.2.2评价聚类模型179

6.2.3任务实现182

任务6.3构建并评价分类模型183

6.3.1使用sklearn估计器构建分类模型183

6.3.2评价分类模型186

6.3.3任务实现188

任务6.4构建并评价回归模型190

6.4.1使用sklearn估计器构建线性回归模型190

6.4.2评价回归模型193

6.4.3任务实现194

小结196

实训196

实训1使用sklearn处理wine和wine_quality数据集196

实训2构建基于wine数据集的K-Means聚类模型196

实训3构建基于wine数据集的SVM分类模型197

实训4构建基于wine_quality数据集的回归模型197

课后习题198

第7章航空公司客户价值分析199

任务7.1了解航空公司现状与客户价值分析199

7.1.1了解航空公司现状200

7.1.2认识客户价值分析201

7.1.3熟悉航空客户价值分析的步骤与流程201

任务7.2预处理航空客户数据202

7.2.1处理数据缺失值与异常值202

7.2.2构建航空客户价值分析关键特征202

7.2.3标准化LRFMC模型的5个特征206

7.2.4任务实现207

任务7.3使用K-Means算法进行客户分群209

7.3.1了解K-Means聚类算法209

7.3.2分析聚类结果210

7.3.3模型应用213

7.3.4任务实现214

小结215

实训215

实训1处理信用卡数据异常值215

实训2构造信用卡客户风险评价关键特征217

实训3构建K-Means聚类模型218

课后习题218

第8章财政收入预测分析220

任务8.1了解财政收入预测的背景与方法220

8.1.1分析财政收入预测背景220

8.1.2了解财政收入预测的方法222

8.1.3熟悉财政收入预测的步骤与流程223

任务8.2分析财政收入数据特征的相关性223

8.2.1了解相关性分析223

8.2.2分析计算结果224

8.2.3任务实现225

任务8.3使用Lasso回归选取财政收入预测的关键特征225

8.3.1了解Lasso回归方法226

8.3.2分析Lasso回归结果227

8.3.3任务实现227

任务8.4使用灰色预测和SVR构建财政收入预测模型228

8.4.1了解灰色预测算法228

8.4.2了解SVR算法229

8.4.3分析预测结果232

8.4.4任务实现234

小结236

实训236

实训1求取企业所得税各特征间的相关系数236

实训2选取企业所得税预测关键特征237

实训3构建企业所得税预测模型237

课后习题237

第9章家用热水器用户行为分析与事件识别239

任务9.1了解家用热水器用户行为分析的背景与步骤239

9.1.1分析家用热水器行业现状240

9.1.2了解热水器采集数据基本情况240

9.1.3熟悉家用热水器用户行为分析的步骤与流程241

任务9.2预处理热水器用户用水数据242

9.2.1删除冗余特征242

9.2.2划分用水事件243

9.2.3确定单次用水事件时长阈值244

9.2.4任务实现246

任务9.3构建用水行为特征并筛选用水事件247

9.3.1构建用水时长与频率特征248

9.3.2构建用水量与波动特征249

9.3.3筛选候选洗浴事件250

9.3.4任务实现251

任务9.4构建行为事件分析的BP神经网络模型255

9.4.1了解BP神经网络算法原理255

9.4.2构建模型259

9.4.3评估模型260

9.4.4任务实现260

小结263

实训263

实训1清洗运营商客户数据263

实训2筛选客户运营商数据264

实训3构建神经网络预测模型265

课后习题265

附录A267

附录B270

参考文献295

学习笔记

Jupyter Notebook(此前被称为 IPython notebook)是一个交互式笔记本,支持运行 40 多种编程语言。 Jupyter Notebook 的本质是一个 Web 应用程序,便于创建和共享文学化程序文档,支持实时代码,数学方程,可视化和 markdown。 用途包括:数据清理和转换,数值模拟,统计建模,机器学习等等 。 定义 (推荐学习:Python视频教程) 用户可以通过电子邮件,Dropbox,GitHub 和 Jupyter Notebook Viewer,将 Jupyter Notebook 分享给其他人。 在Jupyter Notebook 中,代码可以实时的生成图像,视频,LaTeX和JavaScript。 使用 数据挖掘领域中最热门的比赛 Kaggle 里的资料都是Jupyter 格式 。 架构 Jupyter组件 Jupyter包含以下组件: Jupyter Notebook 和 ……

本文实例讲述了Python实现的微信好友数据分析功能。分享给大家供大家参考,具体如下: 这里主要利用python对个人微信好友进行分析并把结果输出到一个html文档当中,主要用到的python包为 itchat , pandas , pyecharts 等 1、安装itchat 微信的python sdk,用来获取个人好友关系。获取的代码 如下: import itchatimport pandas as pdfrom pyecharts import Geo, Baritchat.login()friends = itchat.get_friends(update=True)[0:]def User2dict(User): User_dict = {} User_dict["NickName"] = User["NickName"] if User["NickName"] else "NaN" User_dict["City"] = User["City"] if User["City"] else "NaN" User_dict["Sex"] = User["Sex"] if User["Sex"] else 0 User_dict["Signature"] = User["Signature"] if User["Signature"] else "NaN" ……

基于微信开放的个人号接口python库itchat,实现对微信好友的获取,并对省份、性别、微信签名做数据分析。 效果: 直接上代码,建三个空文本文件stopwords.txt,newdit.txt、unionWords.txt,下载字体simhei.ttf或删除字体要求的代码,就可以直接运行。 #wxfriends.py 2018-07-09import itchatimport sysimport pandas as pdimport matplotlib.pyplot as pltplt.rcParams['font.sans-serif']=['SimHei']#绘图时可以显示中文plt.rcParams['axes.unicode_minus']=False#绘图时可以显示中文import jiemport jieba.posseg as psegfrom scipy.misc import imreadfrom wordcloud import WordCloudfrom os import path#解决编码问题non_bmp_map = dict.fromkeys(range(0x10000, sys.maxunicode + 1), 0xfffd) #获取好友信息def getFriends():……

Python数据分析之双色球基于线性回归算法预测下期中奖结果示例

本文实例讲述了Python数据分析之双色球基于线性回归算法预测下期中奖结果。分享给大家供大家参考,具体如下: 前面讲述了关于双色球的各种算法,这里将进行下期双色球号码的预测,想想有些小激动啊。 代码中使用了线性回归算法,这个场景使用这个算法,预测效果一般,各位可以考虑使用其他算法尝试结果。 发现之前有很多代码都是重复的工作,为了让代码看的更优雅,定义了函数,去调用,顿时高大上了 #!/usr/bin/python# -*- coding:UTF-8 -*-#导入需要的包import pandas as pdimport numpy as npimport matplotlib.pyplot as pltimport operatorfrom sklearn import datasets,linear_modelfrom sklearn.linear_model import LogisticRegression#读取文件d……

以上就是本次介绍的Python数据电子书的全部相关内容,希望我们整理的资源能够帮助到大家,感谢大家对鬼鬼的支持。

注·获取方式:私信(666)

⑤ python输入某年某月某日计算到年底还有多少天

year = int(input("请输入年份:"))
month = int(input("请输入月份:"))
day = int(input("请输入日期:"))

months = [0,31,59,90,120,151,181,212,243,273,304] # months累加记录1-11月的总天数

if 0 < month < 12: # 假设为非闰年时,当前日期的天数
sum = months[month - 1] + day

flag = 0
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0): # 判断是否为闰年,如果为闰年flag = 1
flag = 1

if flag == 1 and month > 2: # 年份为闰年且月份大于2
sum += 1

print("%d.%d.%d 是 %d 年的第 %d 天" % (year,month,day,year,sum))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
输入年月日,判断今年还剩多少天
此程序和上一个程序其实大同小异,只需要知道今年总天数,然后:
今年剩余多少天 = 总天数 - 今天是今年的多少天
你就说简不简单?

year = int(input("请输入年份:"))
month = int(input("请输入月份:"))
day = int(input("请输入日期:"))

days = 365
months = [0,31,59,90,120,151,181,212,243,273,304]

if 0 < month < 12:
sum = months[month - 1] + day

flag = 0
if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0):
flag = 1
days += 1

if flag == 1 and month > 2:
sum += 1

surplus_day = days - sum

print("今天是:%d.%d.%d,今年还剩 %d 天" % (year,month,day,surplus_day))
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
两个程序可以综合起来,具体步骤就不详细说明了!!!

加油!O(∩_∩)O

文章知识点与官方知识档案匹配
Python入门技能树首页概览
200575 人正在系统学习中
打开CSDN,阅读体验更佳

《学习记录》“Python”输入月份,输出天数
输入一个月份,首先判断是否为1-12,然后判断返回该月份的天数。
继续访问

python计算今年第几天_Python三种方法计算指定日期是今年的第几天
今天早上和腾讯面试官进行了视频面试,由于音量和网络以及我的垃圾电脑的原因,个人感觉黄了...最后面试官给了我一道简单的计算题:指定日期是今年的第几年由于电脑卡到打字都打不动,我勉勉强强写了一点,虽然面试官知道了我的想法也了解我的设备情况,最后没让我写完但是心里惭愧还是时候补齐了...话不多说回到主题吧首先是输入的问题,个人认为分别输入年月份是一件很初级的要求,就实现了形如“2020-3-26”的字...
继续访问
python春节_python计算春节倒计时
先来无聊,想知道今年的春节还有几天,好久没写python代码了,下面就随便写了一个,如有不对之处,还请各位看官不灵赐教,好了,我直接上代码了:#coding=utf-8#!/usr/bin/env pythonimport datetimespring=datetime.datetime(2014,1,31,0,0,0) #春节日期today=datetime.datetime.now() ...
继续访问
python代码实现“今天是今年的第几天”
python代码实现“今天是今年的第几天” ** #代码如下: list_day_runnian = [0,31,29,31,30,31,30,31,31,30,31,30,31] year = int(input(‘输入年份:’)) month = int(input(‘输入月份:’)) day = int(input(‘输入日期:’)) if 1<= month <=12: if (year%400==0)or((year%4 == 0 )and (year%100!=0)): pastmo
继续访问
Python 根据输入的年月日判断今天是今年的第多少天
year = int(input("请输入年份:")) month = int(input("请输入月份:")) day = int(input("请输入日期:")) sum_day = 0 months=[31,28,31,30,31,30,31,31,30,31,30,31] # 判断几月份 然后加到变量里,开头是0的就不用了 for i in range(month-1): sum_day += months[i] sum_day += day #判断二月 leap = 0 if (year
继续访问
python实现输入日期判断这一天是今年多少天
这里写自定义目录标题新的改变功能快捷键合理的创建标题,有助于目录的生成如何改变文本的样式插入链接与图片如何插入一段漂亮的代码片生成一个适合你的列表创建一个表格设定内容居中、居左、居右SmartyPants创建一个自定义列表如何创建一个注脚注释也是必不可少的KaTeX数学公式新的甘特图功能,丰富你的文章UML 图表FLowchart流程图导出与导入导出导入 整体思路: 1、输入日期 2、判断输入的日期是否合法 3、计算输入的日期天数 你好! 这是你第一次使用 Markdown编辑器 所展示的欢迎页。如果你想学
继续访问
用python解:输入某年某月某日,判断这一天是这一年的第几天?
用python解:输入某年某月某日,判断这一天是这一年的第几天?
继续访问
热门推荐 C语言:键盘输入年月日,计算这一天是这一年的第几天
比如输入20201010,计算10号这一天是2020年的第几天首先要考虑这一年是平年还是闰年,其次考虑所有的月份有多少天,最后是考虑怎么去把所有的天数加在一起。平年的二月份有28天,闰年的二月有29天,所以要判断这一年是平年还是闰年;而判断是不是闰年的标准就是这一年除以400能除尽或者这一年除以4和除以100都能除尽,即year%4==0 && year%100!=0 || year%400==...
继续访问
python练习题:输入某年某月某日,判断这一天是这一年的第几天?
python练习题
继续访问
python输入年月日,得出已经过了多少天?
# -*- coding: UTF-8 -*- import time def What_day_of_the_year(inputTime): #函数,判断字符串是否为数字 def is_number(s): try: float(s) return True except ValueError: pass try: import unicodedat
继续访问
用python解决题目:输入某年某月某日,判断这一天是这一年的第几天?
一.思路 year = int(input("请输入年:\n"))#用int()将字符型变量改为整形,以便之后的运算 month = int(input("请输入月:\n")) day = int(input("请输入日:\n")) months1 = [0,31,60,91,121,152,182,213,244,274,305,335,366]#闰年 months2 = [0,31,59,90...
继续访问
python这天第几天_Python编程实现输入某年某月某日计算出这一天是该年第几天的方法...
此文实例介绍了Python编程实现输入某年某月某日计算出这一天是该年第几天的方法。推荐给大伙学习一下,内容如下:#基于 Python3一种做法:def is_leap_year(year): # 判断闰年,是则返回True,否则返回Falseif (year % 4 == 0 and year % 100 != 0) or year % 400 == 0:return Trueelse:retur...
继续访问
python小程序(3)输入某年某月某日,计算这一天是这一年的第几天
思路 先判断是闰年还是平年,再调用相应函数 计算每个月多少天,然后加上前几个月的所有天数和这个月的天数 import sys #输入某年某月某日,计算这一天是这一年的第几天 while True: year=int(input('Year:')) mon=int(input('Month:')) day=int(input('Day:')) if ye...
继续访问
C语言实现计算某一天是当年的第几天,并计算出一年的剩余天数
这段代码的实现是很简单的,用的就是判断后累加的方法实现的,原理是很简单的。 第几天的计算:比如计算的是11月,先将前十个月的天数计算并相加起来,除了二月的天数闰年会有所不同外,其他的都是一样的,其次就是将输入的天数加上就可以了。 剩余多少天的计算:先将输入进去的这一年的总天数计算出来,再减去上面计算出的第几天就可以了。 这道题其实主要考的还是闰年的相关计算方法, 判断任意年份是否为闰年,需要满足以下条件中的任意一个: ① 该年份能被 4 整除同时不能被 100 整除; ② 该年份能被400整除。
继续访问
最新发布 C语言实现输入某年某月某日,判断这一天是这一年的第几天,并输出今年还剩下多少天?
C语言输入某年某月某日,判断这一天是这一年的第几天,并输出今年还剩下多少天。
继续访问
python 编程实现输入某年某月某日,输出它是这一年的第几天
问题:python 编程实现输入某年某月某日,输出它是这一年的第几天? 解题思路: 1、判断该年份是闰年还是平年,用 if 分支计算。 2、不同月份的计算:大月,小月,二月,考虑用while循环。 一月 天数=某日 二月 天数=某日+31 三月 天数=某日+31+二月 四月 天数=某日+31+二月+31 五月 天数=某日+31+二月+31+30 ...... def a_1(a, b, c): i=1 #“输入月份”之前的月份(因为...
继续访问

python输入两个数,分别代表年份和月份,计算这个月的天数
python输入两个数,分别代表年份和月份,计算这个月的天数
继续访问
Python实现用户输入年月日,程序打印出这是这一年的第多少天
1. 自己造轮子 year=int(input('请输入年份,如2019>>>')) month=int(input('请输入月份,如8>>>')) day=int(input('请输入日期,如25>>>')) #下面这块代码是按照闰年计算 if (year%4==0 and year%100!=0) or (year%400==0): ...
继续访问
python获取年末,月末,季末的日期和距指定时间的天数
我们在python日常使用中经常会用到时间的各种计算,这个也是让人头疼的地方,下面的方法实现了 年末,月末,季末的日期和距指定时间的天数的计算,要的拿去。自己也做个笔记。后面直接用。 def last_day(any_day): """ 获取获得一个月未,季末,年未的天数 的最后一天 :param any_day: 任意日期 :return: <class 'datetime.date'年,月,季末的日期,距年末,月末,季末的天数 """ next_mo
继续访问
用days函数算出第几天c语言,给出年月日 计算该日是该年的第几天
给出年月日 计算该日是该年的第几天C语言#include int main(){int sum_day(int month,int day);int leap(int year);int year,month,day,days;printf("input date(year,month,day):");scanf("%d,%d,%d",&year,&month,&day);...
继续访问

数据库课程设计
c语言文件读写操作代码
html+css+js网页设计
写评论

1

11

1


⑥ 急!!用python连接数据库

settings.py
if DEBUG:
DATABASES = {
'default': {
'ENGINE': 'mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': '库名', # Or path to database file if using sqlite3.
'USER': 'root', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '3306', # Set to empty string for default. Not used with sqlite3.
},
'库名': {
'ENGINE': 'mysql', # Add 'postgresql_psycopg2', 'postgresql', 'mysql', 'sqlite3' or 'oracle'.
'NAME': '库名', # Or path to database file if using sqlite3.
'USER': 'root', # Not used with sqlite3.
'PASSWORD': '', # Not used with sqlite3.
'HOST': '', # Set to empty string for localhost. Not used with sqlite3.
'PORT': '3306', # Set to empty string for default. Not used with sqlite3.
}
}

⑦ 如何用python表示三角函数

脚本之家
JavaScript
数据库
PHP编程
ASP.NET
ASP编程
AJAX相关
正则表达式
相关技巧
服务器
其它综合
﹤首页 → 脚本专栏 → python → Python入门之三角函数sin()函数

Python入门之三角函数sin()函数实例详解
发布时间:2017-11-08 10:28:02 投稿:mengwei

这篇文章主要介绍了Python入门之三角函数sin()函数实例详解,分享了相关实例,具有一定参考价值,需要的朋友可以了解下。
描述

sin()返回的x弧度的正弦值。

语法

以下是sin()方法的语法:

importmath
math.sin(x)
注意:sin()是不能直接访问的,需要导入math模块,然后通过math静态对象调用该方法。

参数

x--一个数值。

返回值

返回的x弧度的正弦值,数值在-1到1之间。

实例

以下展示了使用sin()方法的实例:

#!/usr/bin/python
import math

print "sin(3) : ", math.sin(3)
print "sin(-3) : ", math.sin(-3)
print "sin(0) : ", math.sin(0)
print "sin(math.pi) : ", math.sin(math.pi)
print "sin(math.pi/2) : ", math.sin(math.pi/2)
以上实例运行后输出结果为:

sin(3) : 0.14112000806
sin(-3) : -0.14112000806
sin(0) : 0.0
sin(math.pi) : 1.22460635382e-16
sin(math.pi/2) : 1
总结

以上就是本文关于Python入门之三角函数sin()函数实例详解的全部内容,希望对大家有所帮助。感兴趣的朋友可以继续参阅本站:python正则表达式re之compile函数解析、Python中enumerate函数代码解析、简单了解Python中的几种函数等,有什么问题可以随时留言,小编会及时回复大家的。感谢朋友们对本站的支持!

您可能感兴趣的文章:
Python入门之三角函数全解【收藏】
Python入门之三角函数tan()函数实例详解
Python入门之三角函数atan2()函数详解
Python中计算三角函数之cos()方法的使用简介
用Python计算三角函数之atan()方法的使用
Python计算三角函数之asin()方法的使用
用Python计算三角函数之acos()方法的使用
Python绘制三角函数图(sin\cos\tan)并标注特定范围的例子

相关文章
Python自动化测试Eclipse+Pydev 搭建开发环境
Python Selenium 之数据驱动测试的实现
Python脚本暴力破解栅栏密码
Python中的推导式使用详解
python中对list去重的多种方法
Python 实现删除某路径下文件及文件夹的实例讲解
python pillow模块使用方法详解
python numpy数组中的复制知识解析
python实现根据主机名字获得所有ip地址的方法
python实现随机调用一个浏览器打开网页
最新更新
1在双python下设置python3为默认的方法
2Python牛刀小试密码爆破
3python中的decorator的作用详解
4Django项目开发中cookies和session的常用
5Python实现的序列化和反序列化二叉树算法
6发布你的Python模块详解
7详解Appium+Python之生成html测试报告
8Django 配置多站点多域名的实现步骤
9django 消息框架 message使用详解
10python利用rsa库做公钥解密的方法教程

业界资讯
IntelliJ IDEA 2020.2 EAP6 发布,支持 Jakarta EE 92020-07-06
Ubuntu 19.10 将于2020.7.17结束生命周期,官方建议迁移至 Ubuntu 20.042020-07-04
Ubuntu 20.04 LTS(Focal Fossa)发布:新功能特性介绍2020-07-04
2020年端午三天假期高速免费吗? 端午节高速是否免费的相关介绍2020-06-22
Adobe将于12月31日终止支持Flash Flash正式宣告死亡2020-06-18
微软将于 7 月恢复Windows 10可选更新补丁推送2020-06-18
安卓最新版微信怎么修改微信号有哪些注意事项?四种情况不能修改2020-06-05
Android Studio 4.0 稳定版发布了,牛逼功能一览2020-06-01
Chrome 83稳定版发布 更新内容汇总介绍2020-05-21
PyTorch官方教程大更新:增加标签索引,更加新手友好2020-05-19
网友评论

请输入您感兴趣的关键字
硬件安全网络评测苹果安卓手游攻略应用Win10
首页编程手机电脑教程
电脑版 - 返回首页
Copyright ©2006-2020 脚本之家. All Rights Reserved

脚本之家
10年专注电脑、网络、编程

⑧ python连接MySQL数据库实例分析

python连接MySQL数据库实例分析
本文实例讲述了python连接MySQL数据库的方法。分享给大家供大家参考。具体实现方法如下:
import MySQLdb
conn = MySQLdb.connect(host="localhost",
user="root",
passwd="123456",
db="test")
cursor = conn.cursor()
cursor.execute("select * from hard")
res = cursor.fetchall()
for x in res:
print x
cursor.close()
conn.close()
运行结果如下:
希望本文所述对大家的python程序设计有所帮助。

阅读全文

与python数据库编程实例相关的资料

热点内容
手机主页设文件夹 浏览:956
安卓投屏极米用什么 浏览:415
老程序员总结的16条经验教训 浏览:194
linux修改服务器时间 浏览:446
检查文件夹新增文件 浏览:287
代理服务器和脚本地址 浏览:529
如何让宽带一直连接网络连接服务器 浏览:718
编译阶段形成逻辑地址 浏览:328
设置中应用加密是哪个 浏览:682
php当前函数名 浏览:161
程序员睡眠不好心跳快 浏览:232
python怎么将电脑作为服务器 浏览:779
腰椎压缩性骨折算几级伤残 浏览:302
传统资产配置策略加密货币市场 浏览:990
id加密门禁卡可以复制到手机吗 浏览:674
路由器如何控制某个app 浏览:45
C51编译器在标准C的基础上 浏览:262
银行卡掉了可以办车贷解压吗 浏览:317
没解压可以贷款吗 浏览:519
最小pdf阅读器 浏览:810