range方法详解
range(start, stop[, step])
start是起点,stop是结束节点,step是步长
代码示例:
输出0~100的偶数
for i in range(0,101,2):
print(i)

D:\python\python.exe D:/BasicPython-master/00_keynote/01_Sorting.py
0
2
4

100

Pickle模块的讲解


Json编码解码讲解
JSON(JavaScript Object Notation)是一种轻量级的数据交换格式,json模块提供了四个功能:dumps、dump、loads、load
字典转化为字符串,我们利用 dumps 将Python对象编码为 JSON对象 ,当然 dumps 只完成了序列化为str,而 dump 必须传文件描述符,将序列化的str保存到文件中。
import json
odata = {‘www’: 1, ‘pythontab.com’: 2, ‘Python3’: None}
jdata = json.dumps(odata)
print(jdata)
print(type(jdata))

我们利用 loads 用于解码 JSON对象
import json
jsondata = ‘’’
{
“Python3”: 3,
“pythontab.com”: 2,
“www”: 1
}
‘’’
ldata = json.loads(jdata)
print(type(ldata))
print(ldata)


列表合并方式
方法1:使用”+”
alist = [1,11,22,33,44]
blist = [2,12,13,14,15]
clist = alist + blist
print(clist)

方法2:使用extend
alist = [1,11,22,33,44]
blist = [2,12,13,14,15]
alist.extend(blist)
print(alist)
注意:使用extend方法会直接修改list数据,extend方法的返回值为None,所以直接打印aList

方法3: 使用切片方式
aList = [1,2,3]
bList = [‘www’, ‘pythontab.com’]
aList[len(aList):len(aList)] = bList
print(aList)
注:len(aList)代表要将bList插入aList中的位置

方法4:使用append
aList = [1,2,3]
bList = [‘www’, ‘pythontab.com’]
aList.append(bList)
print(aList)
输出:[1, 2, 3, [‘www’, ‘pythontab.com’]]
strip()、lstrip()、rstrip()用法详解
用来去除头尾字符、空白符(包括\n``、``\r``、``\t``、``' ',即:换行、回车、制表符、空格)
示例:
1、 当chars为空时,默认删除空白符(包括’\n’, ‘\r’, ‘\t’, ‘ ‘)
name = ‘ 李亚东 ‘
name_strip =name.strip()
print(name_strip)

2、 当chars不为空时,函数会被chars解成一个个的字符,然后将这些字符去掉
name = ‘===李亚东====’
name_strip = name.strip(“=====”)
print(name_strip)

时间戳转化为指定时间格式

import time
stamptime = time.time()
print(stamptime)

D:\python\python.exe D:/BasicPython-master/00_keynote/01_Sorting.py
1590927496.112098
这个数可以这么理解, 小数点前面的是从1970年1月1日 00:00:00 到现在的秒数
时间戳转换为指定格式的日期,常用到的模块是time和datetime
1、time模块
import time
stamptime = 1590927496.112098
timeArray = time.localtime(stamptime)
formatTime = time.strftime(“%Y-%m-%d %H:%M:%S”, timeArray)
print (formatTime)

输出:2020-05-31 20:18:16

2、 datetime模块
import datetime
timeStamp = 1551077515
timeArray = datetime.datetime.utcfromtimestamp(timeStamp)
formatTime = timeArray.strftime(“%Y-%m-%d %H:%M:%S”)
print (formatTime)


global全局变量用法
str = ‘pengfei’
def fun1():
global str
str = ‘local’
print(str)

fun1()
print(str)

输出:
local
local

组合多个字符串test = [“I”, “Like”, “Python”]print(test)print(“”.join(test))

用枚举在循环中找到索引
test = [“I”, “Like”, “Python”]
for key,value in enumerate(test):
print(key,value)


文件操作-读写删除复制总结

f = open(‘hello.txt’)
#’hello.txt’指的是文件的名称
while True:
text = f.readline()
#读取文件指针指向的哪一行内容,然后指针下移
if text:
print(text)
else:
#当文读到最后一行,三个空字符串
print(len(text))
break
f.close()
#关闭文件,运行一下

f = open(“hello.txt”)
line_list = f.readlines()
#一次性读取,以列表的形式表现出来
print(type(line_list))
for line in line_list:
print(line)
f.close()

f = open(“hello.txt”)
s = f.read()
#一次性读取所有内蓉,并以字符串的形式返回
print(type(s))
for line in s:
print(line,end=‘ ‘)
f.close()


writer的两种常用的基本方式
f = open(‘poet.txt’,‘w’,encoding=‘utf-8’)
#以写模式打开文件
f.write(‘你好,python’)
#写入内容_
print(“写入完毕,运行!”)
f.close()


delete删除
import os,os.path
if os.path.exists(“sd.txt”):
os.remove(“sd.txt”)
print(“删除成功”)
else:
print(‘文件不存在’)

指定字符串逆序

方法一:直接使用字符串切片功能逆转字符串
def strReverse(strDemo):
return strDemo[::-1]
print(strReverse(‘pythontab.com’))


方法三:使用reverse函数
def strReverse(strDemo):
strList = list(strDemo)
strList.reverse()
return ‘’.join(strList)
print(strReverse(‘pythontab.com’))

随机函数random使用详解
random.random()用于生成一个0到1的随机符点数: 0 <= n < 1.0

random.uniform
import random
print (random.uniform(1, 10))
print (random.uniform(10, 1))

random.randint()的函数原型为:random.randint(a, b),用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生成的随机数n: a <= n <= b,
import random
print (random.randint(11, 20)) #生成的随机数n: 12 <= n <= 20
print (random.randint(20, 20)) #结果永远是20

random.choice(sequence)。参数sequence表示一个有序类型。这里要说明 一下:sequence在python不是一种特定的类型,而是泛指一系列的类型。list, tuple, 字符串都属于sequence。
import random
print (random.choice(“Pythontab.com”))
print (random.choice([“python”, “tab”, “com”]))
print (random.choice((“python”, “tab”, “com”)))

random.sample的函数原型为:random.sample(sequence, k),从指定序列中随机获取指定长度的片断。sample函数不会修改原有序列。
import random
list = [1, 2, 3, 4, 5, 6, 7, 8, 9, 10]
slice = random.sample(list, 5) #从list中随机获取5个元素,作为一个片断返回
print (slice)
print (list) #原有序列不会改变。
输出:
[8, 5, 6, 3, 4]
[1, 2, 3, 4, 5, 6, 7, 8, 9, 10]

文件的操作
常用方法列表

操作 说明
os.getcwd() 得到当前工作目录,即当前Python脚本工作的目录路径
os.listdir() 返回指定目录下的所有文件和目录名
os.remove() 函数用来删除一个文件
os.removedirs(r”c\python”) 删除多个目录
os.path.isfile() 检验给出的路径是否是一个文件
os.path.isdir() 检验给出的路径是否是一个目录
os.path.isabs() 判断是否是绝对路径
os.path.exists() 检验给出的路径是否真地存
os.path.split() 返回一个路径的目录名和文件名
os.path.splitext() 分离扩展名
os.path.dirname() 获取路径名
os.path.basename() 获取文件名
os.system() 运行shell命令
os.getenv() 与os.putenv() 读取和设置环境变量
os.linesep 给出当前平台使用的行终止符,Windows使用’rn’,Linux使用’n’而Mac使用’r’
os.name 指示你正在使用的平台,对于Windows,它是’nt’,而对于Linux/Unix用户,它是’posix’
os.rename(old, new) 重命名:
os.makedirs(r”c:\python\test”) 创建多级目录
os.mkdir(“test”) 创建单个目录
os.stat(file) 获取文件属性
os.chmod(file) 修改文件权限与时间戳
os.exit() 终止当前进程
os.path.getsize(filename) 获取文件大小
os.mkdir(“file”) 创建目录
shutil.copyfile(“oldfile”,”newfile”) 复制文件, oldfile和newfile都只能是文件
shutil.copy(“oldfile”,”newfile”) oldfile只能是文件夹,newfile可以是文件,也可以是目标目录
shutil.copytree(“olddir”,”newdir”) 复制文件夹, olddir和newdir都只能是目录,且newdir必须不存在
os.rename(“oldname”,”newname”) 重命名文件(目录),文件或目录都是使用这条命令
shutil.move(“oldpos”,”newpos”) 移动文件(目录)
os.remove(“file”) 删除文件
os.rmdir(“dir”) 删除目录, 只能删除空目录
shutil.rmtree(“dir”) 空目录、有内容的目录都可以删
os.chdir(“path”) 转换目录, 换路径
os.mknod(“test.txt”) 创建空文件

r,w,a
r+可读可写
w+:打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
a+:打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。

Requests模块快速入门

也许经常想为URL的查询字符串(query string)传递某种数据。如果你是手工构建URL,那么数据会以键/值 对的形式置于URL中,跟在一个问号的后面。例如,www.pythontab.com?version=python3 。 Requests允许你使用 params 关键字参数,以一个字典来提供这些参数。举例来说,如果你想传递 version=python3 和 keywords=pythontab 到 www.pythontab.com ,那么你可以使用如下代码:

import requests
data = {‘version’: ‘python3’, ‘keywords’: ‘pythontab’}
result = requests.get(http://www.pythontab.com, params=data)
print(result)

关于反射和类的特殊成员方法详解

nmap网络扫描和嗅探工具包使用

使用PyMysql连接mysql数据库

pymysql就是作为python3环境下mysqldb的替代物,进入命令行,使用pip安装pymysql pip install pymysql3

pymysql查询示例

#导入pymysql的包import pymysqltry:
#获取一个数据库连接,注意如果是UTF-8类型的,需要制定数据库 conn=pymysql.connect(host=‘localhost’,user=‘pythontab’,passwd=‘pythontab’,db=‘pythontab’,port=3306,charset=‘utf8’)
cur=conn.cursor()
#获取一个游标 cur.execute(‘select * from user’)
data=cur.fetchall()
for d in data :
#注意int类型需要使用str函数转义 print(“ID: “+str(d[0])+‘ 用户名: ‘+d[1]+“ 注册时间: “+d[2])
cur.close()
#关闭游标 conn.close()#释放数据库资源except Exception :print(“查询失败”)

python操作mysql数据库

import MySQLdb
# 数据库名称DATABASE_NAME = ‘’# host = ‘localhost’ or ‘172.0.0.1’HOST = ‘’# 端口号PORT = ‘’# 用户名称USER_NAME = ‘’# 数据库密码PASSWORD = ‘’_# 数据库编码CHAR_SET = **’’

_# 初始化参数def init():
global DATABASE_NAME
DATABASE_NAME =
‘test’
global HOST
HOST =
‘localhost’
global PORT
PORT =
‘3306’
global USER_NAME
USER_NAME =
‘root’
global PASSWORD
PASSWORD =
‘root’
global CHAR_SET
CHAR_SET =
‘utf8’

_# 获取数据库连接def get_conn():
init()
return **MySQLdb.connect(host=HOST, user=USER_NAME, passwd=PASSWORD, db=DATABASE_NAME, charset=CHAR_SET)

# 获取cursordef get_cursor(conn):
return conn.cursor()

_# 关闭连接def conn_close(conn):
if conn != None:
conn.close()

# 关闭cursordef cursor_close(cursor):
if cursor != None:
cursor.close()

_# 关闭所有def close(cursor, conn):
cursor_close(cursor)
conn_close(conn)

_# 创建表def create_table():
sql = ‘’’
CREATE TABLE student (
id int(11) NOT NULL,
name varchar(20) NOT NULL,
age int(11) DEFAULT NULL,
PRIMARY KEY (id),
UNIQUE KEY name (name)
) ENGINE=InnoDB DEFAULT CHARSET=utf8
‘’’
conn = get_conn()
cursor = get_cursor(conn)
result = cursor.execute(sql)
conn.commit()
close(cursor, conn)
return result

# 查询表信息def query_table(table_name):
if table_name != ‘’:
sql = ‘select * from ‘ + table_name
conn = get_conn()
cursor = get_cursor(conn)
result = cursor.execute(sql)
for row in cursor.fetchall():
print(row)
# for r in row: #循环每一条数据 # print(r)
_close(cursor, conn)
else:
print(‘table name is empty!’)

_# 插入数据def insert_table():
sql = ‘insert into student(id, name, age) values(%s, %s, %s)’
params = (‘1’, ‘Hongten_a’, ‘21’)
conn = get_conn()
cursor = get_cursor(conn)
result = cursor.execute(sql, params)
conn.commit()
close(cursor, conn)
return result

_# 更新数据def update_table():
sql = ‘update student set name = %s where id = 1’
params = (‘HONGTEN’)
conn = get_conn()
cursor = get_cursor(conn)
result = cursor.execute(sql, params)
conn.commit()
close(cursor, conn)
return result

_# 删除数据def delete_data():
sql = ‘delete from student where id = %s’
params = (‘1’)
conn = get_conn()
cursor = get_cursor(conn)
result = cursor.execute(sql, params)
conn.commit()
close(cursor, conn)
return result

# 数据库连接信息 def print_info():
print(‘数据库连接信息:’ + DATABASE_NAME + HOST + PORT + USER_NAME + PASSWORD + CHAR_SET)

_# 打印出数据库中表情况def show_databases():
sql = ‘show databases’
conn = get_conn()
cursor = get_cursor(conn)
result = cursor.execute(sql)
for row in cursor.fetchall():
print(row)

_# 数据库中表情况def show_tables():
sql = ‘show tables’
conn = get_conn()
cursor = get_cursor(conn)
result = cursor.execute(sql)
for row in cursor.fetchall():
print(row)

def main():
showtables()
# 创建表 result = create_table()
print(result)
# 查询表 query_table(‘student’)
# 插入数据 print(insert_table())
print(‘插入数据后….’)
query_table(‘student’)
# 更新数据 print(update_table())
print(‘更新数据后….’)
query_table(‘student’)
# 删除数据 delete_data()
print(‘删除数据后….’)
query_table(‘student’)
print_info()
# 数据库中表情况 _show_tables()

if name == main:
main()