版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1你好
#打开新窗口,输入:
#!/usr/bin/python
#coding:utf8
sl=input("Inputyourname:")
print("你好,%s"%si)
知识点:
*input(”某字符串”)函数:显示”某字符串“,并等待用户输入.
*print。函数:如何打印.
*如何应用中文
*如何用多行注释
HI
2字符串和数字
但有趣的是,在javascript里我们会理想当然的将字符串和数字连接,因为是
动态语言嘛.但在Python里有点诡异,如下:
#!/usr/bin/python
a=2
b="test"
c=a+b
运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数进
行转换
#!/usr/bin/python
#运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数
进行转换
a=2
b="test"
c=str(a)+b
d="llH"
e=a+int(d)
#Howtoprintmultiplyvalues
print("cis%s,eis%i"%(c,e))
111
知识点:
*用int和str函数将字符串和数字进行转换
*打印以#开头,而不是习惯的//
*打印多个参数的方式
3列表
#!/usr/bin/python
#coding:utf8
#列表类似Javascript的数组,方便易用
#定义元组
word=['a,,,bVc','d';e','f7g']
#如何通过索引访问元组里的元素
a=word[2]
print("ais:"+a)
b=word[l:3]
print("bis:")
print(b)#index1and2elementsofword.
c=word[:2]
print("cis:")
print(c)#index0and1elementsofword.
d=word[0:]
print("dis:")
print(d)#Allelementsofword.
#元组可以合并
e=word[:21+word[2:]
print("eis:")
print(e)#Allelementsofword.
f=word[-l]
print("fis:")
print(f)#Thelastelementsofword.
g=word[-4:-2]
print("gis:")
print(g)#index3and4elementsofword.
h=word[-2:]
print("his:")
print(h)#Thelasttwoelements.
i=word[:-2]
print("iis:")
print(i)#Everythingexceptthelasttwocharacters
l=len(word)
print("Lengthofwordis:"+str(l))
print("Addsnewelement")
word.append('h')
print(word)
#删除元素
delword10]
print(word)
delword|1:3]
#!/usr/bin/python
word="abcdefg"
a=word[2)
print("ais:"+a)
b=word[l:3]
print("bis:"+b)#index1and2elementsofword.
c=word[:2]
print("cis:"+c)#index0and1elementsofword.
d=word[0:]
print("dis:"+d)#Allelementsofword.
e=word[:2]+word[2:]
print("eis:"+e)#Allelementsofword.
f=word[-l]
print("fis:"+f)#Thelastelementsofword.
g=word[-4:-2]
print("gis:"+g)#index3and4elementsofword.
h=word[-2:]
print("his:"+h)#Thelasttwoelements.
i=word[:-2]
print("iis:"+i)#Everythingexceptthelasttwocharacters
l=len(word)
print("Lengthofwordis:"+str(l))
中文和英文的字符串长度是否一样?
#!/usr/bin/python
#coding:utf8
s=input(”输入你的中文名,按回车继续");
print("你的名字是:"+s)
l=len(s)
print("你中文名字的长度是:“十str(l))
知识点:
•类似Java,在python3里所有字符串都是unicode,所以长度一致.
6条件和循环语句
#!/usr/bin/python
#条件和循环语句
x=int(input("Pleaseenteraninteger:"))
ifx<0:
x=0
print("Negativechangedtozero")
elifx==0:
print("Zero")
else:
print("More")
#LoopsList
a=['cat','window','defenestrate']
forxina:
print(x,len(x))
#知识点:
#*条件和循环语句
#*如何得到控制台输入
7函数
#!/usr/bin/python
#-*-coding:utf8
defsum(a,b):
returna+b
func=sum
r=func(5,6)
print(r)
#提供默认值
defadd(a,b=2):
returna+b
r=add(l)
print(r)
r=add(l,5)
print(r)
一个好用的函数
#!/usr/bin/python
#-*-coding:utf8-*-
#Therangedfunction
a=range(1,W)
foriina:
print(i)
a=range(-2,-l1,-3)#The3rdparameterstandsforstep
foriina:
print(i)
知识点:
•Pytho.不用{}来控制程序结构,他强迫你用缩进来写程序,使代码清晰.
•定义函数方便简单
•方便好用的range函数
8异常处理
#!/usr/bin/python
s=input("Inputyourage:")
ifs=="n:
raiseExceptionf'Inputmustnobeempty.")
try:
i=int(s)
exceptExceptionaserr:
print(err)
finally:#Cleanupaction
print("Goodbye!")
9文件处理
对比Java,python的文本处理再次让人感动
#!/usr/bin/python
spath="D:/download/baa.txt"
f=open(spath,"w")#Openswriting.Createsthis'texist.
f.writef'Firstline
f.writelines("Firstline2.")
f.closed
f=open(spath,"r")#Opensreading
forlineinf:
print("每一行的数据是:%s"%Hne)
f.closed
知识点:
•open的参数:r表示读,w写数据,在写之前先清空文件内容,a打开并附
加内容.
•打开文件之后记得关闭
10类和继承
classBase:
def―init_(self):
self.data=[]
defadd(self,x):
self.data.append(x)
defaddtwice(self,x):
self.add(x)
self.add(x)
#ChildextendsBase
classChild(Base):
defplus(self,a,b):
returna+b
oChild=Child()
oChilci.adci("strr,)
print(oChild.data)
print(oChild.plus(2,3)i
111
知识点:
*self:类似Java的this参数
11包机制
每一个py文件称为一个module,module之间可以互相导入.请参看以卜.例
子:
#a.py
defadd_func(a,b):
returna+b
#b.py
fromaimportadd_func#Alsocanbe:importa
print("Importadd_funcfrommodulea")
print("Resultof1plus2is:")
print(add_func(l,2))#Ifusing"importa",thenhereshouldbe"a
.add_func"
module可以定义在包里面.Python定义包的方式稍微有点古怪,假设我们有
一个parent文件夹,该文件夹有一个child子文件夹.child中有一个
modul.a.p..如何让Python知道这个文件层次结构?很简单,每个目录都放一
个名为的文件.该文件内容可以为空.这个层次结构如下所示:
parent
-_init_.py
—child
-__init_.py
-a.py
b.py
那么Python如何找到我们定义的module?在标准包sys中,path属性记录
了Python的包路径.你可以将之打印出来:
importsys
print(sys.path)
通常我们可以将module的包路径放到环境变量PYTHONPATH中,该环境
变量会自动添加到sys.path属性.另一种方便的方法是编程中直接指定我们
的module路径到sys.path中:
importsys
importos
sys.path.append(os.getcwd()+'\\parent\\child')
print(sys.path)
fromaimportadd_func
print(sys.path)
print("Importadd_funcfrommodulea")
print("Resultof1plus2is:")
print(add_func(l,2))
知识点:
•如何定义模块和包
•如何将模块路径添加到系统路径,以便python找至IJ它们
•如何得到当前路径
12内建帮助手册
对比C++,Java的突出进步是内建Javadoc机制,程序员可以通过阅读
Javadoc了解函数用法.Python也内建了一些方便函数以便程序员参考.
•dir函数.查看某个类/对象的方法.如果有某个方法想不起来,请敲dir.
在idle里,试.dirQist.
help函数.详细的类/对象介绍.在idle里.试.help(list)
1遍历文件夹和文件
impor.os
impor.os.path
.os,os.path里包含大多数文件访问的函数,所以要先引入它们.
.请按照你的实际情况修改这个路.
rootdir....d:/downloa..
fo.parent,dirnames,.i.os.walk(rootdir):
..case1.
.fo.dirname.i.dirnames:
.prin...parentis....parent)
.prin...dirnameis....dirname)
..case.
.fo..i.:
.prin...parentis....parent)
.prin...withfullpath....os.path.join(parent,))
”.知识点:
*os.walk返回一个三元组.其中dirnames是所有文件夹名字(不包含路
径),是所有文件的名字(不包含路径).parent表示父目录.
*easel演示了如何遍历所有目录.
*case2演示了如何遍历所有文件.
*os.path.joinfdirname,):将形如"/a/b/c"和"d.java”变成
/a/b/c/d.java".
2分割路径和文件名
impor.os.path
.常用函数有三种:分隔路径,找出文件名.找出盘符(windows系统),找出文件
的扩展名.
.根据你机器的实际情况修改下面参数.
spat…D:/download/repository.7..
.case1.
p,..os.path.split(spath);
prin...diris...p)
prin......f)
.case2.
drv,lef..os.path.splitdrive(spath);
prin...driveris...drv)
prin...leftis...left)
.case3.
f,ex..os.path.splitext(spath);
prin...fis...f)
prin...extis...ext)
知识点:这三个函数都返回二元组.
*easel分隔目录和文件名
*case2分隔盘符和文件名
*case3分隔文件和扩展名
总结:5个函数
・os.walk(spath)
•os.path.split(spath)
•os.path.splitdrive(spath)
•os.path.splitext(spath)
•os.path.join(path1,path2)
3复制文件
impor.shutil
impor.os
impor.os.path
sr...d:\\download\\test\\m..
ds...d:\\download\\test\\m..
dst...d:/download/test/测试文件夹.tx..
dir..os.path.dirname(src)
prin...dirl%...dirl)
i.(os.path.exists(src.=.False):
os.makedirs(dirl)
f..open(src....)
tl.write..linea\..)
fl.write..lineb\..)
fl.closef)
shutil.copy,dst)
shutil.copy,dst2)
f..open(dst....)
fo.line.1.f2:
.prin.(line)
f2.closef)
.测试复制文件夹.
tr.:
srcDi...d:/download/tes..
dstDi...d:/download/test..
..如果dstDir已经存在,那么shutil.copytree方法会报错.
..这也意味着你不能直接用d:作为目标路径.
shutil.copytree(srcDir,dstDir)
excep.Exceptionaserr:
.prin.(err)
H
*
知识点:
*shutil.copyfile:如何复制文件
*os.path.exists:如何判断文件夹是否存在
*shutil.copytree:如何复制目录树
H
总结:4个函数
•os.path.dimame(path)
•os.path.exists(path)
•shutil.copy,dst)
•shutil.copytree(srcDir,dstDir)
4实战:文件备份小程序
importos
importshutil
importdatetime
作用:将目录备份到其他路径。
实际效果:
假设给定目录7media/data/programmer/project/python",
备份路径"/home/diegoyun/backup/",
则会将python目录备份到备份路径下,形如:
/home/diegoyun/backup/yyyymmddHHMMSS/python/xxx/yyy/z
zz..
用法:更改这两个参数.
backdir:备份目的地.
copydirs:想要备份的文件夹.
111
defmainLogic():
#adddirsyouwanttocopy
backdir="d:\\test"
print(backdir)
copydirs=[
copydirs.append("d:\\temp");
#copydirs.appended:\\test");
print("Copyingfiles===================")
start=datetime.datetime.now()
#genadatafolderforbackup
backdir=os.path.join(backdir,start.strftime("%Y-%m-%d"))
#printf'backdiris:"+backdir)
kc=0
fordincopydirs:
kc=kc+copyFiles(d,backdir)
end=datetime.datetime.now()
print(11Finished!===================*')
print("Totalfiles:"+str(kc))
print("Elapsedtime:"+str((end-start).seconds)+
"seconds")
defcopyFiles(copydir,backdir):
prefix=getPathPrefix(copydir)
#printf'prefix运厂+prefix)
i=0
fordirpath,dirnames,inos.walk(copydir):
fornamein:
oldpath=os.path.join(dirpath,name)
newpath=omitPrefix(dirpath,prefix)
print("backdiris:"十backdir)
new
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 云南省楚雄州双柏县重点名校2026年初三第一次模拟考试试题英语试题含解析
- 浙江名校2026届初三下学期九月月考语文试题含解析
- 江苏省镇江市丹徒区市级名校2025-2026学年初三模拟卷(一)英语试题试卷含解析
- 山西省大同市矿区重点名校2026届初三下第11次大练习数学试题含解析
- 黑龙江省佳木斯市同江市场直中学2026届初三5月摸底联考英语试题含解析
- 托盘采购合同
- 2026年行纪销售合同(1篇)
- 光缆专线施工方案
- 2026年智能投影仪市场增长瓶颈与突围策略
- 教案设计大赛
- T-CCSAS014-2022《化工企业承包商安全管理指南》
- 电厂员工三级安全培训(完美版)课件
- 按摩理疗加盟合同范本
- 光电技术与应用
- 高中数学必修一全套课件
- 2022-2023学年贺州市富川瑶族自治县小学六年级第二学期小升初数学试卷含答案
- 2023年武汉市医疗救治中心紧缺医学专业人才招聘考试历年高频考点试题含答案解析
- SC-T 3503-2022 多烯鱼油制品
- TCSAE 178-2021 电动汽车高压连接器技术条件
- 远景变桨控制系统介绍及典型故障案例讲解
- 健康管理师职业资格三级培训课件-第三章-健康指导
评论
0/150
提交评论