全局变量:
写代码的时候尽量少用全局变量:
1、不安全(任何人都可以修改其值)
2、会一直占着内存不释放
常量:
常量就是一个不会变的变量
常量名全部用大写字母来定义
return:
函数如果有多个return值时,那么会把这几个return的值都放到一个元组里面,然后返回
if __name__=='__main__' :
#别人导入这个python文件的时候,下面的代码不会被执行
#自己测试的时候用
列表推导式:
nums = [0,1,3,4,5,6,7]
new_nums = [str(n) for n in nums] #for前后的两个变量名必须一样
不引入第三方变量,交换两个变量的值:
第一种:a,b = b,a #适用于所有数据类型
第二种: #仅适用于int型
a = a + b
b = a - b
a = a - b
内置函数:
all(list) #判断可迭代的对象里面的值是否都为真
any() #判断可迭代的对象里面的值是否有一个为真
bin() #十进制转二进制
chr() #打印数字对应的ascii码
ord() #打印字符串对应的ascii码
dir() #打印传入对象的可调用方法
eval() #执行Python代码,只能执行简单的,定义数据类型和运算,有返回值
exec() #执行Python代码,无返回值
zip() #把多个list(可迭代对象均可)组合在一起,循环对应取值,但当列表个数不一样时,以少的为准
如:
ids = [1,2]
names = ["aq","wy","qq"]
for id,name in zip(ids,names):
print(id,name)
sorted() #默认升序排序,若指定reverse=True,则按降序排序(字符串也可以排)
map(function,list) #循环调用函数,然后把每次函数处理的结果(即函数的返回值),放到一个list里面返回(ps:list为可迭代对象)
filter(function,list) #也是帮你循环调用函数的,filter只保存函数运行结果返回真的原元素值
处理json:
json.dumps(dict,indent=8,ensure_ascil=False) #把list、字典转成json,加入indent参数可以格式化,表示多少缩进,加入ensure_ascil=False参数可以正常显示中文
json.loads() #把json串转成python的数据类型(ps:json串只能用双引号表示)
json.dump(dict,file,ensure_ascil=False,indent=4) #主要用于操作文件,它会自动的帮你把数据写入文件,第一个参数dict是数据,第二个参数file是文件对象
json.load(file) #自动帮你读文件,不需要再用文件的read()等方法读
函数及变量
def add():
print('添加商品')
def view():
print('查看商品')
def delete():
print('删除商品')
choice = input('请输入选择1、2、3、 ').strip()
menu = {
'1':add,
'2':view,
'3':delete
}
if choice in menu:
menu[choice]() #适合用于函数没有参数,或者参数是一样的情况下
else:
print('输入错误')
模块:
模块分为三种,分别如下:
1、标准模块:python自带的,不用再自行安装
2、第三方模块:别人提供的,需要安装
有两种安装方式,如下:
自动化安装:pip install xxx
手动安装:
#首先下载安装包
#解压
#在命令行里面进入到这个解压之后的目录
#执行python setup.py install
#import xx 导入一个文件
导入文件的实质即把这个python文件从头到尾运行一次
#import 在导入文件的时候,首先从当前目录下找这个文件;若找不到,便再从python的环境变量里面找
import sys
print(sys.path) 查看当前系统的环境变量
常用模块:
os模块:
常用的:
os.getcwd() #获取当前工作目录,绝对路径
os.mkdir() #创建文件夹,默认在当前目录下创建,也可以指定绝对路径创建
os.remove() #删除文件,不能删文件夹
os.listdir() #列出一个目录下的所有文件
os.rename(old_name,new_name) #重命名
os.path.abspath() #获取绝对路径
os.path.split() #分割路径和文件名
os.path.dirname() #获取父目录
os.path.exists() #目录/文件是否存在
os.path.isfile(r"E:\txz\day.zip") #判断是否是一个文件 ps:r表示源字符,即表示后面的字符串不做任何处理,原样输出
os.path.isdir(r"E:\txz\day") #是否是一个文件夹
os.path.join() #拼接成一个路径
os.system("ipconfig") #用来执行操作系统命令,只能执行,获取不到结果
res = os.popen() #用来执行操作系统命令,并且获取到返回结果,但需要用read读出来
print(res.read())
其它:
os.chdir("..") #更改当前目录
os.curdir #当前目录,相对路径
os.pardir #父目录,相对路径
os.rmdir() #删除指定的文件夹,只能删除空文件夹
os.stat() #获取文件信息
print(__file__) #__file__就是这个文件的绝对路径
os.path.basename() #获取最后一级,如果是文件显示文件
os.sep #获取当前操作系统的路径分隔符
os.linesep #当前操作系统的换行符
os.pathsep #当前系统的环境变量中每个路径的分隔符,linux是:,Windows是;
os.environ #当前系统的环境变量
os.name #当前系统名称
sys模块:
sys.path #环境变量
sys.platform #看当前系统是什么
sys.version #看Python的版本
sys.argv #是获取运行Python文件的时候传入的参数
sys.exit() #退出程序
quit() #退出程序
random模块:
random.randint(1,199) #1-199随机取一个整数
random.choice() #随机取一个元素,传入一个可迭代对象即可
random.sample(string.digits,3) #随机取N个元素
random.uniform() #取随机小数
round(res,2) #保留几位小数,如果四舍五入之后最后一位小数是0,那么不显示
random.random() #取0-1之间的小数
random.shuffle() #洗牌,打乱顺序,只能传list(无返回值,改变了原来list的值)
string模块:
string.digits #所有的数字0-9
string.ascii_lowercase #所有的小写字母
string.ascii_uppercase #所有的大写字母
string.ascii_letters #所有的小写字母+所有的大写字母
string.punctuation #所有的特殊字符
time模块:
time.sleep() #等待几秒
时间的表现形式:
1、格式化好的时间,如:2018-1-14 11:08
2、时间戳:是从Unix元年到现在所有的秒数
3、时间元组
time.time() #当前时间戳
print(int(time.tiem())) #省掉小数点后的时间戳
time.strftime("%Y-%m-%d %H:%M:%S") #取当前时间的格式化时间
time.gmtime() #默认取标准时区的时间元组,如果传入了一个时间戳,那么就把这个时间戳转换成时间元组
time.timezone() #和标准时间相差了几个小时
把时间戳转成格式化好的时间:
cur_time= time.localtime(时间戳) #默认取当前时区的时间元组,如果传入了一个时间戳,那么就把这个时间戳转换成时间元组
res = time.strftime("%Y-%m-%d %H:%M:%S",cur_time) #再把时间元组转成格式化好的时间
把格式化好的时间转成时间戳:
t = time.strptime("2017-01-05","%Y-%m-%d %H:%M:%S") #把当前的格式化好的时间转成时间元组
time.mktime(t) #把时间元组转成时间戳
hashlib模块:
#md5加密是不可逆的,即不能解密的
m = hashlib.md5() #
string.encode() #把字符串转成bytes(二进制)类型
m.update(string.encode()) #加密,不能传字符串,只能传二进制类型
m.hexdigest() #加密后的结果
def md5_password(st:str): #限定了入参的类型,只能为string类型
bytes_st = st.encode() #转成二进制类型
m = hashlib.md5(bytes_st ) #加密
return m.hexdigest() #返回加密后的结果
base64模块
import base64
s = 'hehehehe'
byte_s = s.encode() #字符串变成二进制
res = base64.b64encode(byte_s) #base64编码
print(res.decode()) #把bytes转成字符串
jie_mi_res = base64.b64decode(res.decode()) #base64编码
print(jie_mi_res.decode())
datetime模块:
datetime.datetime.today() #当前时间,到秒
datetime.datetime.today() .strftime("%Y-%m-%d") #转成想要的格式化好的时间,如传入%S也行
datetime.datetime.now() #和today一样
datetime.datetime.today() + datetime.timedelta(-3) #取3天前的时间
datetime.datetime.today() + datetime.timedelta(3) #取3天后的时间
datetime.date.today() #取当天的日期,只是日期
浙公网安备 33010602011771号