当前位置: 首页 > news >正文

上海城市分站seo优定软件网站建设

上海城市分站seo,优定软件网站建设,建e室内设计网全景分类,应届生去外包公司这一节总结点demo和常用知识点 目录 有关字符串格式化打印的 lambda匿名函数,,将匿名函数作为参数传入 文件读写 生成器 python的装饰器 简单的网站代码: 有关三元运算 推导式: 新浪面试题: 有关面向对象里…

这一节总结点demo和常用知识点

目录

有关字符串格式化打印的

lambda匿名函数,,将匿名函数作为参数传入

文件读写

生成器

python的装饰器

简单的网站代码:

有关三元运算

推导式:

新浪面试题:

有关面向对象里面三种方法


有关字符串格式化打印的

name="asas"
age=12
print(f"我是:{name},年龄:{age}")  f-string
print("我是:",name,"年龄:",age)
print("我是:{},年龄:{}".format(name,age))  format
print("我是:%s,年龄:%d"%(name,int(age)))  格式化print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))# 通过字典设置参数
site = {"name": "菜鸟教程", "url": "www.runoob.com"}
print("网站名:{name}, 地址 {url}".format(**site))# 通过列表索引设置参数
my_list = ['菜鸟教程', 'www.runoob.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list))  # "0" 是必须的

把函数当做参数传给函数,,直接形参就随便一个变量名就行,只要你想,他就可以代表一个函数,

记住对于python的函数参数名来说,他可以代表任何的数据类型,只是看你用啥往进传就可以,

def  fun(a)   ->  我这个a可以代表函数,字符串,列表 ,元组啥的 字典的话就得**a了,,不过写a的话字典就能传进去一组kv

def func(name,**age):print(name,age)def funs(grade,fx):print(grade)fx(12,李四='aa',sad=12)print(type(fx))funs(5,func)

lambda匿名函数,,将匿名函数作为参数传入

格式是:  lambda 参数 : 函数体 (只能写一行)

def test_func(com):print(f"结果是:{com(1,2)}")#lambda匿名函数,,将匿名函数作为参数传入
test_func(lambda x,y:x+y)

文件读写

fd=open("D:/xxt.txt","r",encoding="UTF-8")#read 里面可以指定具体读多少字节
#读方法每次读都是从上个位置后面开始,调用一次读完,再调用
#指针在最后面,读的话就没东西了
print(f"读取全部内容:{fd.read()}")
print(f"读取全部内容:{fd.read()}")
print(f"读取全部内容:{fd.readlines()}")
#readlines读取文件全部行,能读到换行符,并封装到列表中
#readline 一次读一行 
for line in fd:print(f"读取一行内容:{fd.readline()}")fd.close()#关闭文件with open("D:/xxt.txt","r",encoding="UTF-8") as f:  #自带close

做一个小案例,。。要不说python方便 ,案例是打开文件统计一下里面Python3的个数

方法1:

with open("D:/xxt.txt","r",encoding="UTF-8") as f:  #自带closenum=f.read()print("Python3的数量是:",num.count("Python3"))

方法2:

strip()去除开头和结尾的空格和换行符

Python split() 通过指定分隔符对字符串进行切片,如果参数 num 有指定值,则分隔 num+1 个子字符串

ans=0
with open("D:/xxt.txt","r",encoding="UTF-8") as f:  #自带closefor line in f:ls=line.strip() #去除开头尾巴空格 换行符print(ls)words=ls.split(" ")  #以空格分割for word in words:if word=="Python3":ans+=1
print(ans)

写的操作的话就是write,w文件不存在就创建,存在清空重新写,a直接给内容追加

生成器

有yield的就是生成器,你去调用的话这个函数不会运行的,需要你next和for去用

用好yield可以很好的节省内存,做优化;用多少拿多少

生成器函数:yield   函数里的东西 一点点返还给你,碰到yield就暂停了

next(生成器对象)会从上次yield位置继续往下走

#生成器函数
def func():print("进来了")yield 11  #返回一个11 用next接受#走到yield 冻结了,要往下执行,需要继续调nextprint("又来了")yield 22print("最后一次")yield 33gen=func()v1=next(gen)
print(v1)v2=next(gen)
print(v2)v3=next(gen)
print(v3)
#生成器函数
def func():print("进来了")yield 11 yield 22print("最后一次")yield 33gen=func()
for it in gen:print(it)def create_big_num(maxnum):start=0while True:yield startstart+=1if start==maxnum:returnobj=create_big_num(10)
for its in obj:print(its)

python的装饰器

@...语法糖

装饰器就是拓展一个函数的功能,info就像一个参数被outer的func接收,进到outer里面,有个inner函数,开始执行inner,而res接收func,其实就是接收info的执行结果,所以里面info这个函数被调用,最后返回info结果,返回inner结果。一层套一层这样,outer就是这个装饰器,inner函数是具体内容实现,内部调用info函数

结果就是before,info,after

def outer(func):def inner():print("before")res=func()print("after")return resreturn inner@outer
def info():print("info")info()

没有@这个语法糖,上面调用 的话就得这么写

ans=outer(info)
ans()

其实就等于 逻辑上的,ans=inner

换句话说,其实使用装饰器的是,默认传入的参数就是被装饰的函数

#语法糖
@xxx() #@函数名
def ss():pass调用ss()
python内部会自动执行 xxx(ss),执行完之后把结果赋值给ss
等于ss=xxx(ss)
xxx就充当了装饰器,形成了闭包

提一嘴有关py的作用域,全局变量在局部里面,只能去读,或者修改内部元素(也是能是可变的类型,,比如列表等等),,注意是不能赋值的,。如果要赋值,需要在局部里面给变量标识globol,标志他是全局的变量

局部和全局同名,局部内部操作,优先是局部,,如果找不到才会往上一级去找

lis=[1,2,3,4,"你好"]
print(lis)
def sis():lis=[5,5,5,"sas"]lis[0]="jk"print(lis)lis.append("再见")print(lis)sis()
print(lis)

只能修改,可变类型的

lis=[1,2,3,4,"你好"]
print(lis)
def sis():lis[0]="jk"print(lis)lis.append("再见")print(lis)#下面两个报错#lis=[5,5,5]#print(lis)sis()
print(lis)
lis={1,2}
print(lis)
def sis():lis.add("sas")print(lis)#下面两个报错#lis=[5,5,5]#print(lis)sis()
print(lis)

简单的网站代码:

from flask import Flaskapp=Flask(__name__)def index():return "首页"def info():return "中心"app.add_url_rule("/index/",view_func=index)
app.add_url_rule("/info/",view_func=info)app.run()

运行:

 

有关三元运算

三元运算和lambda可以实现简单的函数

lambda只能写一行,三元运算可以进行简单的条件判断

             三元运算 # true    if  条件  else  falsefunc=lambda x: "大了" if x>66 else "小了"print(func(1))print(func(99))

 内置排序

推导式:

列表,字典,集合都可以,直接就生成了对应数据

而对于元组用推导式,生成的是生成器对象,,需要用next或者for去使用

num_list=[i for i in range(10) if i>6]
num_list=[(i,i) for i in range(10) if i>6]
print(num_list)num_set={i if i%2 else -i for i in range(10)}
print(num_set)

exp:

dis={'opi':"光头强",'is':"熊大",'lp':"熊二",'498':"美羊羊"}res=sorted(dis.items(),key=lambda x:x[0])
print(res)
data="%".join(["{}={}".format(key,value) for key,value in res])
print(data)

新浪面试题:

dip=[lambda x:x+i for i in range(10)]#i变成9最后
v1=dip[0](100)   #执行到这  才去lambda x+i这块执行函数
v2=dip[3](100)  
print(v1,v2)  #都是109   

包文件夹都会有个__init__.py这个主要就是说明这个包是干嘛的,,py2里面必须有,py3里面可以不需要,,建议弄包的时候都创建这么个文件

对于导入包来说,想要导入任意的包怎么办?

#添加到python的内置路径位置
import sys
sys.path.append("想要添加的路径")

注意:写模块名称的时候不能和内置模块重名

有关面向对象里面三种方法

类方法(传类),绑定/实例方法(传对象),静态方法(不用传类或者对象去调用)

其实对于三种方法来说,类和对象都是可以去调用的,只不过依情况而定

一般而言,用对象去调用绑定方法;类去调用类方法;类去调用静态方法

 

http://www.yayakq.cn/news/964412/

相关文章:

  • 苏州网站建设书生商友网站开发环境安装程序
  • 北京网站的网站建设公司网页设计培训哪家机构好
  • wordpress调用headerseo外链技巧
  • 网站欢迎页面代码铁岭做网站包括哪些
  • 大型企业网站源码中国未来楼市走势分析
  • 做外贸翻译用哪个网站好聊城做网站价格
  • 网站平台设计 问题做的网站在百度搜索不到
  • 沈阳 建设工程 招标中心网站肇庆网站建设解决方案
  • 湛江个人网站建设电商设计行业前景
  • 网站哪个公司做织梦网站如何做301跳转
  • 展览馆网站建设方案书网站建设主要问题及建议
  • 同ip网站有什么危害wordpress如何接入支付接口
  • php 做的应用网站国内互联网建站公司排名
  • 游戏的网站策划应该怎么做二次开发语言
  • 免费网站建河北省建设厅网站站长
  • 黄江建设网站ant design 做网站
  • 北京企业网站设计报价如何制作电子印章
  • 简洁网站设计佛山建设外贸网站公司
  • 手机怎样建网站学做企业网站
  • wordpress海外建站网站建设学习要多久
  • 教手工做衣服的网站湖北住房与城乡建设部网站
  • 新电商网站无锡网站seo外包
  • 小米网站建设网站建设的结构设计
  • 城市建设灯具网站巩固网站访客量
  • 虚拟主机怎么设计网站建设一个网站多少钱呢
  • 网站速度慢如何做优化打广告专用图
  • 湖南服装网站建设wordpress 忘记数据库
  • 卖鱼的亲戚要我帮忙做网站网站的栏目建设在哪里
  • 南开网站建设优化seo自己做简单网站
  • 建设一个网站需要什么硬件2345是哪个公司的软件