Python 流程控制与循环体
IF 条件判断语句
单分支结构: 单分支结构的判断是最简单的一种形式,如果满足条件则执行,否则跳过IF语句.
import sys
num = 0
if num == 0:
print("数值确实等于零!")
双分支结构: 双分支用来判断两种不同的情况,比如要么为真要么为假.
import sys
num=0
if num == 0:
print("数值确实等于零!")
else:
print("你在逗我吗,这不是零,皮一下很开心!")
多分支结构: 多分枝结构用来判断大多数情况,其给予每个结果一个返回值.
import sys
score = 88.8
level = int(score % 10)
if level >= 10:
print('Level A+')
elif level == 9:
print('Level A')
elif level == 8:
print('Level B')
elif level == 7:
print('Level C')
elif level == 6:
print('Level D')
else:
print('Level E')
模拟登陆(1): 模拟用户登录小实验,输入密码必须不显示.
import sys
import getpass
name=input("输入用户名:")
pwd=getpass.getpass("请输入密码:")
if name == "lyshark" and pwd=="123123":
print("欢迎,lyshark,登陆!")
else:
print("用户名或密码错误!")
猜数字游戏(2): 猜数字小游戏,输入参数返回指定结果.
# -*- coding: utf-8 -*-
import sys
my_num = 38
user_input = int(input("输入一个数字:"))
if user_input == my_num:
print("你猜对了!")
elif user_input < my_num:
print("猜小了!")
else:
print("猜大了!")
## WHILE 循环语句
死循环: 演示一个死循环的小例子.
import os
count = 0
while True:
print("这是一个死循环...",count)
count +=1
循环打印: 循环打印0-9这几个数字,且结果不要换行,在一行中输出.
import os
count = 0
while count <= 9:
print(count, end=' ')
count += 1
中断循环: 演示一个while循环被中断的情况.
import os
count = 0
while count <=9:
print(count, end=' ')
if count == 5:
break
count += 1
else:
print('end')
实例1: 打印指定字符串,循环打印其中的每一个元素,并每次递减.
import os
url="www.baidu.com"
while url:
print(url)
url=url[1:]
#--输出结果-------------------------
www.baidu.com
ww.baidu.com
w.baidu.com
.baidu.com
baidu.com
aidu.com
idu.com
du.com
u.com
.com
com
om
m
实例2: 循环打印一些数据,这里打印0-9
并每次递增.
import os
x=0;y=10
while x<y:
print(x)
x+=1
#--输出结果-------------------------
0
1
2
3
4
5
6
7
8
9
实例3: 打印一个字符串,循环打印,打印完成后输出game over
.
import os
url="www.baidu.com"
while url:
print(url)
url=url[:-1]
else:
print("game over")
#--输出结果-------------------------
www.baidu.com
www.baidu.co
www.baidu.c
www.baidu.
www.baidu
www.baid
www.bai
www.ba
www.b
www.
www
ww
w
game over
实例4: 逐一显示指定列表中的所有元素,这里有三种方法.
>>> list=[1,2,3,4,5,6]
>>> count =0
>>>
>>> while list:
... print(list[0])
... list.pop(0)
...
>>> list=[1,2,3,4,5,6]
>>> while list:
... print(list[-1])
... list.pop()
...
>>> list=[1,2,3,4,5,6]
>>> while count < len(list):
... print(list[count])
... count+=1
...
实例5: 求100以内所有偶数之和,使用嵌套判断.
>>> num=0
>>> sum=0
>>> while num <=100:
... if num %2 ==0:
... sum=sum+num
... else:
... pass
... num=num+1
实例6: 逐一显示指定字典的所有键,并于显示结束后说明总键数.
>>> d1 = {'x':1,'y':23,'z':78}
>>> keylists = d1.keys()
>>> while keylists:
print(keylists[0])
keylists.pop[0]
else:
print(len(d1))
实例7: 创建一个包含了100以内所有奇数的列表.
>>> l1 = []
>>> x = 1
>>> while x < 100:
l1.append(x)
x += 2
实例8: 列表l1 = [0,1,2,3,4,5,6]
,列表l2 = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']
,以第一个列表中的元素为键,以第二个列表中的元素为值生成新字典d1
.
>>> l1 = [0,1,2,3,4,5,6]
>>> l2 = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']
>>> d1 = {}
>>> count = 0
>>> if len(l1) == len(l2):
while count < len(l1):
d1[l1[count]] = l2[count]
count += 1
>>> print(d1)
实例9: 循环并打印相关文字,当到达100次的时候退出.
count = 0
while True:
print("hello lyshark:",count)
count +=1
if count == 100:
print("break")
break
实例10: 模拟登陆小程序,程序启动要求输入密码,并判断如果次数小于3次则登陆成功,否则禁止登陆.
#!/usr/bin/env python
# -*- coding:utf-8 -*-
import getpass
import os
name = "lyshark"
pwd = "123123"
count = 0
while True:
if count < 3:
print("请输入用户名和密码:")
username = input("用户名:")
password = getpass.getpass("密码:")
if username == name and password == pwd:
print("恭喜你登陆成功!")
break
else:
print("登陆失败!用户名或者密码错误")
else:
print("你已经输错3次,正在退出....")
break
count += 1
## FOR 循环遍历语句
列表遍历: 通过使用for循环打印一个list列表中的元素.
import os
names = ["tom","admin","lyshark","jack"]
for x in names:
print(x)
列表迭代: 对于一个序列来说,也可以通过索引进行迭代.
import os
names = ["tom","admin","lyshark","jack"]
for x in range(len(names)):
print(names[x])
打印序列: 通过for循环,遍历并打印一个序列.
import os
T = [(1,2),(3,4),(5,6),(7,8)]
for (a,b) in T:
print(a,b)
循环遍历: 遍历0-9范围内的所有数字,并通过循环控制语句打印出其中的奇数.
import os
for i in range(10):
if i % 2 == 0:
continue
print(i, end=' ')
循环遍历: 通过循环控制语句打印一个列表中的前3个元素.
import os
names = ['Tom', 'Peter', 'Jerry', 'Jack', 'Lilly']
for i in range(len(names)):
if i >= 3:
break
print(names[i])
循环遍历: 通过for循环打印99乘法表.
import os
for j in range(1, 10):
for i in range(1, j+1):
print('%d*%d=%d' % (i, j, i*j), end='\t')
i += 1
print()
j += 1
range()函数: 通过使用range函数,每隔一定的个数元素挑选一个元素.
>>> string="hello world my name lyshark"
>>> for i in range(0,len(string),2):
... print(string[i])
range()函数: 通过range遍历,修改列表元素,在原来元素的基础上修改元素.
>>> list=[1,2,3,4,5]
>>> for i in range(len(list)):
... list[i]+=1
...
>>> list
[2, 3, 4, 5, 6]
zip()函数: zip函数常用于动态的构造字典.
>>> L1 = [1,2,3,4,5]
>>> L2 = ['a','b','c','d','e',]
>>> zip(L1,L2)
>>>
>>> keys = [1,2,3,4,5,6,7]
>>> vaules = ['Sun','Mon','Tue','Wed','Thu','Fri','Sat']
>>> D = {}
>>> for (k,v) in zip(keys,values)
D[k] = v
>>> D
实例1: 逐一分开显示指定字典d1中的所有元素,也就是字典遍历打印.
>>> d1 = {'x':123,'y':321,'z':734}
>>> for (k,v) in d1.items():
print(k,v)
y 321
x 123
z 734
实例2: 逐一显示列表中l1=['Sun','Mon','Tue','Wed','Thu','Fri','Sat']
中索引为奇数的元素.
>>> l1=['Sun','Mon','Tue','Wed','Thu','Fri','Sat']
>>>
>>> for i in range(1,len(l1),2):
print(l1[i])
实例3: 将属于列表l1=['Sun','Mon','Tue','Wed','Thu','Fri','Sat']
,但不属于列表l2=['Sun','Mon','Tue','Thu','Sat']
的所有元素定义为一个新列表l3
,并加入到其中.
>>> l1=['Sun','Mon','Tue','Wed','Thu','Fri','Sat']
>>> l2=['Sun','Mon','Tue','Thu','Sat']
>>> l3 = []
>>> for i in l1:
>>> if i not in l2:
>>> l3.append(i)
实例4: 将属于列表namelist=['stu1','stu2','stu3','stu4','stu5','stu6','stu7']
,删除列表removelist=['stu3','stu7','stu9']
,请将属于removelist列表中的每个元素从namelist中移除(属于removelist,但不属于namelist的忽略即可).
>>> namelist=['stu1','stu2','stu3','stu4','stu5','stu6','stu7']
>>> removelist=['stu3','stu7','stu9']
>>> for i in removelist:
>>> if i in namelist:
>>> namelist.remove(i)
>>> print(namelist)
实例5: 给指定的一个列表加编号,使用enumerate加编号.
>>> temp=["手机","电脑","玩具"]
>>> for (x,y) in enumerate(temp):
print(x,y)
0 手机
1 电脑
2 玩具
小总结: 实现让用户不断的猜年龄,但只给最多3次机会,再猜不对就退出程序.
#!/usr/bin/env python
# -*- coding:utf-8 -*-
age = 22
count = 0
for i in range(10):
if count < 3:
a = int(input("请输入一个猜测的数:"))
if a == age:
print("恭喜你,答对了")
break
elif a > age:
print("你猜的数字大了")
else:
print("你猜的数字小了")
else:
b = input("这都猜不对,你继续玩吗?(yes or not):")
if b == 'yes':
count = 0
continue
else:
print("Bye!下次再玩")
count += 1
## 跳过执行与跳出语句
pass语句: pass是为了保持程序结构的完整性,该语句不做任何事情,一般用做占位语句.
>>> for ch in "LyShark":
... if ch == "h":
... pass
... print("这里执行了pass语句")
... print("字符:",ch)
...
#--输出结果-------------------------
字符: L
字符: y
字符: S
这里执行了pass语句
字符: h
字符: a
字符: r
字符: k
break语句: break语句用来终止循环语句,即使循环没有结束任然要执行.
>>> for ch in "LyShark":
... if ch == "a":
... break
... print("字符:",ch)
...
#--输出结果-------------------------
字符: L
字符: y
字符: S
字符: h
continue语句: 该语句语句用来告诉Python跳过当前循环的剩余语句,然后继续进行下一轮循环.
>>> for ch in "LyShark":
... if ch == "a":
... continue
... print("字符:",ch)
...
#--输出结果-------------------------
字符: L
字符: y
字符: S
字符: h
字符: r
字符: k
## 本章小总结(课后练习)
实现元素分类: 有如下值集合[11,22,33,44,55,66,77,88,99]
,将所有大于66的值保存至字典的第一个key中,将小于66的值保存至第二个key的值中,即:{'k1': 大于66的所有值,'k2': 小于66的所有值}
,代码如下:
list= [11,22,33,44,55,66,77,88,99]
bignum=[]
smallnum=[]
dir={}
for num in list:
if num>66:
bignum.append(num)
if num<66:
smallnum.append(num)
else:
pass
dir['k1']=bignum
dir['k2']=smallnum
print(dir)
实现元素查找: 查找元素,移动空格,并查找以a或A开头,并且以c结尾的所有元素.
li = ["alec", " aric", "Alex", "Tony", "rain"]
tu = ("alec", " aric", "Alex", "Tony", "rain")
dic = {'k1': "alex", 'k2': ' aric', "k3": "Alex", "k4": "Tony"}
for i in li:
if i.strip().capitalize().startswith('A') and i.strip().endswith('c'):
print(i)
for i in tu:
if i.strip().capitalize().startswith('A') and i.strip().endswith('c'):
print(i)
for i in dic.values():
if i.strip().capitalize().startswith('A') and i.strip().endswith('c'):
print (i)
实现商品输出: 输出商品列表,用户输入序号,显示用户选中的商品.
#方法一
l1=[1,2,3,4]
l2=["手机", "电脑", '鼠标垫', '游艇']
d=dict(zip(l1,l2))
print(d)
num=input("请输入商品编号:")
print("你选择的商品为 %s" %d[int(num)])
#方法二
li = ["手机", "电脑", '鼠标垫', '游艇']
for k, i in enumerate(li):
print(k,i)
k=input("请输入商品编号:")
print("你选择的商品为 %s" % li[int(k)])
实现命令行: 实现一个简单的命令行小工具框架,可自行添加扩展功能.
import sys
import os
import platform
def help():
print("By:LyShark www.mkdirs.com")
def clear():
temp=platform.system()
if(temp == "Windows"):
os.system("cls")
elif(temp == "Linux"):
os.system("clear")
def main():
while True:
try:
shell=str(input("[Shell] # "))
if(shell == ""):
continue
elif(shell == "exit"):
exit()
elif(shell == "help"):
help()
elif(shell == "clear"):
clear()
else:
print("未知命令行")
except Exception:
continue
# 程序的开头,模拟C语言写法.
if __name__ == '__main__':
main()
实现三级菜单: 实现用户交互,显示省市县三级联动的选择.
dic = {
"河北": {
"石家庄": ["鹿泉", "藁城", "元氏"],
"邯郸": ["永年", "涉县", "磁县"],
},
"湖南": {
"长沙":['a','b','c'],
"株洲":['d','e','f']
},
"湖北": {
"武汉":['g','h','i'],
"黄石":['j','k','l']
}
}
for k in dic.keys():
print(k)
flag=True
while flag:
n=input("请输入你所在省:")
for k in dic.keys():
if n in dic.keys():
if k == n:
for i in dic[n].keys():
print(i)
w = input("请输入你所在的城市:")
for i in dic[n].keys():
if w in dic[n].keys():
if i == w:
for k in dic[n][w]:
print(k)
s=input("请输入你所在的县:")
for j in dic[n][w]:
if s in dic[n][w]:
if j==s:
print("你所在的位置是:%s省%s市%s县" % (n,w,s))
flag = False
break
else:
print('不存在,请重新输入')
break
else:
print('不存在,请重新输入')
break
else:
print('不存在,请重新输入')
break
实现一个购物车: 实现一个购物车小程序,并符合以下要求.
1.要求用户输入总资产,例如:20000
2.显示商品列表,让用户根据序号选择商品,加入购物车
3.购买,如果商品总额大于总资产,提示账户余额不足,否则购买成功
product = [
("iphone",5800),
("watch",380),
("bike",800),
("book",120),
("computer",4000)
]
shopping_car = []
salary = input("请输入你的金钱: ")
if salary.isdigit():
salary = int(salary)
while True:
for i in enumerate(product):
print(i)
user_choice = input(">>>或者q:")
if user_choice.isdigit():
user_choice = int(user_choice)
if user_choice >= 0 and user_choice < len(product):
p_item = product[user_choice]
if salary >= p_item[1]:
shopping_car.append(p_item[0])
salary -= p_item[1]
print("你购买了\033[32m%s\033[0m,你的余额剩余\033[31m%s\033[0m" % (p_item[0], salary))
else:
print("\033[31m你的余额不足\033[0m")
else:
print("你输入的项目[%s]不存在,请重新输入" % user_choice)
elif user_choice == 'q':
print("你购买了这些商品:".center(30,"-"))
for i in shopping_car:
print("\033[32m%s\033[0m" %i)
print("\033[31m余额%s\033[0m" %salary)
exit()
else:
print("你输入的[%s]不存在" % user_choice)
else:
print("你输入的金额不正确!请重新输入金额!")
## 实例小总结(提高技巧)
题目(1): 有四个数字:1、2、3、4,能组成多少个互不相同且无重复数字的三位数?各是多少?
程序分析:可填在百位、十位、个位的数字都是1、2、3、4,组成所有的排列后再去掉不满足条件的排列.
>>> for i in range(1,5):
... for j in range(1,5):
... for k in range(1,5):
... if(i!=k) and (i!=j) and(j!=k):
... print(i,j,k)
...
#--输出结果-------------------------
1 2 3
1 2 4
1 3 2
1 3 4
1 4 2
1 4 3
2 1 3
2 1 4
题目(2): 输入某年某月某日,程序自动判断这一天是这一年的第几天?
程序分析:以10月1日为例,应该先把前9个月的加起来,然后再加上1天即本年的第几天,特殊情况,闰年且输入月份大于2时需考虑多加一天.
# -*- coding: UTF-8 -*-
year = int(input('year:\n'))
month = int(input('month:\n'))
day = int(input('day:\n'))
months = (0,31,59,90,120,151,181,212,243,273,304,334)
if 0 < month <= 12:
sum = months[month - 1]
else:
print ('data error')
sum += day
leap = 0
if (year % 400 == 0) or ((year % 4 == 0) and (year % 100 != 0)):
leap = 1
if (leap == 1) and (month > 2):
sum += 1
print ('it is the %dth day.' % sum)
#--输出结果-------------------------
year:
2018
month:
10
day:
1
it is the 274th day.
题目(3): 斐波那契数列,又称黄金分割数列,指的是这样一个数列:0、1、1、2、3、5、8、13、21、34、….在数学上,费波那契数列是以递归的方法来定义.
F0 = 0 (n=0)
F1 = 1 (n=1)
Fn = F[n-1]+ F[n-2](n=>2)
# -*- coding: UTF-8 -*-
def fib(n):
a,b = 1,1
for i in range(n-1):
a,b = b,a+b
return a
# 输出了第10个斐波那契数列
print (fib(10))
题目(4): 输出9*9
乘法口诀表,分行与列考虑,共9行9列,i控制行,j控制列.
import os
import sys
for x in range(1,10):
print()
for y in range(1,x+1):
print("%d*%d=%d "%(y,x,x*y),end="")
题目(5): 写一个字符串遍历查找工具,代码如下.
import os
import sys
ls="Type help() for interactive help, or help(object) for help about object"
find="help"
for x in range(len(ls)):
temp=len(find)
if str(ls[x:x+temp]) == str(find):
print(ls[x:x+temp],x)
break
题目(6): 通过使用time模块中的sleep函数,让程序每隔1秒执行一次循环.
import os
import time
dic={1:"admin",2:"guest"}
for key,value in dict.items(dic):
print(key,value)
time.sleep(1)
题目(7): 通过使用time模块,对指定的时间格式进行一定的格式化操作.
import os
import time
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time()))) #2019-01-18 15:16:28
time.sleep(2)
print(time.strftime("%Y-%m-%d %H:%M:%S",time.localtime(time.time())))
题目(8): 有一对兔子,从出生后第3个月起每个月都生一对兔子,小兔子长到第三个月后每个月又生一对兔子,假如兔子都不死,问每个月的兔子总数为多少?
程序分析:兔子的规律为数列 1,1,2,3,5,8,13,21....
import os
f1 = 1
f2 = 1
for i in range(1,22):
print('%12ld %12ld'%(f1,f2))
if (i % 3) == 0:
print("")
f1 = f1 + f2
f2 = f1 + f2
题目(9): 判断101-200之间有多少个素数,并输出所有素数.
程序分析:判断素数的方法,用一个数分别去除2,如果能被整除,则表明此数不是素数,反之是素数.
import os
from math import sqrt
from sys import stdout
h=0
leap=1
for m in range(101,201):
k = int(sqrt(m + 1))
for i in range(2,k + 1):
if m % i == 0:
leap = 0
break
if leap == 1:
print("%-4d"%m)
h += 1
if h % 10 == 0:
print("")
leap = 1
print('The total is %d' %h)
题目(10): 输入一行字符,分别统计出其中英文字母、空格、数字和其它字符的个数.
import os
import string
strs=input("请输入一个字符串:")
letters=0
space=0
digit=0
others=0
for x in range(len(strs)):
ch=strs[x]
if ch.isalpha():
letters+=1
elif ch.isspace():
space+=1
elif ch.isdigit():
digit+=1
else:
others+=1
print("char=%d,space=%d,digit=%d,others=%d"%(letters,space,digit,others))
题目(11): 读取db
配置文件,并按照文件中的账号密码判断是否允许登陆.
import os
import sys
def login(x,y):
fp=open("db","r",encoding="utf-8")
data=fp.readline().split(":")
count=len(open("db","r").readlines())
username=data[0]
password=data[1]
for i in range(3):
if x==username.strip() and y==password.strip():
print("登陆成功")
break
else:
data=fp.readline().split(":")
username=data[0]
password=data[1]
continue
fp.close()
login("admin","admin")
login("lyshark","lyshark")
Python 流程控制与循环体的更多相关文章
- python 流程控制(条件语句)
1,python流程控制单条件基本语句 2,python流程流程多条件控制语句 3,三元运算 1,python流程控制单条件基本语句 if 判断条件: 执行语句…… else: 执行语句…… 判断条件 ...
- Python(四)之Python流程控制(if、while、for)
Python流程控制 if测试: if 条件测试表达式: 组合条件测试: x and y:与运算 x or y:或运算 not x:非运算 while: break:跳出最内层的循环 continue ...
- Python 流程控制-分支结构详解
目录 Python 流程控制--分支结构 1.结构分类 顺序结构 分支结构 循环结构 2.分支结构详解 分支结构 定义格式: if 单支结构 if 双分支结构 if 多分支结构 Python 流程控制 ...
- Python 流程控制 超全解析(不可错过)
流程控制 程序执行结构流程 计算机程序在解决某个具体问题时,包括三种情形,即顺序执行所有的语句.选择执行部分的语句和循环执行部分语句,这正好对应着程序设计中的三种程序执行结构流程:顺序结构.选择结构和 ...
- python流程控制和循环
变量的命名:可以由数字字母下换线组成 ,不能以数字开头,可以使用中文但是不推荐使用中文,不推荐前面使用_ __,不能使用系统的关键字,变量名严格区分大小写 逻辑运算优先级 or<and<n ...
- 【Python从入门到精通】(十)Python流程控制的关键字该怎么用呢?【收藏下来,常看常新】
您好,我是码农飞哥,感谢您阅读本文,欢迎一键三连哦. 这篇文章主要介绍Python中流程控制的关键字的使用,涉及到if else,for,while等关键字 干货满满,建议收藏,需要用到时常看看. 小 ...
- Python基础-python流程控制之顺序结构和分支结构(五)
流程控制 流程:计算机执行代码的顺序,就是流程 流程控制:对计算机代码执行顺序的控制,就是流程控制 流程分类:顺序结构.选择结构(分支结构).循环结构 顺序结构 一种代码自上而下执行的结构,是pyth ...
- Python流程控制if判断以及whlie循环
一.基本运算符补充 1. 算术运算 print(10 / 3) print(10 // 3) print(10 ** 2) 2. 赋值运算 ...
- Python流程控制-逻辑运算-if...else语句
摘录自:http://www.runoob.com/python/python-if-statement.html Python条件语句是通过一条或多条语句的执行结果(True或者False)来决定执 ...
随机推荐
- Js 之获取对象key值
var date = Object.keys(data); Object.keys( ) 会返回一个数组,数组中是这个对象的key值列表 所以只要Object.keys(a)[0], 就可以得只包含一 ...
- Jmeter Web 性能测试入门 (七):Performance 测试中踩过 Jmeter 的坑
脚本运行的过程中,大量request抛error,但没有地方能够查看request是因为什么error的. 原因:Jmeter默认禁掉了运行过程中每个request的具体response信息收集,只保 ...
- 认识理解Java中native方法(本地方法)
Java不是完美的,Java的不足除了体现在运行速度上要比传统的C++慢许多之外,Java无法直接访问到操作系统底层(如系统硬件等),为此Java使用native方法来扩展Java程序的功能. 可 ...
- Facebook币Libra学习-6.发行属于自己的代币Token案例(含源码)
在这个简短的概述中,我们描述了我们在eToro标记化资产背后实施技术的初步经验,即MoveIR语言中的(eToken),用于在Libra网络上进行部署. Libra协议是一个确定性状态机,它将数据存储 ...
- linux中怎样会引起进程睡眠呢?
答: 使用信号量,wait队列,completion,调用schedule,用GFP_KERNEL指定的内存分配malloc,get,free,page等都会引起睡眠 思考: Q: 为什么会引起睡眠呢 ...
- linux - mysql:查看 mysql 是否安装成功
命令 rpm -q mysql 结果 成功: 失败:
- 苹果系统安装虚拟机 Mac如何安装虚拟机教程 (含系统镜像的下载地址)
镜像下载地址 http://www.itellyou.cn 1.前言 大家在用 Mac 系统的时候,可能有时难免还是要用到 Windows 系统.在 Mac 上使用 Windows 系统有二种方 ...
- Python描述性统计numpy
import numpy as np import pandas as pd import matplotlib.pyplot as plt from sklearn import datasets, ...
- EasyUI datagrid列隐藏与显示
隐藏DataGrid某一列 $("#datagrid_view").datagrid('hideColumn', filed); 2. 显示DataGrid隐藏的某一列 $(&qu ...
- 我是如何提高工作效率的-工具篇(一)-Clover
痛点: 还在为资源管理器窗口切来切去烦恼吗? 效果图: 实现工具:Clover 放个链接 链接:https://pan.baidu.com/s/1UiUQZtE99fMNDe1f2gOnlg 提取 ...