首页 《Python编程基础》

《Python编程基础》

举报
开通vip

《Python编程基础》市面上不乏python入门教程,但深入讲解python语言和应用的课程甚少,本课程定位深入理解python核心语法,结合实际应用场景,带领初学python或是有其它编程语言背景的程序员能快速掌握这门强大的语言,使其能在开发中发挥强大的生产力。最大的优势在于它的字符串模式匹配能力,其提供一个十分强大的正则表达式匹配引擎。核心实现依赖perl,但语法比perl易懂的多。高级语言,面向对象,可拓展,可移植,语法清晰,易维护,高效的原型。我为什么推崇Python?1.干某一件事情,C需要100行,JAVA需要50行,Pyt...

《Python编程基础》
市面上不乏python入门教程,但深入讲解python语言和应用的课程甚少,本课程定位深入理解python核心语法,结合实际应用场景,带领初学python或是有其它编程语言背景的程序员能快速掌握这门强大的语言,使其能在开发中发挥强大的生产力。最大的优势在于它的字符串模式匹配能力,其提供一个十分强大的正则 关于同志近三年现实表现材料材料类招标技术评分表图表与交易pdf视力表打印pdf用图表说话 pdf 达式匹配引擎。核心实现依赖perl,但语法比perl易懂的多。高级语言,面向对象,可拓展,可移植,语法清晰,易维护,高效的原型。我为什么推崇Python?1.干某一件事情,C需要100行,JAVA需要50行,Python只需要10行,当你忙于编写代码或是 设计 领导形象设计圆作业设计ao工艺污水处理厂设计附属工程施工组织设计清扫机器人结构设计 框架时,Python程序员已经早早的下班开启了把妹之旅。2.面向对象开发,方便团队协作,语言间的万能胶水,当需要高性能的处理时可以自然粘合c/c++模块。3.信奉python的哲学在python解释器中输入,”importthis”漂亮比丑陋要好。直接比含蓄要好。简单比繁复要好。繁复比复杂要好。平铺比嵌套要好。稀疏比密集要好。可读性很重要。特例不能破坏规则。尽管实用优于纯正。错误永远不能安静的通过。除非明确的让它安静。拒绝在模糊的地方猜测。应当有一种,并且最好只有一种,明显的方法去做一件事。尽管开始时那种方法并不明显,除非你是荷兰人。现在要比永远不更好。尽管永远不常常比当前要好。如果一个实现很难解释,那么它就是一个不好的想法。如果一个实现容易解释,那么它可能是一个好的想法。名称空间是一个很伟大的想法,让我们做的更多。python家族:C语言实现,CPython,扩展可用C/C++Java实现,Jython,扩展可用Java.Net实现,IronPython,扩展可用C#python能干什么?科学计算图形化开发系统脚本web服务器网络爬虫服务器集群自动化运维1高效的开发环境与基础1.1python开发环境Mac/Linux发行版目前默认安装pythonipythonpython官方IDE,在python发行版自带Eclipse+pydevPyScriptersublimetext31.1.1Windows下SublimeText3和python语言环境sublimetext官方下载地址,请根据自己的操作系统平台选择对应版本http://www.sublimetext.com/3python下载地址https://www.python.org/downloads/1.1.2Linux下SublimeText3和python语言环境Linux系统选择广受大家欢迎的Ubuntu14.04,如果没有此环境可以选择使用传智C++学院配置好的虚拟机镜像下载链接:http://pan.baidu.com/s/1c0yTN4c密码:b77w用户名:itcast密码:itcastsublimetext官方下载地址,请根据自己的操作系统平台选择对应版本http://www.sublimetext.com/3ubuntu14.04默认是安装了python2.7的1.1.3Ubuntu下ipython1.安装sudoapt-getinstallipython2.启动itcast@itcast:~/workspace/chuanzhi/openlessons$ipython3.体验print"helloitcastcpp"#此为python2的写法4.退出ctrl+d5. 案例 全员育人导师制案例信息技术应用案例心得信息技术教学案例综合实践活动案例我余额宝案例 importrequestsres=requests.get("http://c.itcast.cn")savefile=open("itcast.html","w")savefile.write(res.content)savefile.close()6.技巧%history:记录敲过的命令,方便从命令转为脚本文件tab:补齐命令或路径1.1.2Sublime使用技巧1.安装package管理工具`ctrl+``调出命令输入窗口importurllib.request,os;pf='PackageControl.sublime-package';ipp=sublime.installed_packages_path()urllib.request.install_opener(urllib.request.build_opener(urllib.request.ProxyHandler()));open(os.path.join(ipp,pf),'wb').write(urllib.request.urlopen('http://sublime.wbond.net/'+pf.replace('','%20')).read());设置vim模式,SublimeText内置Vim模式支持,你只需到用户设置文件将“ignored_packages”:[“vintage”]中的vintage删除即可。2.调出installpackage界面ctrl+shift+pinstallpackage3.常用工具包AdvancedNewFileDjaneiroEmmetGitSideBarHTML/CSS/JSPrettifyPythonPEP8AutoformatSublimeCodeIntelColorPickerOmniMarkupPreviewer4.常用包使用说明AdvancedNewFile可以创建文件,也可以连目录和文件都创建win+alt+nDjaneirodjango一些语法快速补齐功能,参考如下https://packagecontrol.io/packages/DjaneiroEmmet快速缩写html,tab补齐html:5补齐htmlp.foo补齐classp#foo补齐id>子元素符号,表示嵌套的元素+同级标签符号^可以使该符号前的标签提升一行更多参考:http://www.iteye.com/news/27580Git集成gitctrl+shift+p输入gitSideBar折叠目录树ctrl+kctrl+bHTML/CSS/JSPrettify 格式 pdf格式笔记格式下载页码格式下载公文格式下载简报格式下载 化代码,鼠标右键,从里面选PythonPEP8Autoformat格式化python代码ctrl+shift+rSublimeCodeIntel自动匹配补全代码ctrl+f3调到变量定义的地方ColorPicker屏幕拾色器ctrl+shift+cOmniMarkupPreviewer更多插件,设置OmniMarkupPreviewer的packagesetting中的default。修改里面的extensions"extensions":["extra","codehilite","toc","strikeout","smarty","subscript","superscript"]安装语法高亮支持插件sudopipinstallpygmentsConvertToUTF8直接在菜单栏中可以转,专为中文设计TerminalSublime版的在当前文件夹内打开ctrl+shift+tSideBarEnhancements右键一下子多处很多选择自带技巧修改同一个变量,光标放在变量后,两次ctrl+d多变量修改,按住ctrl,鼠标点击修改位置查找ctrl+f插入注释ctrl+shift+/注释当前行ctrl+/分屏Alt+Shift+1(非小键盘)窗口分屏,恢复默认1屏Alt+Shift+2左右分屏-2列Alt+Shift+3左右分屏-3列Alt+Shift+4左右分屏-4列Alt+Shift+5等分4屏Alt+Shift+8垂直分屏-2屏Alt+Shift+9垂直分屏-3屏标签切换alt+数字Ctrl+Shift+P打开命令面板关闭当前标签文件ctrl+f4f11全屏脚本一键安装cd~/home/ace/.config/sublime-text-3/PackagesechoInstall...echo==================================================echo===PackageControl===rm-rf"PackageControl"gitclonehttps://github.com/JustQyx/Sublime-Text-Package-Control.git"PackageControl"echo===BlockCursorEverwhere===rm-rf"BlockCursorEverwhere"gitclonehttps://github.com/ingshtrom/BlockCursorEverywhere.git"BlockCursorEverwhere"...1.2基础数据类型整型:通常被称为是整型或整数,是正或负整数,不带小数点。长整型:无限大小的整数,整数最后是一个大写(或小写)的L。浮点型:浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2=2.5x102=250)复数:复数的虚部以字母J或j结尾。如:2+3j布尔类型:True,False字符串:单引号,双引号,三个单引号扩起来获取变量的数据类型type(var_name)主提示符>>>在等待下一条语句次提示符...在等待当前语句的其他部分1.3变量1.3.1变量本质1.python中的变量不需要先定义,再使用,可以直接使用,还有重新使用用以存储不同类型的值。2.变量命名遵循C命名风格。3.大小写敏感。4.变量引用计数。5.del语句可以直接释放资源,变量名删除,引用计数减1。6.变量内存自动管理回收,垃圾收集。7.指定编码在文件开头加入#-*-coding:UTF-8-*-或者#coding=utf-8。>>>a=12#无需定义,直接使用,python解释器根据右值决定左侧类型>>>printa12>>>id(a)#变量a在内存中的编号136776784>>>type(a)#a的类型为int类型>>>b=12.34>>>printb12.34>>>id(b)#变量b在内存中所占内存编号3071447616>>>type(b)#b的类型为float>>>a="itcast"#变量a从新指向一个字符串>>>printaitcast>>>id(a)#变量a在内存中的编号为保存“itcast”地方,原来a所指向的内存编号里内容并没有立即释放3071127936>>>type(a)#变量a现在指向一个字符串>>>c=b>>>printc12.34>>>id(c)#变量c保存的内存中的编号和b一致3071447616>>>type(c)>>>b=12#解释器在内存中发现有保存12的这个单元,于是变量b指向了此单元,减少了存储空间的反复申请与释放>>>id(b)136776784>>>type(b)>>>printb12>>>printaitcast>>>del(a)>>>printaTraceback(mostrecentcalllast):File"",line1,inNameError:name'a'isnotdefined1.4简单函数函数定义格式defadd(x,y):z=x+yreturnzres=add(3,5)printres81.def定义函数的关键字2.x和y为形参,不需要类型修饰3.函数定义行需跟’:’4.函数体整体缩进5.函数可以拥有返回值,若无返回值,返回None,相当于C中的NULL1.5输入输出函数#输出#print函数>>>print"%sis%dhelloworld"%("tody",1)todyis1helloworld#输入>>>a=raw_input()>>>123>>>printa#raw_input()从 标准 excel标准偏差excel标准偏差函数exl标准差函数国标检验抽样标准表免费下载红头文件格式标准下载 输入获取数据返回的数据是字符串类型需要使用int()进行转换1.6局部变量和全局变量代码1.局部变量作用域覆盖全局变量defp_num():num=5printnumnum=10p_num()printnum#结果:510代码2.函数内有局部变量定义,解释器不使用全局变量,局部变量的定义晚于被引用,报错defp_num():printnumnum=5printnumnum=10p_num()printnum#结果出错代码3.函数内部可以直接访问全局变量defp_num():printnumnum=10p_num()printnum#结果:1010代码4.函数内修改全局变量,使用global关键字defp_num():globalnumprintnumnum=20printnumnum=10p_num()printnum1.7特殊变量_xxxfrommoduleimport*无法导入__xxx__系统定义的变量__xxx类的本地变量1.8表达式1.8.1算术表达式+a结果符号不变-a对结果符号取负a+ba加ba-ba减ba**ba的b次幂a*ba乘以ba/ba除以b,真正除,浮点数保留小数a//ba除以b,向下取整a%ba对b取余数1.8.2逻辑表达式notaa的逻辑非boolaandba和b逻辑与boolaorba和b逻辑或boolaisba和b是同一个对象boolaisnotba和b不是同一个对象bool1.8.3关系表达式运算结果为布尔类型==等于!=不等于<>不等于(废弃)>大于<小于>=大于等于<=小于等于1.9位运算~a按位取反a<>na右移n位a&ba和b按位与a|ba和b按位或a^ba和b按位异或1.10语法格式缩进表示关系,函数,分支,循环语句后面带’:’1.11分支语句#if-elseifa>b:print("aaa")else:print("bbb")#if-elif-elseifa>b:print("a>b")elifa==b:print("a==b")else:print("a>>aList=[1,2,3,4]>>>aList[1,2,3,4]>>>aList[0]1>>>aList[2:][3,4]>>>aList[:3][1,2,3]1.13.2更新列表中的值>>>aList[1]=5>>>aList[1,5,3,4]1.13.3删除列表中的值>>>delaList[1]>>>aList[1,3,4]1.13.4Python列表脚本操作符列表对+和*的操作符与字符串相似。+号用于组合列表,*号用于重复列表。Python表达式结果描述len([1,2,3])3长度[1,2,3]+[4,5,6][1,2,3,4,5,6]组合['Hi!']*4['Hi!','Hi!','Hi!','Hi!']重复3in[1,2,3]True元素是否存在于列表中forxin[1,2,3]:printx,123迭代1.13.5Python列表截取Python的列表截取与字符串操作类型,如下所示:L=['spam','Spam','SPAM!']操作:Python表达式结果描述L[2]'SPAM!'读取列表中第三个元素L[-2]'Spam'读取列表中倒数第二个元素L[1:]['Spam','SPAM!']从第二个元素开始截取列表1.13.6Python列表函数&方法Python包含以下函数:序号函数1cmp(list1,list2)比较两个列表的元素2len(list)列表元素个数3max(list)返回列表元素最大值4min(list)返回列表元素最小值5list(seq)将元组转换为列表Python包含以下方法:序号方法1list.append(obj)在列表末尾添加新的对象2list.count(obj)统计某个元素在列表中出现的次数3list.extend(seq)在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)4list.index(obj)从列表中找出某个值第一个匹配项的索引位置5list.insert(index,obj)将对象插入列表6list.pop(obj=list[-1])移除列表中的一个元素(默认最后一个元素),并且返回该元素的值7list.remove(obj)移除列表中某个值的第一个匹配项8list.reverse()反向列表中元素9list.sort([func])对原列表进行排序1.14内建range函数range(start,end,step)>>>range(1,5)#代表从1到5(不包含5)[1,2,3,4]>>>range(1,5,2)#代表从1到5,间隔2(不包含5)[1,3]>>>range(5)#代表从0到5(不包含5)[0,1,2,3,4]>>>foreachNumin[0,1,2]:...printeachNum>>>foreachNuminrange(3):...printeachNum>>>mystr='abc'>>>forcinmystr:...printcrange()函数还经常和len()函数一起用于字符串索引1.15元组TuplePython的元组与列表类似,不同之处在于元组的元素不能修改。也可进行分片和连接操作.元组使用小括号,列表使用方括号。>>>aTuple=('et',77,99.9)>>>aTuple('et',77,99.9)1.15.1访问元组>>>aTuple[2]991.15.2修改元组>>>aTuple[1]=5#真的不能修改呀报错啦>>>tup2=(1,2,3,4,5,6,7)>>>print"tup2[1:5]:",tup2[1:5]>>>tup2[1:5]:(2,3,4,5)>>>tup3=tup2+aTuple;>>>printtup3(1,2,3,4,5,6,7,'et',77,99.9)1.15.3删除元素元组中的元素值是不允许删除的,但我们可以使用del语句来删除整个元组1.15.4元组运算符与字符串一样,元组之间可以使用+号和*号进行运算。这就意味着他们可以组合和复制,运算后会生成一个新的元组。Python表达式结果描述len((1,2,3))3计算元素个数(1,2,3)+(4,5,6)(1,2,3,4,5,6)连接['Hi!']*4['Hi!','Hi!','Hi!','Hi!']复制3in(1,2,3)True元素是否存在forxin(1,2,3):printx,123迭代1.15.5元组索引,截取因为元组也是一个序列,所以我们可以访问元组中的指定位置的元素,也可以截取索引中的一段元素.L=('spam','Spam','SPAM!')Python表达式结果描述L[2]'SPAM!'读取第三个元素L[-2]'Spam'反向读取;读取倒数第二个元素L[1:]('Spam','SPAM!')截取元素1.15.6无关闭分隔符任意无符号的对象,以逗号隔开,默认为元组,如下实例:print'abc',-4.24e93,18+6.6j,'xyz';x,y=1,2;print"Valueofx,y:",x,y;以上实例允许结果:abc-4.24e+93(18+6.6j)xyzValueofx,y:121.15.7元组内置函数Python元组包含了以下内置函数序号方法及描述1cmp(tuple1,tuple2)比较两个元组元素。2len(tuple)计算元组元素个数。3max(tuple)返回元组中元素最大值。4min(tuple)返回元组中元素最小值。5tuple(seq)将列表转换为元组。1.15.8多维元祖访问的示例>>>tuple1=[(2,3),(4,5)]>>>tuple1[0](2,3)>>>tuple1[0][0]2>>>tuple1[0][2]Traceback(mostrecentcalllast):File"",line1,inIndexError:tupleindexoutofrange>>>tuple1[0][1]3>>>tuple1[2][2]Traceback(mostrecentcalllast):File"",line1,inIndexError:listindexoutofrange>>>tuple2=tuple1+[(3)]>>>tuple2[(2,3),(4,5),3]>>>tuple2[2]3>>>tuple2[2][0]Traceback(mostrecentcalllast):File"",line1,inTypeError:'int'objectisnotsubscriptable1.16字典Dictionary字典是python中的映射数据类型,,由键值(key-value)构成,类似于关联数组或哈希表.key一般以数字和字符串居多,值则可以是任意类型的python对象,如其他容器模型。字典元素用大括号{}包括.比如:>>>dict={'Alice':'2341','Beth':'9102','Cecil':'3258'}>>>aDict={'host':'noname'}每个键与值用冒号隔开(:),每对用逗号分割,整体放在花括号中({})。键key必须独一无二,但值则不必。值value可以取任何数据类型,但必须是不可变的1.16.1访问字典里的值>>>aDict['host']'noname'>>>forkeyinaDict...printkey,aDict[key]...hostnonameport80>>>aDict.keys()['host','port']>>>aDict.values()1.16.2修改字典向字典添加新内容的方法是增加新的键/值对,修改或删除已有键/值对.>>>aDict['port']=80#如果有portkey,值将会被更新否则会被新建一个portkey>>>aDict{'host':'noname','port':80}1.16.3删除字典元素能删单一的元素也能清空字典,清空只需一项操作.显示删除一个字典用del命令dict={'Name':'Zara','Age':7,'Class':'First'};deldict['Name'];#删除键是'Name'的条目dict.clear();#清空词典所有条目deldict;#删除词典1.16.4字典键(key)的特性字典值可以没有限制地取任何python对象,既可以是标准的对象,也可以是用户定义的,但键不行。两个重要的点需要记住:1)不允许同一个键出现两次。创建时如果同一个键被赋值两次,后一个值会被记住>>>dict={'Name':'Zara','Age':7,'Name':'Manni'};>>>print"dict['Name']:",dict['Name'];>>>dict['Name']:Manni2)键必须不可变,所以可以用数,字符串或元组充当,所以用列表就不行>>>dict={['Name']:'Zara','Age':7};>>>print"dict['Name']:",dict['Name'];raceback(mostrecentcalllast):File"test.py",line3,in>>>dict={['Name']:'Zara','Age':7};TypeError:listobjectsareunhashable1.16.5字典内置函数&方法Python字典包含了以下内置函数:序号函数及描述1cmp(dict1,dict2)比较两个字典元素。2len(dict)计算字典元素个数,即键的总数。3str(dict)输出字典可打印的字符串表示。4type(variable)返回输入的变量类型,如果变量是字典就返回字典类型。Python字典包含了以下内置函数:序号函数及描述1radiansdict.clear()删除字典内所有元素2radiansdict.copy()返回一个字典的浅复制3radiansdict.fromkeys()创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值4radiansdict.get(key,default=None)返回指定键的值,如果值不在字典中返回default值5radiansdict.has_key(key)如果键在字典dict里返回true,否则返回false6radiansdict.items()以列表返回可遍历的(键,值)元组数组7radiansdict.keys()以列表返回一个字典所有的键8radiansdict.setdefault(key,default=None)和get()类似,但如果键不已经存在于字典中,将会添加键并将值设为default9radiansdict.update(dict2)把字典dict2的键/值对更新到dict里10radiansdict.values()以列表返回字典中的所有值printdict['one']#输出键为'one'的值printdict[2]#输出键为2的值printtinydict#输出完整的字典printtinydict.keys()#输出所有键printtinydict.values()#输出所有值1.17Python数字类型转换int(x[,base])将x转换为一个整数long(x[,base])将x转换为一个长整数float(x)将x转换到一个浮点数complex(real[,imag])创建一个复数str(x)将对象x转换为字符串repr(x)将对象x转换为表达式字符串eval(str)用来计算在字符串中的有效Python表达式,并返回一个对象tuple(s)将序列s转换为一个元组list(s)将序列s转换为一个列表chr(x)将一个整数转换为一个字符unichr(x)将一个整数转换为Unicode字符ord(x)将一个字符转换为它的整数值hex(x)将一个整数转换为一个十六进制字符串oct(x)将一个整数转换为一个八进制字符串1.18Python数学函数函数返回值(描述)abs(x)返回数字的绝对值,如abs(-10)返回10ceil(x)返回数字的上入整数,如math.ceil(4.1)返回5cmp(x,y)如果xy返回1exp(x)返回e的x次幂(ex),如math.exp(1)返回2.718281828459045fabs(x)返回数字的绝对值,如math.fabs(-10)返回10.0floor(x)返回数字的下舍整数,如math.floor(4.9)返回4log(x)如math.log(math.e)返回1.0,math.log(100,10)返回2.0log10(x)返回以10为基数的x的对数,如math.log10(100)返回2.0max(x1,x2,...)返回给定参数的最大值,参数可以为序列。min(x1,x2,...)返回给定参数的最小值,参数可以为序列。modf(x)返回x的整数部分与小数部分,两部分的数值符号与x相同,整数部分以浮点型表示。pow(x,y)x**y运算后的值。round(x[,n])返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。sqrt(x)返回数字x的平方根,数字可以为负数,返回类型为实数,如math.sqrt(4)返回2+0j1.19Python随机数函数随机数可以用于数学,游戏,安全等领域中,还经常被嵌入到算法中,用以提高算法效率,并提高程序的安全性。函数描述choice(seq)从序列的元素中随机挑选一个元素,比如random.choice(range(10)),从0到9中随机挑选一个整数。randrange([start,]stop[,step])从指定范围内,按指定基数递增的集合中获取一个随机数,基数缺省值为1random()随机生成下一个实数,它在[0,1)范围内。seed([x])改变随机数生成器的种子seed。如果你不了解其原理,你不必特别去设定seed,Python会帮你选择seed。shuffle(lst)将序列的所有元素随机排序uniform(x,y)随机生成下一个实数,它在[x,y]范围内。2.字符串处理与特殊函数用引号括起来的字符集合称之为字符串.引号可以是一对单引号,双引号,三引号(单/双).备注:python中三引号可以将复杂的字符串进行复制:python三引号允许一个字符串跨多行,字符串中可以包含换行符、制表符以及其他特殊字符。三引号的语法是一对连续的单引号或者双引号(通常都是成对的用)。创建字符串很简单,只要为变量分配一个值即可。例如:var1='HelloWorld!'var2="PythonProgramming"var3='''hellochuanzhiboke'''var4="""hellochuanzhiboke"""但是如果需要输出Hello“dear”怎么办呢?print"hello\"dear\""#利用\的转义意义print'''hello"dear"'''2.1Python访问字符串中的值Python不支持单字符类型,单字符也在Python也是作为一个字符串使用。Python访问子字符串,可以使用方括号来截取字符串——即分片操作var1='HelloWorld!'var2="PythonProgramming"print"var1[0]:",var1[0]print"var2[1:5]:",var2[1:5]以上实例执行结果:var1[0]:Hvar2[1:5]:ytho2.2Python字符串更新你可以对已存在的字符串进行修改,并赋值给另一个变量.var1='HelloWorld!'print"Updatedmystr:-",var1[:6]+'Python'Updatedmystr:-HelloPython2.3Python字符串运算符下表实例变量a值为字符串”Hello”,b变量值为”Python”:操作符描述实例+字符串连接a+b输出结果:HelloPython*重复输出字符串a*2输出结果:HelloHello[]通过索引获取字符a[1]输出结果e[:]截取字符串中的一部分a[1:4]输出结果ellin成员运算符如果字符串中包含给定的字符返回Truenotin成员运算符如果字符串中不包含给定的字符返回Truer/R原始字符串字符串直接按照字面的意思来使用,没有转义或不能打印的字符原始字符串除在字符串的第一个引号前加上字母”r”(可以大小写)以外,与普通字符串有着几乎完全相同的语法。printr'hello\n'2.4Python字符串格式化Python支持格式化字符串的输出。在Python中,字符串格式化使用与C中sprintf函数一样的语法。print"Mynameis%sandweightis%dkg!"%('Zara',21)2.5字符串各种函数以下start和end可以缺省参数mystr='helloworlditcastanditcastcpp'检测str是否包含在mystr中,如果是返回开始的索引值,否则返回-1mystr.find(str,start=0,end=len(mystr))跟find()方法一样,只不过如果str不在mystr中会报一个异常.mystr.index(str,start=0,end=len(mystr))返回str在start和end之间在mystr里面出现的次数mystr.count(str,start=0,end=len(mystr))以encoding指定的编码格式解码mystr,如果出错默认报一个ValueError的异常,除非errors指定的是‘ignore’或者’replace’mystr.decode(encoding='UTF-8',errors='strict')以encoding指定的编码格式编码mystr,如果出错默认报一个ValueError的异常,除非errors指定的是’ignore’或者’replace’mystr.encode(encoding='UTF-8',errors='strict')把mystr中的str1替换成str2,如果count指定,则替换不超过count次.mystr.replace(str1,str2,mystr.count(str1))以str为分隔符切片mystr,如果maxsplit有指定值,则仅分隔maxsplit个子字符串mystr.split(str="",2)把字符串的第一个字符大写mystr.capitalize()返回一个原字符串居中,并使用空格填充至长度width的新字符串mystr.center(width)检查字符串(start,end)是否以obj结束,如果是返回True,否则返回False.mystr.endswith(obj,0,len(mystr))检查字符串是否是以obj开头,是则返回True,否则返回Falsemystr.startswith()把字符串mystr中的tab符号转为空格,默认的空格数tabsize是8.mystr.expandtabs(tabsize=8)如果mystr至少有一个数字并且所有字符都是字母或数字则返回True,否则返回Falsemystr.isalnum()如果mystr至少有一个字符并且所有字符都是字母(不含数字和空格)则返回True,否则返回Falsemystr.isalpha()如果mystr只包含数字则返回True否则返回False.mystr.isdigit()如果mystr中只包含空格,则返回True,否则返回False.mystr.isspace()如果mystr是标题化的(见title())则返回True,否则返回Falsemystr.istitle()如果mystr中包含至少一个区分大小写的字符并且所有这些(区分大小写的)字符都是大写,则返回True,否则返回Falsemystr.isupper()转换mystr中所有大写字符为小写.mystr.lower()转换mystr中的小写字母为大写mystr.upper()mystr中每个字符后面插入str,构造出一个新的字符串mystr.join(str)返回一个原字符串左对齐,并使用空格填充至长度width的新字符串mystr.ljust(width)返回一个原字符串右对齐,并使用空格填充至长度width的新字符串mystr.rjust(width)截掉mystr左边的空格mystr.lstrip()删除mystr字符串末尾的空格.mystr.rstrip()类似于find()函数,不过是从右边开始查找.mystr.rfind(str,start=0,end=len(mystr))类似于index(),不过是从右边开始.mystr.rindex(str,start=0,end=len(mystr))把mystr以str分割成三部分,str前,str和str后mystr.partition(str)类似于partition()函数,不过是从右边开始.mystr.rpartition(str)返回长度为width的字符串,原字符串mystr右对齐,前面填充0mystr.zfill(width)3时间和日期Python程序能用很多方式处理日期和时间。转换日期格式是一个常见的例行琐事。Python有一个timeandcalendar模组可以帮忙.3.1什么是Tick?时间间隔是以秒为单位的浮点小数。每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。Python附带的受欢迎的time模块下有很多函数可以转换常见日期格式。如函数time.time()用ticks计时单位返回从12:00am,January1,1970(epoch)开始的记录的当前操作系统时间.>>>ticks=time.time()print"Numberoftickssince12:00am,January1,1970:",ticksNumberoftickssince12:00am,January1,1970:7186862.733993.2什么是时间元组序号属性值0tm_year20081tm_mon1到122tm_mday1到313tm_hour0到234tm_min0到595tm_sec0到61(60或61是闰秒)6tm_wday0到6(0是周一)7tm_yday1到366(儒略历)8tm_isdst-1,0,1,-1是决定是否为夏令时的旗帜3.3获取当前时间从返回浮点数的时间辍方式向时间元组转换,只要将浮点数传递给如localtime之类的函数。>>>importtime;>>>localtime=time.localtime(time.time())>>>print"Localcurrenttime:",localtimeLocalcurrenttime:time.struct_time(tm_year=2013,tm_mon=7,tm_mday=17,tm_hour=21,tm_min=26,tm_sec=3,tm_wday=2,tm_yday=198,tm_isdst=0)3.4获取格式化的时间你可以根据需求选取各种格式,但是最简单的获取可读的时间模式的函数是asctime():localtime=time.asctime(time.localtime(time.time()))print"Localcurrenttime:",localtimeLocalcurrenttime:TueJan1310:17:0920093.5获取某月日历>>>cal=calendar.month(2008,1)>>>print"Hereisthecalendar:">>>printcal;Hereisthecalendar:January2008MoTuWeThFrSaSu123456789101112131415161718192021222324252627282930313.6Time模块的内置函数1time.asctime([tupletime])接受时间元组并返回一个可读的形式为"TueDec1118:07:142008"(2008年12月11日周二18时07分14秒)的24个字符的字符串。2time.clock()用以浮点数计算的秒数返回当前的CPU时间。用来衡量不同程序的耗时,比time.time()更有用。3time.sleep(secs)推迟调用线程的运行,secs指秒数。4time.time()返回当前时间的时间戳(1970纪元后经过的浮点秒数)Time模块包含了以下2个非常重要的属性:序号属性及描述1time.timezone属性time.timezone是当地时区(未启动夏令时)距离格林威治的偏移秒数(>0,美洲;<=0大部分欧洲,亚洲,非洲)。2time.tzname属性time.tzname包含一对根据情况的不同而不同的字符串,分别是带夏令时的本地时区名称,和不带的。3.7日历(Calendar)模块此模块的函数都是日历相关的,例如打印某月的字符月历。星期一是默认的每周第一天,星期天是默认的最后一天。更改设置需调用calendar.setfirstweekday()函数。模块包含了以下内置函数:序号函数描述1calendar.calendar(year,w=2,l=1,c=6)返回一个多行字符串格式的year年年历,3个月一行,间隔距离为c。每日宽度间隔为w字符。每行长度为21*W+18+2*C。l是每星期行数。2calendar.firstweekday()返回当前每周起始日期的设置。默认情况下,首次载入caendar模块时返回0,即星期一。3calendar.isleap(year)是闰年返回True,否则为false。4calendar.leapdays(y1,y2)返回在Y1,Y2两年之间的闰年总数。5calendar.month(year,month,w=2,l=1)返回一个多行字符串格式的year年month月日历,两行标题,一周一行。每日宽度间隔为w字符。每行的长度为7*w+6。l是每星期的行数。6calendar.monthcalendar(year,month)返回一个整数的单层嵌套列表。每个子列表装载代表一个星期的整数。Year年month月外的日期都设为0;范围内的日子都由该月第几日表示,从1开始。7calendar.monthrange(year,month)返回两个整数。第一个是该月的星期几的日期码,第二个是该月的日期码。日从0(星期一)到6(星期日);月从1到12。8calendar.prcal(year,w=2,l=1,c=6)相当于printcalendar.calendar(year,w,l,c).9calendar.prmonth(year,month,w=2,l=1)相当于printcalendar.calendar(year,w,l,c)。10calendar.setfirstweekday(weekday)设置每周的起始日期码。0(星期一)到6(星期日)。11calendar.timegm(tupletime)和time.gmtime相反:接受一个时间元组形式,返回该时刻的时间辍(1970纪元后经过的浮点秒数)。12calendar.weekday(year,month,day)返回给定日期的日期码。0(星期一)到6(星期日)。月份为1(一月)到12(12月)。4函数高级4.1定义一个函数你可以定义一个由自己想要功能的函数,以下是简单的规则:函数代码块以def关键词开头,后接函数标识符名称和圆括号()。任何传入参数和自变量必须放在圆括号中间。圆括号之间可以用于定义参数。函数的第一行语句可以选择性地使用文档字符串—用于存放函数说明。函数内容以冒号起始,并且缩进。Return[expression]结束函数,选择性地返回一个值给调用方。不带表达式的return相当于返回None语法deffunctionname(parameters):"函数_文档字符串"function_suitereturn[expression]默认情况下,参数值和参数名称是按函数声明中定义的的顺序匹配起来的。实例以下为一个简单的Python函数,它将一个字符串作为传入参数,再打印到标准显示设备上。defprintme(str):"打印传入的字符串到标准显示设备上"printstrreturn4.2函数调用定义一个函数只给了函数一个名称,指定了函数里包含的参数,和代码块结构。这个函数的基本结构完成以后,你可以通过另一个函数调用执行,也可以直接从Python提示符执行。#coding=utf-8#Functiondefinitionisheredefprintme(str):"打印任何传入的字符串"printstr;return;#Nowyoucancallprintmefunctionprintme("我要调用用户自定义函数!");printme("再次调用同一函数");以上实例输出结果:我要调用用户自定义函数!再次调用同一函数4.3按值传递参数和按引用传递参数1.按值传递,单个变量2.按引用传递如果你在函数里修改了参数,那么在调用这个函数的函数里,原始的参数也被改变了。例如:#可写函数说明defchangeme(mylist):"修改传入的列表"mylist.append([1,2,3,4]);print"函数内取值:",mylistreturn#调用changeme函数mylist=[10,20,30];changeme(mylist);print"函数外取值:",mylist传入函数的和在末尾添加新内容的对象用的是同一个引用。故输出结果如下:函数内取值:[10,20,30,[1,2,3,4]]函数外取值:[10,20,30,[1,2,3,4]]4.4参数以下是调用函数时可使用的正式参数类型:必备参数命名参数缺省参数不定长参数必备参数必备参数须以正确的顺序传入函数。调用时的数量必须和声明时的一样。调用printme()函数,你必须传入一个参数,不然会出现语法错误命名参数命名参数和函数调用关系紧密,调用方用参数的命名确定传入的参数值。你可以跳过不传的参数或者乱序传参,因为Python解释器能够用参数名匹配参数值。用命名参数调用printme()函数:defprintme(str,name):"打印任何传入的字符串"printstr;printname;return;#调用printme函数printme(name="test",str="Mystring");缺省参数调用函数时,缺省参数的值如果没有传入,则被认为是默认值。下例会打印默认的age,如果age没有被传入:#可写函数说明defprintinfo(name,age=35):"打印任何传入的字符串"print"Name:",name;print"Age",age;return;#调用printinfo函数printinfo(age=50,name="miki");printi
本文档为【《Python编程基础》】,请使用软件OFFICE或WPS软件打开。作品中的文字与图均可以修改和编辑, 图片更改请在作品中右键图片并更换,文字修改请直接点击文字进行修改,也可以新增和删除文档中的内容。
该文档来自用户分享,如有侵权行为请发邮件ishare@vip.sina.com联系网站客服,我们会及时删除。
[版权声明] 本站所有资料为用户分享产生,若发现您的权利被侵害,请联系客服邮件isharekefu@iask.cn,我们尽快处理。
本作品所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用。
网站提供的党政主题相关内容(国旗、国徽、党徽..)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
下载需要: ¥12.0 已有0 人下载
最新资料
资料动态
专题动态
个人认证用户
文库人生
多年老会计,接触了很多财务、会计、金融、投资、营销等方面的知识,自己也提升了很多,目前正在准备考注册会计师!
格式:pdf
大小:15MB
软件:PDF阅读器
页数:0
分类:教育学
上传时间:2021-05-14
浏览量:122