- 指定字符串逆序
- Requests模块快速入门
- 也许经常想为URL的查询字符串(query string)传递某种数据。如果你是手工构建URL,那么数据会以键/值 对的形式置于URL中,跟在一个问号的后面。例如,www.pythontab.com?version=python3 。 Requests允许你使用 params 关键字参数,以一个字典来提供这些参数。举例来说,如果你想传递 version=python3 和 keywords=pythontab 到 www.pythontab.com ,那么你可以使用如下代码:
- 关于反射和类的特殊成员方法详解
- nmap网络扫描和嗅探工具包使用
- 使用PyMysql连接mysql数据库
- pymysql就是作为python3环境下mysqldb的替代物,进入命令行,使用pip安装pymysql pip install pymysql3
- pymysql查询示例
- python操作mysql数据库
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()