python入门实例
100个python算法实例

100个python算法实例Python算法是指用Python编写的解决问题或处理数据的方法和步骤。
Python是一种通用的、高级的编程语言,具有简单易学、可读性强、代码简洁等特点,非常适合用于编写各种算法。
下面将给出100个Python算法实例的相关参考内容,不包含任何链接。
1. 阶乘算法阶乘算法用于计算一个正整数的阶乘,即n! = n * (n-1) * ... * 2 * 1。
可以使用递归或循环的方式实现,以下是一个示例代码:```pythondef factorial(n):if n == 0:return 1else:return n * factorial(n-1)```2. 斐波那契数列算法斐波那契数列由0和1开始,后面的每一项都是前两项的和。
可以使用递归或循环的方式实现,以下是一个示例代码:```pythondef fibonacci(n):if n <= 0:return 0elif n == 1:return 1else:return fibonacci(n-1) + fibonacci(n-2)```3. 冒泡排序算法冒泡排序是一种简单的排序算法,通过不断比较相邻的两个元素并交换位置,使得最大(或最小)的元素逐渐“冒泡”到最后(或最前)。
以下是一个示例代码:```pythondef bubble_sort(lst):n = len(lst)for i in range(n - 1):for j in range(n - 1 - i):if lst[j] > lst[j + 1]:lst[j], lst[j + 1] = lst[j + 1], lst[j]return lst```4. 快速排序算法快速排序是一种高效的排序算法,通过选择一个基准元素,将小于该基准的元素移到左侧,大于该基准的元素移到右侧,然后递归地对左右两个部分进行排序。
以下是一个示例代码:```pythondef quick_sort(lst):if len(lst) <= 1:return lstelse:pivot = lst[0]less = [x for x in lst[1:] if x <= pivot]greater = [x for x in lst[1:] if x > pivot]return quick_sort(less) + [pivot] + quick_sort(greater)```5. 二分查找算法二分查找算法是一种快速查找有序列表中特定元素位置的算法,通过不断将待查找范围缩小一半的方式进行查找。
Python——pygame入门实例

Python——pygame⼊门实例本⽂章是⼀篇学习笔记。
加⼊了⾃⼰的理解。
最终实现的是⼩球的⼀个移动pygame:就是⼀个制作游戏的模块,在Python中进⾏调⽤即可。
import pygame#导⼊pygame模块pygame.init()#初始化pygamescreen = pygame.display.set_mode((600,400))#设置窗⼝condition = True #创建游戏结束的条件while condition:#主循环for event in pygame.event.get():#添加检查事件if event.type == pygame.QUIT:#退出事件,当⿏标点击退出按钮时退出程序condition = False #更改游戏退出条件pygame.quit() #游戏退出上⾯代码主要实现:窗⼝化和退出事件。
import pygame #导⼊pygame模块import sys #导⼊sys模块pygame.init() #初始化pygamescreen = pygame.display.set_mode((600,400)) #设置窗⼝ball = pygame.image.load("./box.glf") #导⼊⼩球图⽚,图⽚的路径请⾃⾏修改。
ballrect = ball.get_rect() #通过get_rect()这个函数就可以获取图⽚的位置print(ballrect) #这⾥可以通过输出来看⼀下图⽚的所在位置seppn = [1,1] #x轴和y轴的位置clock=pygame.time.Clock() #设置时间,这⾥要注意的是Clock的⾸字母⼀定要⼤写while True: #主循环 clock.tick(100) #每秒执⾏100秒 for event in pygame.event.get(): #添加检查事件 if event.type == pygame.QUIT: #退出事件,当⿏标点击退出按钮时退出程序 sys.exit() ballrect = ballrect.move(seppn) if ballrect.left < 0 or ballrect.right > 600: #碰撞检查 speed[0] = -speed[0] #取反 if ballrect.top < 0 or ballrect.bottom > 400: speed[1] = -speed[1] #取反 screen。
python教学案例

python教学案例Python教学案例尊敬的读者,今天我要向您分享一些关于Python教学案例的内容。
作为一种简洁易学的编程语言,Python已经成为许多初学者和专业开发者的首选。
为了帮助您更好地理解和掌握Python编程,我将介绍几个有趣的教学案例,涵盖从基本语法到高级应用的不同方面,并提供我的观点和理解。
在介绍这些案例之前,我想强调以下几点。
通过实际的例子和应用,我们能更直观地理解Python的概念和使用方法。
这些案例通过学以致用的方式,帮助我们在实践中巩固所学的知识。
这些案例的难度逐渐递增,适合从初学者到有经验的开发者。
下面是我为您准备的Python教学案例:案例1:计算器这个案例旨在帮助初学者熟悉Python的基本语法和数学运算。
通过设计一个简易计算器程序,我们可以让学生了解Python的输入输出、变量、运算符等概念。
这个案例还可以扩展,加入其他功能如开根号、阶乘等,提供更多挑战。
案例2:猜数字游戏这个案例旨在通过一个简单的猜数字游戏,帮助学生理解Python的条件语句(if-else语句)。
通过引导学生编写一个程序来猜测一个随机生成的数字,我们可以让他们掌握如何使用if-else语句来做出决策,并提供不同的反馈。
案例3:文件处理这个案例旨在帮助学生学习Python的文件处理能力。
通过提供一个文本文件,要求学生编写一个程序来统计其中每个单词出现的次数,并输出最常出现的单词。
通过这个案例,学生可以学会文件的读写操作、字符串处理以及字典的使用。
案例4:Web爬虫这个案例是一个更高级的案例,旨在帮助学生学习Python在Web爬取数据方面的应用。
通过编写一个简单的爬虫程序,学生可以提取指定网站的数据,并将其存储到本地文件中。
通过这个案例,学生可以学习如何使用Python库如BeautifulSoup或Scrapy来解析网页,并获取所需的数据。
案例5:数据可视化这个案例旨在帮助学生学习Python在数据可视化方面的应用。
Python简单基础小程序的实例代码

Python简单基础⼩程序的实例代码1 九九乘法表1 2 3 4 5 6 7for i in range(9):#从0循环到8i +=1#等价于 i = i+1for j in range(i):#从0循环到ij +=1print(j,'*',i,'=',i*j,end =' ',sep='')# end默认在结尾输出换⾏,将它改成空格 sep 默认 j,'*',i,'=',i*j 各元素输出中间会有空格 print()#这⾥作⽤是输出换⾏符1 2 3 4 5 6 7 8i =1while i <=9:j =1while j <=i:print("%d*%d=%d"%(j,i,i*j),end=' ') # 格式化输出 j +=1i +=1print()2 登录程序登录程序,有三次输⼊账号、密码的机会,错误三次账号锁定1 2 3 4 5 6 7 8 9 10 11 12 13 14user ='hello world'paswd =123456username =input("请输⼊⽤户名:")password =input("请输⼊密码:")for i in range(3):if username ==user and int(password) ==paswd: #判断⽤户名和密码是否都匹配 print("欢迎您的到来")breakelif i < 2:username =input("请输⼊⽤户名:")password =input("请输⼊密码")elif i ==2:print("账户已锁定")break3,购物车程序功能:1,输⼊余额2,显⽰商品列表3,输⼊要购买的东西4,判断是否有能⼒购买5,是否继续6,输出已购买的商品和余额1234 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19shop_car =[]#⽤来存放购买的商品goods ={1:['⼿机',2500],2:['电脑',3500],3:['⾃⾏车',4500],4:['宝马',20000]}#商品列表while True:salary =input("你有多少钱:") # 输⼊有多少钱if salary.isdigit(): # 判断是否为整数salary =int(salary) # 将字符串转化为整数print("是否要买东西:")flag1 =input("Y N:")if flag1.upper() =='N': # 将字符串⼤写exit("欢迎下次光临") # 退出程序并输出“欢迎下次光临” elif flag1.upper() =='Y':break# 终⽌循环elif flag1.upper() =='Q':19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 elif flag1.upper() =='Q':exit("欢迎下次光临")elif salary.upper() =='Q':exit("欢迎下次光临")while True:print("淘宝".center(30,'-')) # 输出以-----淘宝------for i in goods: # 循环输出print(i,goods[i])print("淘宝".center(30, '-'))choice_good =input("请输⼊商品编码:")#接受⼀个字符串if choice_good.isdigit() :choice_good =int(choice_good)if choice_good >=1and choice_good <=4:if salary >=goods[choice_good][1]:shop_car.append(goods[choice_good][0]) # 给字典中添加元素 salary =salary -goods[choice_good][1]print("您购买的商品为:", goods[choice_good][0])print("余额为:", salary)print("是否继续:")contin =input("Y N")if contin.upper() =='N':breakelif contin.upper() =='Q':breakelse:print('余额不⾜')print("是否继续:")contin =input("Y N")if contin.upper() =='N':breakelif contin.upper() =='Q':breakelse:print("没有这个编号")continue# 暂停本次循环elif choice_good.upper() =="Q":breakelse:print("我看不懂。
python练手经典100例-Python入门练手100例

python练⼿经典100例-Python⼊门练⼿100例【Python练习实例001】有四个数字:1、2、3、4,能组成多少个互不相同且⽆重复数字的三位数?各是多少?【Python练习实例002】企业发放的奖⾦根据利润提成。
利润(I)低于或等于10万元时,奖⾦可提10%;利润⾼于10万元,低于或等于20万元时,10万的部分按10%提成,⾼于10万元的部分,可提成7.5%;20万到40万元(含)之间时,⾼于20万元的部分,可提成5%;40万元到60万元(含)之间时⾼于40万元的部分,可提成3%;60万元到100万元(含)之间时,⾼于60万元的部分,可提成1.5%,⾼于100万元时,超过100万元的部分按1%提成,从键盘输⼊当⽉利润(I),求应发放奖⾦总数?【Python练习实例003】⼀个正整数,它加上100后是⼀个完全平⽅数,再加上168⼜是⼀个完全平⽅数,请问该数是多少?【Python练习实例004】输⼊某年某⽉某⽇,判断这⼀天是这⼀年的第⼏天?【Python练习实例005】输⼊三个整数x, y, z,请把这三个数由⼩到⼤输出。
【Python练习实例007】将⼀个列表的数据复制到另⼀个列表中。
【Python练习实例010】暂停⼀秒输出,并格式化当前时间。
【Python练习实例011】古典问题:有⼀对兔⼦,从出⽣后第3个⽉起每个⽉都⽣⼀对兔⼦,⼩兔⼦长到第三个⽉后每个⽉⼜⽣⼀对兔⼦,假如兔⼦都不死,问每个⽉的兔⼦总数为多少?【Python练习实例012】判断101-200之间有多少个素数,并输出所有素数。
【Python练习实例013】打印出所有的"⽔仙花数”,所谓"⽔仙花数”是指⼀个三位数,其各位数字⽴⽅和等于该数本⾝。
例如:153是⼀个"⽔仙花数”,因为153=1³+5³+3³。
【Python练习实例014】将⼀个正整数分解质因数。
python由浅入深的实例 -回复

python由浅入深的实例-回复标题:Python由浅入深的实例解析Python,作为一种高级编程语言,以其简洁明了的语法和强大的功能深受广大程序员的喜爱。
本文将以“中括号[]”在Python中的使用为主题,通过一系列由浅入深的实例,逐步揭示其背后的原理和应用。
一、初识中括号[]——列表(List)在Python中,中括号[]常用于定义列表。
列表是一种有序的元素集合,可以包含任何类型的数据,如整数、浮点数、字符串、甚至其他列表等。
例如,我们可以创建一个包含三个元素的列表:pythonmy_list = [1, 'two', 3.0]在这个例子中,`my_list`就是一个列表,它的元素包括一个整数、一个字符串和一个浮点数。
二、操作列表1. 访问列表元素列表元素可以通过索引来访问,索引是从0开始的。
pythonprint(my_list[0]) # 输出:1print(my_list[1]) # 输出:'two'print(my_list[2]) # 输出:3.02. 更新列表元素我们可以通过索引来更新列表中的元素。
pythonmy_list[1] = 'TWO'print(my_list) # 输出:[1, 'TWO', 3.0]3. 列表的增删操作- 添加元素:使用`append()`方法在列表末尾添加元素,使用`insert()`方法在指定位置插入元素。
pythonmy_list.append('four')print(my_list) # 输出:[1, 'TWO', 3.0, 'four']my_list.insert(1, 'one')print(my_list) # 输出:[1, 'one', 'TWO', 3.0, 'four']- 删除元素:使用`remove()`方法删除指定元素,使用`pop()`方法删除指定索引的元素。
大一python入门例题100道

大一python入门例题100道Python作为一门简单易学的编程语言,受到了越来越多大一学生的喜爱。
为了帮助大家更好地掌握Python编程,我整理了100道入门例题,希望能够对大家的学习有所帮助。
1. 输出"Hello, World!"。
2. 计算1+2的结果。
3. 计算2的平方。
4. 计算5的阶乘。
5. 输入一个数字,判断它是否为偶数。
6. 输入一个年份,判断它是否为闰年。
7. 输入一个字符串,判断它是否为回文字符串。
8. 输入一个数字n,输出1到n之间的所有素数。
9. 输入一个字符串,统计其中的字母、数字和其他字符的个数。
10. 输入一个字符串,将其中的大写字母转换为小写字母。
11. 输入一个字符串,将其中的小写字母转换为大写字母。
12. 输入一个字符串,将其中的数字字符删除。
13. 输入一个字符串,将其中的空格字符删除。
14. 输入一个字符串,将其中的标点符号删除。
15. 输入一个字符串,将其中的所有字符按照ASCII码的顺序排序。
16. 输入一个字符串,将其中的所有字符按照出现的次数排序。
17. 输入一个字符串,将其中的所有字符按照字母表的顺序排序。
18. 输入一个字符串,将其中的所有字符按照逆序输出。
19. 输入一个字符串,将其中的所有单词按照长度排序。
20. 输入一个字符串,将其中的所有单词按照字母表的顺序排序。
21. 输入一个字符串,将其中的所有单词按照逆序输出。
22. 输入一个字符串,将其中的所有单词按照出现的次数排序。
23. 输入一个字符串,将其中的所有单词按照首字母的ASCII码排序。
24. 输入一个字符串,将其中的所有单词按照尾字母的ASCII码排序。
25. 输入一个字符串,将其中的所有单词按照首字母的逆序输出。
26. 输入一个字符串,将其中的所有单词按照尾字母的逆序输出。
27. 输入一个字符串,将其中的所有单词按照长度的逆序输出。
28. 输入一个字符串,将其中的所有单词按照出现的次数的逆序输出。
Python基本图形绘制实例

Python基本图形绘制实例⼀、使⽤turtle库,绘制⼀个如下图所⽰正⽅形。
import turtleturtle.pendown()turtle.pensize(5)for i in range(4):turtle.seth(90*i)turtle.forward(200)⼆、使⽤turtle库,绘制⼀个如下图所⽰六边形。
import turtleturtle.pendown()turtle.pensize(3)turtle.forward(100)turtle.seth(45)turtle.forward(100)turtle.seth(135)turtle.forward(100)turtle.seth(180)turtle.forward(100)turtle.seth(225)turtle.forward(100)turtle.seth(315)turtle.forward(100)三、使⽤turtle库进⾏创意绘画,主题不限制,代码⾏数100-200⾏左右。
import turtle as tt.pendown()t.pensize(3)for i in range(4):t.seth(90*i)if (i%2==0):t.fd(160)else:t.fd(90)t.penup()t.seth(225)t.fd(13)t.pendown()for i in range(4):t.seth(90*i)if (i%2==0):t.fd(180)else:t.fd(110)t.seth(0)t.fd(80)t.seth(270)t.fd(40)t.seth(0)t.fd(20)t.seth(90)t.fd(40)t.penup()t.fd(40)t.seth(180)t.fd(25)t.pendown()t.pencolor("blue") for j in range(15): for i in range(4): t.seth(90*i)t.fd(j)t.seth(0)t.fd(17)t.pencolor("yellow") for j in range(15): for i in range(4): t.seth(90*i)t.fd(j)t.seth(90)t.fd(17)t.pencolor("green") for j in range(15): for i in range(4): t.seth(90*i)t.fd(j)t.seth(180)t.fd(17)t.pencolor("red") for j in range(15): for i in range(4): t.seth(90*i)t.fd(j)t.penup()t.fd(85)t.pendown()t.pencolor("black") t.seth(180)t.fd(10)t.seth(270)t.fd(20)t.seth(0)t.fd(50)t.seth(90)t.fd(20)t.seth(180)t.fd(15)t.penup()t.fd(20)t.pendown()t.fd(5)t.penup()t.seth(270)t.fd(30)t.seth(180)t.fd(40)t.seth(270)t.pendown()t.fd(30)t.seth(0)t.fd(110)t.seth(90)t.fd(30) t.seth(180) t.fd(110)。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
#打开新窗口,输入:#! /usr/bin/python# -*- coding: utf8 -*-s1=input("Input your name:")print("你好,%s" % s1)'''知识点:* input("某字符串")函数:显示"某字符串",并等待用户输入.* print()函数:如何打印.* 如何应用中文* 如何用多行注释'''2 字符串和数字但有趣的是,在javascript里我们会理想当然的将字符串和数字连接,因为是动态语言嘛.但在Python里有点诡异,如下:#! /usr/bin/pythona=2b="test"c=a+b运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数进行转换#! /usr/bin/python#运行这行程序会出错,提示你字符串和数字不能连接,于是只好用内置函数进行转换a=2b="test"c=str(a)+bd="1111"e=a+int(d)#How to print multiply valuesprint ("c is %s,e is %i" % (c,e))'''知识点:* 用int和str函数将字符串和数字进行转换* 打印以#开头,而不是习惯的//* 打印多个参数的方式'''#! /usr/bin/python# -*- coding: utf8 -*-#列表类似Javascript的数组,方便易用#定义元组word=['a','b','c','d','e','f','g']#如何通过索引访问元组里的元素a=word[2]print ("a is: "+a)b=word[1:3]print ("b is: ")print (b) # index 1 and 2 elements of word.c=word[:2]print ("c is: ")print (c) # index 0 and 1 elements of word.d=word[0:]print ("d is: ")print (d) # All elements of word.#元组可以合并e=word[:2]+word[2:]print ("e is: ")print (e) # All elements of word.f=word[-1]print ("f is: ")print (f) # The last elements of word.g=word[-4:-2]print ("g is: ")print (g) # index 3 and 4 elements of word.h=word[-2:]print ("h is: ")print (h) # The last two elements.i=word[:-2]print ("i is: ")print (i) # Everything except the last two characters l=len(word)print ("Length of word is: "+ str(l))print ("Adds new element")word.append('h')print (word)#删除元素del word[0]print (word)del word[1:3]print (word)'''知识点:* 列表长度是动态的,可任意添加删除元素.* 用索引可以很方便访问元素,甚至返回一个子列表* 更多方法请参考Python的文档'''4 字典#! /usr/bin/pythonx={'a':'aaa','b':'bbb','c':12}print (x['a'])print (x['b'])print (x['c'])for key in x:print ("Key is %s and value is %s" % (key,x[key]))'''知识点:* 将他当Java的Map来用即可.'''5 字符串比起C/C++,Python处理字符串的方式实在太让人感动了.把字符串当列表来用吧. #! /usr/bin/pythonword="abcdefg"a=word[2]print ("a is: "+a)b=word[1:3]print ("b is: "+b) # index 1 and 2 elements of word.c=word[:2]print ("c is: "+c) # index 0 and 1 elements of word.d=word[0:]print ("d is: "+d) # All elements of word.e=word[:2]+word[2:]print ("e is: "+e) # All elements of word.f=word[-1]print ("f is: "+f) # The last elements of word.g=word[-4:-2]print ("g is: "+g) # index 3 and 4 elements of word.h=word[-2:]print ("h is: "+h) # The last two elements.i=word[:-2]print ("i is: "+i) # Everything except the last two charactersl=len(word)print ("Length of word is: "+ 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("Please enter an integer:"))if x<0:x=0print ("Negative changed to zero")elif x==0:print ("Zero")else:print ("More")# Loops Lista = ['cat', 'window', 'defenestrate']for x in a:print (x, len(x))#知识点:# * 条件和循环语句# * 如何得到控制台输入7 函数#! /usr/bin/python# -*- coding: utf8 -*-def sum(a,b):return a+bfunc = sumr = func(5,6)print (r)# 提供默认值def add(a,b=2):return a+br=add(1)print (r)r=add(1,5)print (r)一个好用的函数#! /usr/bin/python# -*- coding: utf8 -*-# The range() functiona =range (1,10)for i in a:print (i)a = range(-2,-11,-3) # The 3rd parameter stands for stepfor i in a:print (i)知识点:•Python 不用{}来控制程序结构,他强迫你用缩进来写程序,使代码清晰.•定义函数方便简单•方便好用的range函数8 异常处理#! /usr/bin/pythons=input("Input your age:")if s =="":raise Exception("Input must no be empty.")try:i=int(s)except Exception as err:print(err)finally: # Clean up actionprint("Goodbye!")9 文件处理对比Java,python的文本处理再次让人感动#! /usr/bin/pythonspath="D:/download/baa.txt"f=open(spath,"w") # Opens file for writing.Creates this file doesn't exist.f.write("First line 1.\n")f.writelines("First line 2.")f.close()f=open(spath,"r") # Opens file for readingfor line in f:print("每一行的数据是:%s"%line)f.close()知识点:•open的参数:r表示读,w写数据,在写之前先清空文件内容,a打开并附加内容.•打开文件之后记得关闭10 类和继承class Base:def__init__(self):self.data = []def add(self, x):self.data.append(x)def addtwice(self, x):self.add(x)self.add(x)# Child extends Baseclass Child(Base):def plus(self,a,b):return a+boChild =Child()oChild.add("str1")print (oChild.data)print (oChild.plus(2,3))'''知识点:* self:类似Java的this参数'''11 包机制每一个.py文件称为一个module,module之间可以互相导入.请参看以下例子:# a.pydef add_func(a,b):return a+b# b.pyfrom a import add_func # Also can be : import aprint ("Import add_func from module a")print ("Result of 1 plus 2 is: ")print (add_func(1,2)) # If using "import a" , then here should be "a.add_func" module可以定义在包里面.Python定义包的方式稍微有点古怪,假设我们有一个parent文件夹,该文件夹有一个child子文件夹.child中有一个module a.py . 如何让Python 知道这个文件层次结构?很简单,每个目录都放一个名为_init_.py 的文件.该文件内容可以为空.这个层次结构如下所示:parent--__init_.py--child-- __init_.py--a.pyb.py那么Python如何找到我们定义的module?在标准包sys中,path属性记录了Python 的包路径.你可以将之打印出来:import sysprint(sys.path)通常我们可以将module的包路径放到环境变量PYTHONPATH中,该环境变量会自动添加到sys.path属性.另一种方便的方法是编程中直接指定我们的module路径到sys.path 中:import sysimport ossys.path.append(os.getcwd()+'\\parent\\child')print(sys.path)from a import add_funcprint (sys.path)print ("Import add_func from module a")print ("Result of 1 plus 2 is: ")print (add_func(1,2))知识点:•如何定义模块和包•如何将模块路径添加到系统路径,以便python找到它们•如何得到当前路径12 内建帮助手册对比C++,Java的突出进步是内建Javadoc机制,程序员可以通过阅读Javadoc了解函数用法.Python也内建了一些方便函数以便程序员参考.•dir函数: 查看某个类/对象的方法. 如果有某个方法想不起来,请敲dir. 在idle里,试试 dir(list)•help函数: 详细的类/对象介绍. 在idle里, 试试 help(list)1 遍历文件夹和文件import osimport os.path# os,os.path里包含大多数文件访问的函数,所以要先引入它们.#请按照你的实际情况修改这个路径rootdir = "d:/download"for parent, dirnames, filenames in os.walk(rootdir):#case 1:for dirname in dirnames:print ( "parent is:" + parent)print ( "dirname is:" + dirname)#case 2for filename in filenames:print ( "parent is:" + parent)print ( "filename with full path :" + os.path.join(parent, filename))'''知识点:* os.walk返回一个三元组.其中dirnames是所有文件夹名字(不包含路径),filenames是所有文件的名字(不包含路径).parent表示父目录.* case1 演示了如何遍历所有目录.* case2 演示了如何遍历所有文件.* os.path.join(dirname,filename) : 将形如"/a/b/c"和"d.java"变成/a/b/c/d.java". '''2 分割路径和文件名import os.path#常用函数有三种:分隔路径,找出文件名.找出盘符(windows系统),找出文件的扩展名.#根据你机器的实际情况修改下面参数.spath = "D:/download/repository.7z"# case 1:p,f = os.path.split(spath);print ( "dir is:" + p)print ( "file is:" + f)# case 2:drv,left = os.path.splitdrive(spath);print ( "driver is:" + drv)print ( "left is:" + left)# case 3:f,ext = os.path.splitext(spath);print ( "f is:" + f)print ( "ext is:" + ext)'''知识点: 这三个函数都返回二元组.* case1 分隔目录和文件名* case2 分隔盘符和文件名* case3 分隔文件和扩展名'''总结:5个函数•os.walk(spath)•os.path.split(spath)•os.path.splitdrive(spath)•os.path.splitext(spath)•os.path.join(path1,path2)3 复制文件import shutilimport osimport os.pathsrc = "d:\\download\\test\\myfile1.txt"dst = "d:\\download\\test\\myfile2.txt"dst2 = "d:/download/test/测试文件夹.txt"dir1 = os.path.dirname(src)print ( "dir1 %s" % dir1)if (os.path.exists(src) == False):os.makedirs(dir1)f1 = open(src, "w" )f1.write( "line a\n" )f1.write( "line b\n" )f1.close()shutil.copyfile(src, dst)shutil.copyfile(src, dst2)f2 = open(dst, "r" )for line in f2:print (line)f2.close()#测试复制文件夹树try :srcDir = "d:/download/test"dstDir = "d:/download/test2"#如果dstDir已经存在,那么shutil.copytree方法会报错!#这也意味着你不能直接用d:作为目标路径.shutil.copytree(srcDir, dstDir)except Exception as err:print (err)'''知识点:* shutil.copyfile:如何复制文件* os.path.exists:如何判断文件夹是否存在* shutil.copytree:如何复制目录树'''总结:4个函数•os.path.dirname(path)•os.path.exists(path)•shutil.copyfile(src, dst)•shutil.copytree(srcDir, dstDir)4 实战:文件备份小程序import osimport shutilimport datetime'''作用:将目录备份到其他路径。