一、时间处理
time = time.localtime()
print(time) (获取当前时间)
(1)获取今天往后推迟36小时的时间
date1 = datetime.timedelta(days=1,hours=12)
date2 = datetime.datetime.mow + date1
print(date2)
(2)时间戳
date = datetitme.datetime.now()
print(date)
二、os操作
(1)获取当前路径的父级路径
result = os.path.abspath('..')
#result = os.getcwd()
print(result)
(2)文件读写操作
创建一个文本文件
f = open('文本文件名.txt','w',encoding='utf-8') (这个w可以换成r读取,或者a追加)
f.write('存储的内容')
f.close()
with open('文本文件名字',‘w’,encoding='utf-8') as f:
f.write('内容')
f.close()
三、匿名函数
def ad(x):
return x**x+1
print(ad(4))
list = lambda x: x+1
四、用函数做一些10位随机的验证码
import random
str = 'qwertyuiopasdfghjklzxcvbnmQWERTYUIOPASDFGHJKLZXCVBNM1234567890'
def getRandom():
with open("random.txt","w",encoding="utf-8") as f:
for index in range(10000):
content = ''
for x in range(10):
char = random.choice(str)
content +=char
print(content)
f.write(content + '\n')
f.close()
getRandom()
# 读取所有的文件
def readAllInfo():
list = []
with open('random.txt','r') as f:
for line in f.readlines():
line = line[0:-1]
print(line)
# print(f.readlines())
list.append(line)
f.close()
return list
readAllInfo()
#
# 获取所有数据当中全部为数字的数据
# 纯数字
def getAllNumIinfo():
list = readAllInfo()
# print(list)
with open("num.txt", "w") as f:
for value in list:
if value.isdigit():
f.write(value +'\n')
f.close()
getAllNumIinfo()
# 系统函数:
# 纯字母
def getAllCharInfo():
list = readAllInfo()
with open('char.txt','w') as f:
for value in list:
if value.isalpha():
f.write(value +'\n')
f.close()
getAllCharInfo()
五、类方法,静态方法、实例方法的区别
1.实例方法:在创建的时候需要一个self参数,表示用该方法的对象是谁
2.类方法:在创建的时候需要一个cls参数,表示该方法的类是谁
3.静态方法:静态方法无需指定调用的对象,因此后面不需要指定参数
实例方法、类方法和静态方法的使用场景:
如果想让方法根据调用的对象不同,显示不同的内容,或者实现不同的功能,经常使用对象方法;
如果方法不需要上述操作,方法不需要根据调用的对象不同,做出不同的调整,经常使用类方法和静态方法
静态方法可以被对象方法和类方法调用,下面是实际中的应用场景:
#!/usr/bin/env python
# -*- coding: utf-8 -*-
class People(object):
#表示用该方法的对象是谁
def instaceFun(self):
print("我是实例方法 ")
# 表示该方法的类是谁
@classmethod
def classFun(cls):
print("我是类方法 ")
#可通过 类名/对象名 +方法名字来调用
@staticmethod
def staticFun():
print("我是静态方法")
p = People()
p.instaceFun()
print(p.instaceFun)
# 类方法要使用 类名+方法名字来调用
People.classFun()
print(People.classFun)
# 静态方法的调用 类名+方法名字来调用
People.staticFun()
p.staticFun() #对象 + 方法名 的方式来调用
print(People.staticFun())
print(p.staticFun)
六、数据库操作
1.常见的存储方式:
内存: 变量、str、list...... 优点:读写快 缺点:程序关闭没内存释放
文件: with open() as f: f.close() 优点:永久存储 缺点:读写麻烦
数据库存储: sqlite3 优点:数据永久 缺点: 难度大
2.数据库按性质划分:
关系型数据库(mysql,sqlite3):数据与数据之间有紧密的联系;
优点:可进行多表查询 缺点:删除维护数据麻烦(牵一发动全身)
非关系型数据库(mongDB,redis):数据与数据之间没有联系
优点:数据维护简单 缺点:数据之间缺少耦合度(一人吃饱全家不愁)
3.数据库按照使用规模来划分为四个等级
(1)大型数据库(orcle):用于大型商业公司 (淘宝,京东)
(2)中数据库(SQLserver):使用比较广泛
(3)小型数据库(mySQL):一般小型企业
(4)微型数据库(sqlite3):移动端
import sqlite3
# 创建一个数据库
connect =sqlite3.connect("MyDB")
# 创建一个数据游标,使用游标进行增删改查等操作
cursor = connect.cursor()
#创建一个表
cursor.execute('CREATE TABLE IF NOT EXISTS my_table(name text, age int )')
# connect.commit()
#往表里插入数据
# cursor.execute('INSERT INTO my_table(name,age) VALUES ("uzi", 20)')
# connect.commit()
#从表中删除指定数据
# cursor.execute('DELETE FROM my_table WHERE name ="uzi"')
# connect.commit()
#将表中特定的标签改掉
# cursor.execute('UPDATE my_table SET name ="张梦瑶" WHERE name = "张三"' )
# connect.commit()
# cursor.execute('UPDATE my_table SET name ="张梦瑶" , age =1999 WHERE name = "李云"' )
# connect.commit()
#查询所有数据
cursor.execute('SELECT * FROM my_table')
result = cursor.fetchmany(6)
print(result)
# result = cursor.fetchall()
# print(result)
# result = cursor.fetchone()
# print(result)
七、关于sqlite3做的抢七小系统游戏,这是要求:
#在控制台输入信息,程序执行不同命令:
# 控制台输入1:添加学生信息,学生所有信息需要通过控制台输入
# 控制台输入2:修改学生信息,需要在控制台指明哪个学生的信息需要修改,同时在控制台输入修改的内容
# 控制台输入3:删除学生信息,需要在控制台指明哪个学生需要被删除
# 控制台输入4:查询所有学生信息
# 控制台输入其他数字:退出查询系统
print("===================学生管理系统======================")
print("=====================================================")
print("=====================================================")
print("===========1.增==2.删==3.改==4.查====================")
A = int(input("请输入纯 数字: (1-4增删改查,5-9退出系统)"))
def Student():
if A ==1:
a = input("请输入要添加的姓名:")
b = input("请输入要添加的年龄:")
c = input("请输入要添加的性别:")
d = input("请输入要添加的兴趣爱好:")
t = 'INSERT INTO stu_table(name,age,sex,hobby) VALUES ("{}","{}","{}","{}")'.format(a,b,c,d)
cursor.execute(t)
connect.commit()
print("添加成功!")
return
if A ==2:
print("========================再删除的属性的时候千万要小心哟==========================")
de_name = input("请输入要删除的姓名:")
q2 = 'delete from stu_table WHERE name ="{}"'.format(de_name)
cursor.execute(q2)
connect.commit()
print("删除数据成功")
return
if A ==3:
print("===========================请按照名字修改您想要修改的属性===========================")
name = input("请输入你要修改的名字:")
up_age = input("请输入请要被修改成的年龄:")
up_sex = input("请输入请要被修改成的性别:")
up_hobby = input("请输入请要被修改成的爱好:")
w1 = 'UPDATE stu_table set age="{}" WHERE name ="{}" '.format(up_age,name)
cursor.execute(w1)
w2 = 'UPDATE stu_table set sex="{}" WHERE name ="{}"'.format(up_sex,name)
cursor.execute(w2)
w3 = 'UPDATE stu_table set hobby="{}" WHERE name ="{}" '.format(up_hobby,name)
cursor.execute(w3)
connect.commit()
print("你想修改的数据已更新")
return
if A==4:
a = input("请输入你的名字:")
i = 'select * from stu_table where NAME="{}"'.format(a)
cursor.execute(i)
connect.commit()
result = cursor.fetchall()
print(result)
return
print("输入内容有错!强制退出!")
return
Student()
成功没有捷径,只有一步一个脚印!