保健励志美文体育育儿作文
投稿投诉
作文动态
热点娱乐
育儿情感
教程科技
体育养生
教案探索
美文旅游
财经日志
励志范文
论文时尚
保健游戏
护肤业界

python学习笔记(基本语法脚本)

  基本语法1。简单控制语句
  字符串推荐用单引号引用list:List〔int〕〔1,2,3〕foreleminlist:ifelem1:print(fdata{elem}1)这里是format语句,属于语法糖else:print(fdata{elem}1)data11data21data312。异常x1try:ifx0:raiseException(Sorry,nonumbersbelowzero)exceptExceptionaserr:print(finderr:serr)finderr:Sorry,nonumbersbelowzero3。推导式(比较晦涩难懂)参考:https:www。cnblogs。comdesireyangp12160332。html
  推导式好处:效率更高,底层是c执行1。列表推导式
  一共两种形式:(参考:https:zhuanlan。zhihu。comp139621170),它主要是输出是列表(list)〔xforxindataifcondition〕这里的含义是data只有满足if条件中的情况才保留(if)〔exp1ifconditionelseexp2forxindata〕,这里的含义是data满足if条件时执行exp1否则exp2(ifelse)importre获取所有的数字list〔1,2,3,4,5,a,b,c〕print(〔elemforeleminlistifre。match(d,elem)〕)〔1,2,3,4,5〕获取所有的字母print(〔elemforeleminlistifre。match(〔az〕,elem)〕)〔a,b,c〕如果元素是数字则存储,否则则upperprint(〔elemifre。match(d,elem)elseelem。upper()foreleminlist〕)〔1,2,3,4,5,A,B,C〕
  最佳实践:参考(https:github。comhttpiehttpieblobmasterhttpiecore。pyL235)defdecoderawargs(args:List〔Union〔str,bytes〕〕,stdinencoding:str)List〔str〕:Convertallbytesargstostrbydecodingthemusingstdinencoding。return〔arg。decode(stdinencoding)iftype(arg)isbyteselseargforarginargs〕defdecoderawargsparse(args:List〔Union〔str,bytes〕〕,stdinencoding:str)List〔str〕:Convertallbytesargstostrbydecodingthemusingstdinencoding。不使用推导式result:List〔str〕〔〕forarginargs:iftype(arg)isbytes:result。append(arg。decode(stdinencoding))else:result。append(arg)returnresultarg。decode(stdinencoding)iftype(arg)isbyteselseargforarginargsprint(decoderawargs(args〔b111,b222〕,stdinencodingutf8))print(decoderawargs(args〔111,222〕,stdinencoding))〔111,222〕〔111,222〕print(decoderawargsparse(args〔b111,b222〕,stdinencodingutf8))print(decoderawargsparse(args〔111,222〕,stdinencoding))〔111,222〕〔111,222〕2。字典推导式
  {keyexpr:valueexprforvalueincollectionifcondition},输出是dict{keyexpr:valueexprforvalueincollectionifcondition}反转keyvalue,且获取value为在set{a,b,c}中的元素dictold{a:A,b:B,c:C,d:D}print({dictold〔value〕:valueforvalueindictoldifvaluein{a,b,c}}){A:a,B:b,C:c}print({key:valueforvalue,keyindictold。items()ifvaluein{a,b,c}}){A:a,B:b,C:c}3。集合推导式
  表达式:{exprforvalueincollectionifcondition}{exp1ifconditionelseexp2forxindata}输出是set
  其实就是上面列表推导式〔〕换成{},输出由list变成了set4。for循环迭代器importosfromcollections。abcimportIterablewithopen(text。log,wt)asfile:file。truncate()file。writelines(line1os。linesep)file。writelines(line2os。linesep)file。writelines(line3os。linesep)passwithopen(text。log,rt)asfile:forlineinfile:print(type:{type},isinstance:{isinstance},line:{line}。format(typetype(file),isinstanceisinstance(file,Iterable),lineline))passtype:classio。TextIOWrapper,isinstance:True,line:line1type:classio。TextIOWrapper,isinstance:True,line:line2type:classio。TextIOWrapper,isinstance:True,line:line3
  这里面io。TextIOWrapper实现了next()方法
  比如我们自己实现一个可迭代的对象下面可以看到我使用了类型申明List〔str〕其实这个python运行时并不会检测,需要工具进行检测!
  变量默认都是Any类型,具体可以看https:docs。python。orgzhcn3librarytyping。htmlfromtypingimportListclassItems(object):definit(self,list:List〔str〕):self。listlistself。index0defnext(self,args,kwargs):next,没有抛出StopIterationifself。indexlen(self。list):raiseStopIterationresultself。list〔self。index〕self。indexself。index1returnresultdefiter(self,args,kwargs):返回一个迭代器returnselfdataItems(〔1,2,3〕)forxindata:print(x)1235。包管理from。。aimportfoo上级目录from。aimportfooa当前目录importsys引用源码或者libfromcopyimportdeepcopy引用源码或者libfrompygments。formatters。terminalimportTerminalFormatter引用lib。lib。fileimportdemo。utils。adefcfoo():demo。utils。a。fooa()TerminalFormatter()deepcopy()print(sys。apiversion)defbfoo():foo()基本数据类型1。定义方式mylist:list〔str〕〔apple,banana,cherry〕mylist〔apple,banana,cherry〕
  TextType:
  str
  NumericTypes:
  int,float,complex
  SequenceTypes:
  list,tuple,range
  MappingType:
  dict
  SetTypes:
  set,frozenset
  BooleanType:
  bool
  BinaryTypes:
  bytes,bytearray,memoryview2。数字基本类型x1inty1。1floatz1j复数(complex)acomplex(1,2)复数(complex)print(type(x))print(type(y))print(type(z))print(z。imag,z。real)print(type(a))print(a。imag,a。real)classintclassfloatclasscomplex1。00。0classcomplex2。01。03。字符串strhelloprint(str)print(str〔0:〕)print(str〔:5〕)print(str〔:1〕)print(str〔0:5〕)print(str〔0:5:1〕)print(str〔0:5:2〕)hellohellohellohellhellohellohloformatprint(Mynameis{}andageis{}。format(tom,18))Mynameistomandageis18quantity3itemno567price49。95myorderIwanttopay{2}dollarsfor{0}piecesofitem{1}。print(myorder。format(quantity,itemno,price))Iwanttopay49。95dollarsfor3piecesofitem567。funcstrhelloworld!print(str。upper())print(str。lower())print(str。strip())print(str。。。)HELLOWORLD!helloworld!helloworld!helloworld!。。。formatmyorderIhavea{carname},itisa{model}。print(myorder。format(carnameFord,modelMustang))IhaveaFord,itisaMustang。4。lambda
  其实就是一个funcdefadd(num):returnlambdax:xnumprint(add(10)(10))20
  lanbda例子2importjsonclassObj:definit(self):self。nametomself。age1print(json。dumps(Obj(),defaultlambdaobj:obj。dict)){name:tom,age:1}集合
  list,tuple,range,dict,set,frozensetlist,例如:mylist〔apple,banana,cherry〕tuple是特殊的数组,就是不能改变,例如mytuple(apple,banana,cherry)range可以理解是个迭代器,例如:dict就是个map,例如:thisdict{brand:Ford,model:Mustang,year:1964}set就是个去重复的list,例如:myset{apple,banana,cherry}1。listmylist〔apple,banana,cherry〕切片print(mylist〔0〕)print(mylist〔2〕)print(mylist〔1〕)print(mylist〔0:3:2〕)applecherrycherry〔apple,cherry〕基本操作mylist。append(orange)print(mylist)〔apple,banana,cherry,orange〕mylist。insert(0,mango)print(mylist)〔mango,apple,banana,cherry,orange〕循环forxinmylist:print(x)applebananacherryorangeforindexinrange(len(mylist)):print(index:dindex)index:0index:1index:2index:3index:4ifappleinmylist:print(success!)success!〔执行表达式(也就是for循环中的,如果有if则是if中执行的),foriteminlist条件表达式〕newlist〔elem。upper()foreleminmylistifainelem〕containsacharelemstrprint(newlist)〔MANGO,APPLE,BANANA,ORANGE〕newList〔〕foreleminmylist:ifainelem:newList。append(elem。upper())print(newList)〔MANGO,APPLE,BANANA,ORANGE〕2。mapthisdict{brand:Ford,model:Mustang,year:1964}forkey,valueinthisdict。items():print(key:{},value:{}。format(key,value))key:brand,value:Fordkey:model,value:Mustangkey:year,value:1964forkeyinthisdict:print(key:{},value:{}。format(key,thisdict〔key〕))key:brand,value:Fordkey:model,value:Mustangkey:year,value:19643。rangerange会生成一个迭代器,(start,end,sep),左闭右开forxinrange(6):〔0,1,2,3,4,5〕print(xisdx)xis0xis1xis2xis3xis4xis5forxinrange(2,6):print(xisdx)xis2xis3xis4xis5forxinrange(1,6,2):print(xisdx)xis1xis3xis5方法1。定义一个空方法deffunc1():pass空方法必须申明passfunc1()2。参数name为必须添的参数,不然为空会报错age为默认参数agrs为可变参数kwargs为kv参数deffunc1(name,age1,args,kwargs):print(name:sname)print(age:dage)print(len(args):{},type:{}。format(len(args),type(args)))forvalueinargs:print(argsvalue:{}。format(value))print(len(kwargs):{},type:{}。format(len(kwargs),type(kwargs)))forkey,valueinkwargs。items():print(kwargskey:{},value:{}。format(key,value))func1(nametom,age10,args1,kwargs2)name:tomage:10len(args):0len(kwargs):0,type:classtuplelen(kwargs):2,type:classdictkwargskey:args,value:1kwargskey:kwargs,value:2这里注意由于dict所以不能申明kvfunc1(tom,10,1,2,args1,kwargs2)name:tomage:10len(args):2,type:classtupleargsvalue:1argsvalue:2len(kwargs):2,type:classdictkwargskey:args,value:1kwargskey:kwargs,value:23。类型
  申明输入输出类型fromtypingimportList,Uniondefdecoderawargs(args:List〔Union〔str,bytes〕〕,stdinencoding:str)List〔str〕:Convertallbytesargstostrbydecodingthemusingstdinencoding。return〔arg。decode(stdinencoding)iftype(arg)isbyteselseargforarginargs〕类1。定义类和方法如果没有父类继承,这里选择object,比较规范classPerson(object):gendernone,maleorfemalegendernone构造器definit(self,name,age):self。namenameself。ageagedefmyname(self):returnself。namepPerson(nametome,age1)print(p。myname())2。类型的继承importjsonclassPerson(object):gendernone,maleorfemalegendernone构造器definit(self,name,age):self。namenameself。ageagedefmyname(self):returnself。namepPerson(nametome,age1)print(p。myname())classMail(Person):definit(self,name,age):super(Mail,self)。init(name,age)self。gendermaildefmyname(self):returnself。namemailpMail(nametome,age1)print(json。dumps(p,defaultlambdaobj:obj。dict))print(p。myname())3。类new函数
  主要是init执行前会调用!usrbinpythonimportjsonclassPerson(object):defnew(cls,args,kwargs):instanceobject。new(cls)instance。jobitreturninstanceconstructdefinit(self,name,age):self。namenameself。ageagedeftojson(self):returnjson。dumps(self,defaultlambdaobj:obj。dict)pPerson(nametome,age1)print(p。tojson()){age:1,job:it,name:tome}其他用法技巧1。断言iftype(1)isint:print(argsisint)。。。等效passargsisint2。测试
  可以参考文件:https:segmentfault。comq1010000010389542,属于doctestdefhumanizebytes(n,precision2):Author:DougLatornellLicence:MITURL:https:code。activestate。comrecipes577081Returnahumanizedstringrepresentationofanumberofbytes。humanizebytes(1)1Bhumanizebytes(1024,precision1)1。0kBhumanizebytes(1024123,precision1)123。0kBhumanizebytes(102412342,precision1)12。1MBhumanizebytes(102412342,precision2)12。05MBhumanizebytes(10241234,precision2)1。21MBhumanizebytes(102412341111,precision2)1。31GBhumanizebytes(102412341111,precision1)1。3GBabbrevs〔(150,PB),(140,TB),(130,GB),(120,MB),(110,kB),(1,B)〕ifn1:return1Bforfactor,suffixinabbrevs:ifnfactor:breaknoinspectionPyUnboundLocalVariablereturnf{nfactor:。{precision}f}{suffix}3。yield参考:https:zhuanlan。zhihu。comp268605982
  其实类似于程序的断电,比如程序运行到那里其实是返回一个生成器,然后当你下一步是才会执行,比较节省内存fromtypingimportListdefnew(size:int10241024):yieldnewdata(size)defnewdata(size:int)List〔int〕:return〔0〕sizedatanew()print(type(data))print(len(next(data)))只能执行一次next不然报错classgenerator1048576脚本base64输出echoaGVsbG8gcHl0aG9uCgpythoncimportsys,base64;print(sys。stdin。read())echoaGVsbG8gcHl0aG9uCgpythoncimportsys,base64;print(base64。b64decode(sys。stdin。read()))stdout:bhellopython文件操作r,w,x,a四种类型(a:append,wtruncatecreate,xtruncatecreateifnotexit)b,t文件类型
  第一列可以和第二列文件类型组合,第一列不允许并存importoswithopen(file。log,w)asfile:forxinrange(0,100):file。write(helloworldos。linesep)withopen(file。log,r)asfile:forlineinfile。readlines():print(line)jsonimportjsonprint(json。dumps({k1:v1,k2:〔1,2,3〕}))print(json。loads({k1:v1,k2:〔1,2,3〕}))
  如果是class,需要继承JSONEncoder和JSONDecoder实现子类,或者importjson,datetimeclassDemo(object):definit(self,name:str,age:int,birthday:datetime。date):self。namenameself。agwageself。birthdaybirthdaydeftojson(self,):return{name:self。name,age:self。agw,birthday:self。birthday。strftime(Ymd)}dataDemo(tom,18,datetime。date(2001,1,1))print(json。dumps(data,defaultdata。tojson))typing(申明类型)
  官方文档:https:docs。python。orgzhcn3librarytyping。html
  可以参考这篇文章:https:sikasjc。github。io20180714typehintinpython
  对于喜欢静态类型的语言,我觉得是非常nice的fromtypingimportDict,Listdeftest(data:Dict〔str,str〕)List〔str〕:return〔xforxindata〕print(test({k1:v1,k2:v2}))

关于尊严的作文用智慧捍卫尊严他为了国家,为了民族,毅然站在了秦朝的大殿上。他看见秦王的眼中流露着贪婪。他知道自己有丧命的危险,但是他坚持下去,他没有慌张、没有胆怯,而是用自己的言行阻止亲王攻打安陵,以受地……苹果手机关闭俄罗斯用户支付功能是自取灭亡吗?近期,苹果公司发布声明称,将暂停在俄销售苹果旗下的产品,并限制苹果手机的支付功能。此外,苹果应用商店删掉了部分俄罗斯媒体APP。作为一家全球性企业,苹果产品深受全球消费者……哈尔滨中考英语例文预测中考是一场没有硝烟的战争,英语作文就是考生们的马匹,你知道今年中考有哪些预测英语作文吗?下面是品学网小编给大家精心挑选的哈尔滨中考英语例文预测,希望大家喜欢!供你参考和阅读!中……太阳,我想对您说作文太阳我想对您说:感谢您!感谢您用自己的光和热,让世界更美好。太阳感谢您用温暖的春光,让花草树木脱下枯黄的外衣,穿上翠绿翠绿的新装;让小河里的冰融化了,河水在您的抚摸下哗哗……动力电池回收迎来高光时刻市场缺口巨大买家高价抢货来源:证券日报新能源汽车的高速发展,让动力电池产业链上产品供不应求,随之导致价格大涨,造成了动力电池回收迎来高光时刻。去年以来,动力电池回收价格大幅走高,部分三元黑粉料涨……记忆深处的你的初三作文记忆如同握在手里的水,不论握紧还是摊开,都会慢慢消失。但是,朋友小泽,与你朝夕相处那段日子,将永驻我记忆深处,你我之间的友情也将成为我今生最大的财富。犹记得你我初次见面的……我班正流行大鱼捉小鱼六年级作文我班流行的东西很多,有时可能是一首歌,令人陶醉其中;有时可能是一句话,使人开怀大笑;有时可能是一种游戏,让人恋恋不忘。现在我班正流行着一种游戏,那就是大鱼捉小鱼。这个游戏……难忘的一件事小学优秀作文范文难忘是指难以忘记,无法忘却;永远印在脑海里的,值得记忆的。小编精心为你整理了,希望对你有所借鉴作用哟。小编精心为你整理了难忘的一件事小学优秀作文,希望对你有所借鉴作用哟。篇一:……歌词集第三百四十三篇题目:青春画册之眷恋一(一)心把谁眷恋?比翼的鸟儿很多是红颜惆怅的时光拧成了线可否抛来你温情的笑脸?星光在夜幕下转向剥落了与容颜亲吻的……春天观察日记七篇时间过得真快,一天又将结束了,想必大家都学习了不少新知识,这时候,最关键的日记怎么能落下。那么你真的懂得怎么写日记吗?下面是小编精心整理的春天观察日记7篇,欢迎大家借鉴与参考,……小学作文家乡的公园我的家乡在新余,它是一座美丽的城市。在我的家乡有许多美丽的景点,如:七仙女下凡的仙女湖,纪念傅抱石的抱石公园,北湖公园和孔目江湿地公园等等,其中我最喜欢的是湿地公园。春天……新能源汽车充电需要办什么卡如果是国网电力的桩,可以去国网营业厅办理电卡,也可以下载国网的e充电来进行充电支付。根据这个公式可以大致计算出充满电需要多长时间。除了电池容量、充电功率这两个与充电时间直……
那些Python中的模块简介Python的解释环境是很好用,但是如果我们需要编写一个大型的程序的时候,解释环境就完全不够用了。这个时候我们需要将python程序保存在一个文件里。通常这个文件是以……AMDCEO预热锐龙6000移动处理器今晚发布AMDCES2022发布会将于北京时间1月4日晚23:00开始。根据爆料信息,AMD将在本次CES上发布新款桌面处理器、桌面显卡、移动处理器和移动显卡。昨晚,AMDCEO……思考在生活中所占比例之大作文我最喜欢看侦探小说。在这个假期,妈妈给我买《大侦探》。当你遇到一个案件,难以寻找线索,你会怎么办?放弃或者冥思苦想?;当你面临死亡的时候,你是沉着冷静、找到时机逃走,还是……科技早报中国移动将于1月5日在上交所上市苹果市值破3万亿美元记者于浩中国移动将于1月5日在上交所上市1月3日下午,中国移动发布公告称,中国移动股票将于1月5日在上海证券交易所上市交易,股票代码600941,发行价格为57。5……手机升级OriginOSOcean新版本会变得更流畅吗?vivo的系统从FuntouchOS切换到OriginOS后广受好评,特别是原子组件和华容道网格碰撞出了不一样的火花。时隔一年之后,OriginOS又迎来了原子系统的第一次大更……这4种智能家电用品功能鸡肋不实用,建议大家慎选,别再入坑了近些年,随着人们生活水平的不断提高,大家在购买家电的时候更愿意选择一些智能产品,这类产品确实给咱们的生活带来诸多便利。但是,很多人在购买时因为缺少经验,会盲目地认为功能越多越好……向FAA妥协美国两大运营商推迟全新5G服务本报记者裴昱北京报道围绕下一代通讯网络技术制式5G的竞争与博弈,正在花样翻新地演绎出各种版本。由于通讯技术及其制式的鲜明而确定的信息基础设施属性,这种博弈与竞争,注定不是……赞美真爱的名言真爱是无敌的,是遇到什么矛盾都不会被打败的。你看过哪些赞美真爱的名言呢?今天品学网小编给大家带来的是赞美真爱的名言,希望你会喜欢。赞美真爱的名言精选1)持久的爱情源于彼此……美国航司与电信巨头因新5G服务产生纠葛ATampampamp美国时间周一晚间ATT和VerizonCommunicationsInc各发布声明称,同意将推出全新5G服务的时间延后两周。美国航司此前表示,新5G服务可能会干扰飞机电子设备并……在生活中学会承受作文我们总是活得那样匆忙,顾不上看看头上的天空、脚下的大地和那并不遥远的大海。我们总是生活在眼前,却忘掉了不该让追逐的脚步停滞不前。但因为我们承受了好的或坏的一切,所以我们懂得了天……传承孝道,传承美与爱孝,是一种美德,更是一种文化。孝文化是我国传统文化宝库中的重要组成部分。古往今来,孝文化在弘扬中华民族的传统美德,维系家庭和睦,增强民族团结,稳定社会等方面,都起到十分重……青年节征文释放青春激情燃烧岁月,青春荡漾年华,美丽的校园承载我们远大的理想,放飞我们无限的激情。下面是小编整理的释放青春作文,供大家鉴赏!【释放青春作文1】激情燃烧岁月,青春荡漾年华……
友情链接:易事利快生活快传网聚热点七猫云快好知快百科中准网快好找文好找中准网快软网