PoEdu_Python_Lesson008_复习_零散知识点

写在前面:本文章基于Python3

help函数

python会知晓函数开头注释掉的东西,一般在这个地方写的是关于这个函数的一些信息,比如参数还有返回值什么的

因为Python是解释型语言,它每次都会读取一次,读取一行解释一行

用法示例:help(print)

自己写的函数有可以加注释,可以用help(foo)

dir()指令

可以得到全局变量

print(dir())

vars()指令

print(vars())

打印一些信息

id()

查询当前对象的ID

id(‘nihao’)

但它是会变的,所以并不是时常使用它,也不是我们所认为的指针

比如:num=1 num1=1 此时的ID(num)应该是不等于ID(num1),但它们真的可能是一样的,因为Python做了优化。

但是,str1=’nihao’ str2=’nihao’ 此时两个ID又是不一样的,所以这个行为其实不是一个确定的,也就是未定义的行为,我们很难知道它啥时候是相等的,讲不清,所以不要跟Python较真

bool()

只有为0时,才会转换为False

bool(-1) bool(‘a’)都是True

max()

参数为一个列表,比较得到列表中的最大值

max([1,23,4])

python中没有字符,只有字符串

字符串不能参与数字的比较,但是max里的列表中的元素都是字符串,那么是可以比较的

sum([])

不能加字符串,因为sum的文档中有个默认值是0,(default:0)

它的返回值是0+…+…,所以会报错:int+str

所以,就相当于家数中必然有一个数值0。但是,如果你一定要做到这样的效果,自己写一个函数就行了…

pow()

pow(2,10)

做乘积,上面例子为2的10次方

divmod()

divmod(100,3)

返回的是(33,1)

33是商,1是余数

len()

可以求任何迭代对象的长度

all()

参数是一个可迭代对象,比如list

如果参数中所有的为True,返回True

any()

参数是一个可迭代对象,如果其中一个元素为True,则返回True

zip()

将参数的每个列合并为一个,专门用来取列的

示例:

x = [1,2,3]
y = [4,5,6]
z = [7,8,9]
r = zip(x,y,z )
for i in r:
 print(i)

结果:

[1,4,7] [2,5,8] [3,6,9]

行转列,可以用来做加密…

ord()

orf(‘a’)

根据字符取编码

hex()

hex(100)

64

oct()

oct(100)

bin()

bin(100)

占位

s=’{0} say :{1}’

s.format(‘xiaoming’,’hello’)

打印xiaoming say :hello

反射

m = import(‘sys’)

比如有俩个服务器,一个主服务器,一个是备用服务器,在主服务器异常的时候,可以通过import()从备用服务器中加载数据,可以把参数做成一个字符串,然后通过改变字符串来改变导入的服务器

使用__import(‘str’)导入的是一个模块,比如我们下面会说到保存字典到文件的两种方式:使用pickle和json,那么,我们就可以以此写两个模块,由执行时的情况决定使用哪个模块

示例:

def run():
    modul=input("使用哪种方式操作文件?(pickle/json):")
    obj = __import__(modul) #得到了这个模块
    fun = input("请输入您想调用的函数:")
    if hasattr(obj,fun): #判断是否有fun这个方法
        fun = getattr(obj,fun) #拿到这个方法
        fun() #调用
    else:
        print("不存在的方法")

if __name__ == '__main__':
    run()

除了代码中有的hasattr和getattr,还有delattr和setattr供我们使用

模块使用

随机数模块

import random

random.random()

random.randint(1,10)

1~10(不包含10)的范围内生成随机整数

random.randrange(1,10)

和上面的有点像,但是,不同的是,这个函数生成的随机数不会出现10

序列化

将内存里的东西存到内存上,只能存Python的内置数据类型

import pickle

pickle.dumps() 没写入文件

可以接受任何数据,比如字典

返回一个字符串,但是这串字符串不是让我们读的,因为不是Unicode编码,是Python添加了一些东西之后生成的东西

pickle.loads(s)

会把内容加载回来,放到s,如果放入的是一个字典,那么取回来也是一个字典

pickle.dump() 有俩参数,可以传入一个file对象,就可以写入指定文件了

写入示例:
with open('Data.txt',''wb) as f:
pickle.dump(data,f)

必须是要以二进制的方式打开

读取示例:

with open('Data.txt','rb') as f:
    temp = pickle.load(f)
print(temp)

import json

s = json.dumps(data)

temp = json.loads(s)

写入json时,文件的打开方式不能是使用二进制打开,以’w’即可,但是使用json读取的时候无所谓,都可以

作业:

给登录加上验证码

有随机的英文及数值

输入后要验证

使用pickle和json的方式,把数据写到文件里

可以使用反射import来设置使用哪种方式

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值