全局变量:

写代码的时候尽量少用全局变量:

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() #取当天的日期,只是日期

 

posted on 2018-01-20 17:01  艾谁谁  阅读(102)  评论(0)    收藏  举报