学会做笔记

用法查询笔记

1. 算数运算符↓ 2. 列表 ↓
3. 字典↓
4. 格式化字符串↓
5. print()不换行
6. 随机random库
7. .strip()移除、.split() (切片、分割)、.join()(合并)
8.定时器模块schedule
9.dir()函数查看一个模块,看里面有什么变量、函数、类、类方法。
10.quote()函数,可以帮我们把内容转为标准的url格式

深度查询笔记

1. 循环↓ 2. 字典和列表↓
3.

解题思路

——————————————————————————————

用法查询笔记



python 查找子窗口句柄_python 查找子窗口句柄



2.列表 ↓

python 查找子窗口句柄_python 查找子窗口句柄_02

两个list合并的5种方法:
a=[1,2,3,4,5,6] 
b=['a','b','c','d'] 
print(a+b)        
>[1, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd']

a+=b
print(a)
>[1, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd']

a.extend(b)
print(a)
>[1, 2, 3, 4, 5, 6, 'a', 'b', 'c', 'd']

a.append(b)        #相当于增加一个元素
print(a)
>[1, 2, 3, 4, 5, 6, ['a', 'b', 'c', 'd']]

a[0:0] = b
print(a)
>['a', 'b', 'c', 'd', 1, 2, 3, 4, 5, 6]
列表的排序(升序,降序,翻转),去掉重复
a = [1,2,5,3,5]
b = [8,7,6,1,8]
a=a+b

a.reverse()                   #翻转
print(a)
>[8, 1, 6, 7, 8, 5, 3, 5, 2, 1]

a.sort(reverse=True)          #降序,从大到小排列
print(a)
>[8, 8, 7, 6, 5, 5, 3, 2, 1, 1]

a.sort()                      #升序,从小到大排列
print(a)
>[1, 1, 2, 3, 5, 5, 6, 7, 8, 8]

c=list(set(a))                #去掉重复且从小到大排列,set(a)会去重复且升序但返回的类型是集合,加上list()函数可将集合改为列表。
print(c)
>[1, 2, 3, 5, 6, 7, 8]
求和,求元素个数,求平均值,中位数
a = [1, 2, 5, 3, 5, 8, 7, 6, 1, 8]

print(sum(a))           #sum()函数'求和'
>46

print(len(a))           #len()函数'求元素的个数'
>10

print(sum(a)/len(a))    #求平均值
>4.6
________________________________________
import numpy as np      #导入numpy库求平均数,中位数
a = [1, 2, 5, 3, 5, 8, 7, 6, 1, 8]

b=np.mean(a)            #np.mean(a)求平均数
print(b)
>4.6

b=np.median(a)          #np.median(a) 求中位数
print(b)
>5



3.字典↓

python 查找子窗口句柄_格式化字符串_03

a = dict(aa=98,bb=99,cc=87,dd=86)
a['aa'] = 100 #改变某个键值
print(a)
>{'aa': 100, 'bb': 99, 'cc': 87, 'dd': 86}

b={'aa': 100, 'bb': 99, 'cc': 87, 'dd': 86}
b['ee'] = 90 #增加新的键值对
print(b)
>{'aa': 100, 'bb': 99, 'cc': 87, 'dd': 86, 'ee': 90}

c={'aa': 100, 'bb': 99, 'cc': 87, 'dd': 86, 'ee': 90}
del c['cc'] #删除某个键及其值
print(c)
>{'aa': 100, 'bb': 99, 'dd': 86, 'ee': 90}

d={'aa': 100, 'bb': 99, 'dd': 86, 'ee': 90}
print(d.pop('aa')) #删除某个键及其值并得到其值
>100
print(d)
{'bb': 99, 'dd': 86, 'ee': 90}
.两个字典合并:
a={'a':1,'b':2,'c':3} 
b= {'aa':11,'bb':22,'cc':33}
c=dict(a,**b) 
print(c)
>{'a': 1, 'b': 2, 'c': 3, 'aa': 11, 'bb': 22, 'cc': 33}



4.格式化字符串↓

python 查找子窗口句柄_格式化字符串_04


在Python中,采用的格式化方式和C语言是一致的,用 % 实现。 % 运算符就是用来格式化字符串的,在字符串内部,%s 表示用字符串替换,%d 表示用整数替换,有几个 % 占位符,后面就跟几个变量或者值,顺序要对应。如果只有一个 % ,括号可以省略。

常见的占位符有:

占位符

替换内容

%d

整数

%f

浮点数

%s

字符串

%x

十六进制整数

print('亲爱的%s您好!您%d月的话费是%.2f,余额是%.2f' % ('Aamax',5,123.345453,454.5465465))  
>亲爱的Aamax您好!您5月的话费是123.35,余额是454.55

#在浮点数%f中取两位小数点用%.2f

如果不确定%d,%f,%s怎么用,那就任何情况下都写为 %s 。 %s 会把任何数据类型转化为字符串,有些时候,字符串里面%是一个普通字符,这种情况下就需要转义,用 %% 来表示一个%

print('%s月份,营业额上升了%s %%' % (5,7))
>5月份,营业额上升了7 %

format()

另一种格式化字符串的方法是使用字符串的 format() 方法,它会用传入的参数依次替换字符串内的占位符{0}、{1}、{2}......
用法1
print('{0}月份,环比上升了{1} %,同比上升了{2:.2f}%'.format(5,7,3.1856))
print('{}月份,环比上升了{} %,同比上升了{:.2f}%' .format(5,7,3.1856))

>5月份,环比上升了7 %,同比上升了3.19%
>5月份,环比上升了7 %,同比上升了3.19%
——————————————————————————————————————————————
用法2
age = 25
height=175
weight=115
print(f"我的年龄: {age}岁 ,我的身高是:{height}厘米,我的体重是{weight}斤")
>我的年龄: 25岁 ,我的身高是:175厘米,我的体重是115斤

#这种由f、引号、{}的组合,相当于告诉python,这是一个格式化字符串,把这几个变量放在大括号里面。



  1. print()不换行↓
不换行用  end=''  '引号'之间加入'空格',可以改变间距的大小,输入+号可以将其连接
for i in range (1,10):
    for j in range(1,10):
        print('%d X %d = %d' % (j,i,i*j),end='')
        if i==j:
            print('')
            break



6.随机random库↓

import random

a=['我','爱','你','们']
b=random.choice(a)      #random.choice(a) 随机选择其中的一个元素
print(b)
>你     #随机出现

a=random.randint(20,30)  #random.randint(a,b) 随机选择a-b范围内的数字
print(a)
>24


list=['小明','小红','小东','小黑','小白']
a=random.sample(list, 3)    #random.sample(seq, n)随机选择指定列表中的几个元素,seq指列表的名称,n指需要几个随机元素
print(a)

a = random.random()          # 随机从0-1之间抽取一个小数
print(a)
>0.3387948276036278

items = [1, 2, 3, 4, 5, 6]   # “随机洗牌”,比如打乱列表
random.shuffle(items)
print(items)
>[3, 5, 6, 1, 2, 4]



  1. .strip()移除、.split() (切片、分割)、.join()(合并)
#.strip()用于移除字符串头尾指定的字符(默认为空格)
a='hai你好566iiii'
print(a.strip('56hai'))  #.strip()用于移除字符串头尾指定的字符(默认为空格)
>你好
————————————————————————————————————————————————————————————————————
# str.split(str=' ', num=string.count(str)), 参数str分隔符(默认为空格),   num – 分割次数。返回分割后的字符串列表。

#通过指定分隔符对字符串进行切片,如果参数num 有指定值,则仅分隔 num 个子符串.

a='小明 55 60 88 22'      #如果这里的分隔符为+ 那么对应的就以'+'为分隔符进行切割
print(a.split())          #默认为空格
print(a.split(' '))       #中间加了空格键
print(a.split(' ',1))     #以空格为分隔符分割一次
>['小明', '55', '60', '88', '22']
>['小明', '55', '60', '88', '22']
>['小明', '55 60 88 22']

__________________________________________________________________
#str.join(seq),  参数seq要连接的元素序列, 返回通过指定字符连接序列中元素后生成的新字符串。

#用于将序列中的元素以指定的字符连接生成一个新的字符串。

a=['小明', '55', '60', '88', '22']
print(''.join(a))     #没有指定字符
print(' '.join(a))    #指定字符为空格
print('+'.join(a))    #指定字符为+
>小明55608822
>小明 55 60 88 22
>小明+55+60+88+22

8.定时器模块schedule

#定时模块schedule
import schedule     
import time         
#引入schedule和time

def job():
    print("I'm working...")
#定义一个叫job的函数,函数的功能是打印'I'm working...'
schedule.every(2).seconds.do(job)        #每2s执行一次job()函数
schedule.every(10).minutes.do(job)       #部署每10分钟执行一次job()函数的任务
schedule.every().hour.do(job)            #部署每×小时执行一次job()函数的任务
schedule.every().day.at("10:30").do(job) #部署在每天的10:30执行job()函数的任务
schedule.every().monday.do(job)          #部署每个星期一执行job()函数的任务
schedule.every().wednesday.at("13:15").do(job)#部署每周三的13:15执行函数的任务

while True:
    schedule.run_pending()     #检查上面的任务部署情况,如果任务已经准备就绪,就去启动执行。
    time.sleep(1)              #让程序按1秒来检查,如果检查太快,会浪费计算机的资源。
#16-18都是检查部署的情况,如果任务准备就绪,就开始执行任务。
dir()函数查看一个模块,看看它里面有什么变量、函数、类、类方法。
import random
print(dir(random))      #用dir()查看模块里的方法

>['BPF', 'LOG4', 'NV_MAGICCONST', 'RECIP_BPF', 'Random', 'SG_MAGICCONST', 'SystemRandom', 'TWOPI', '_BuiltinMethodType', '_MethodType', '_Sequence', '_Set', '__all__', '__builtins__', '__cached__', '__doc__', '__file__', '__loader__', '__name__', '__package__', '__spec__', '_acos', '_bisect', '_ceil', '_cos', '_e', '_exp', '_inst', '_itertools', '_log', '_os', '_pi', '_random', '_sha512', '_sin', '_sqrt', '_test',
'_test_generator', '_urandom', '_warn', 'betavariate', 'choice', 'choices', 'expovariate', 'gammavariate', 'gauss', 'getrandbits', 'getstate', 'lognormvariate', 'normalvariate', 'paretovariate', 'randint', 'random', 'randrange', 'sample', 'seed', 'setstate', 'shuffle', 'triangular', 'uniform', 'vonmisesvariate', 'weibullvariate']
#会得到一个列表,里面的带 _ _ 和前面的都是与系统相关的函数,不用理会,我们只看全英文的

10.quote()函数,可以帮我们把内容转为标准的url格式

from urllib.request import quote
a= '天空之城'
b= a.encode('gbk')
# 将汉字,用gbk格式编码,赋值给b
print(quote(b))
# quote()函数,可以帮我们把内容转为标准的url格式,作为网址的一部分打开

————————————————————

深度查询笔记



1.循环↓

python 查找子窗口句柄_python3学习_05



2.字典和列表↓

python 查找子窗口句柄_运算符_06


List(列表)

list运算符 、内置函数、内置方法

运算符

含义

表达式

结果

+

列表合并在一起

[‘a’, ‘b’, ‘c’] + [1, 2, 3]

[‘a’, ‘b’, ‘c’, 1, 2, 3]

*

列表重复

[‘a’] * 3

[‘a’, ‘a’, ‘a’]

in

是否为列表元素

‘a’ in [‘a’, ‘b’]

True

list(列表)相关的内置函数

函数

含义

用法

len()

计算列表长度,即计算列表中元素个数

len([1,2,3]) #3

max()

返回列表元素中最大值,列表元素必须是同一类型且可比较,比如都是数字型或都是字符串,如果类型不统一就会报错。

max([‘a’,‘b’,‘c’]) #c

min()

返回列表元素中的最小值。元素类型要求跟max()一样。

min([1,2,3]) #1 min([‘a’,‘b’,‘c’]) #a

sun()

计算列表所有元素的和,其元素类型必须是数值型的(整数、浮点数)

sum([1,2,3]) #6

sorted()

返回一个排序的列表,但并不改变原列表。

sorted([1,0,-1,4]) #[-1, 0, 1, 4] sorted([‘ab’,‘da’,‘c’,‘f’]) #[‘ab’, ‘c’, ‘da’, ‘f’]

list()

生成一个空列表,或把其它类型数据转换成list。

list() #[] list(‘python’) #[‘p’, ‘y’, ‘t’, ‘h’, ‘o’, ‘n’]

any()

只要列表中有一个元素是True就返回True

any([0,1,’’]) #True

all()

只有列表所有元素为True才返回True

all([0,’’,‘2’]) #False all([1,‘a’,‘2’]) #True

list(列表)的内置方法

方法

功能

示例

结果

append()

把一个元素加到列表尾部

L = [‘a’,‘b’,‘c’,‘a’,‘d’,‘a’];L.append(‘A’);print(L)

L变为[‘a’,‘b’,‘c’,‘a’,‘d’,‘a’,‘A’]

insert()

把一个元素插到列表指定位置

L = [‘a’,‘b’,‘c’,‘a’,‘d’,‘a’];L.insert(1,‘A’);print(L)

L变为[‘a’,‘A’,‘b’,‘c’,‘a’,‘d’,‘a’]

remove()

删除列表中某个值的第一个匹配项

L = [‘a’,‘b’,‘c’,‘a’,‘d’,‘a’];L.remove(‘a’);print(L)

L变为[‘b’,‘c’,‘a’,‘d’,‘a’]

pop()

删除列表中指定位置元素(默认最后一个元素)

L = [‘a’,‘b’,‘c’,‘a’,‘d’,‘a’];L.pop(2);print(L)

L变为[‘a’,‘b’,‘a’,‘d’,‘a’]

clear()

清空列表

L = [‘a’,‘b’,‘c’,‘a’,‘d’,‘a’];L.clear();print(L)

L变为[]

index()

从列表中找出某个值第一个匹配项的索引位置

L = [‘a’,‘b’,‘c’,‘a’,‘d’,‘a’];print(L.index(‘a’))

0

count()

统计某个元素在列表中出现的次数

L = [‘a’,‘b’,‘c’,‘a’,‘d’,‘a’];print(L.count(‘a’))

3

sort()

对原列表进行排序

L = [‘a’,‘b’,‘c’,‘a’,‘d’,‘a’];L.sort();print(L)

L变为[‘a’,‘a’,‘a’,‘b’,‘c’,‘d’]

reverse()

将列表倒置

L = [‘a’,‘b’,‘c’,‘a’,‘d’,‘a’];L.reverse();print(L)

L变为[‘a’,‘d’,‘a’,‘c’,‘b’,‘a’]

——————————————————————————————



如何解题

python 查找子窗口句柄_运算符_07


九九乘法表:

for i in range (1,10):      
    for j in range(1,10):
        print('%d X %d = %d' % (j,i,i*j),end = '  ')
        if i==j:   #当两个乘数一样地时候打印空值
            print('')
            break   停止for j in range(1,10)的循环,开始下一次命令
>1 X 1 = 1
>1 X 2 = 2  2 X 2 = 4
>1 X 3 = 3  2 X 3 = 6  3 X 3 = 9
>1 X 4 = 4  2 X 4 = 8  3 X 4 = 12  4 X 4 = 16
>1 X 5 = 5  2 X 5 = 10  3 X 5 = 15  4 X 5 = 20  5 X 5 = 25
>1 X 6 = 6  2 X 6 = 12  3 X 6 = 18  4 X 6 = 24  5 X 6 = 30  6 X 6 = 36
>1 X 7 = 7  2 X 7 = 14  3 X 7 = 21  4 X 7 = 28  5 X 7 = 35  6 X 7 = 42  7 X 7 = 49
>1 X 8 = 8  2 X 8 = 16  3 X 8 = 24  4 X 8 = 32  5 X 8 = 40  6 X 8 = 48  7 X 8 = 56  8 X 8 = 64
>1 X 9 = 9  2 X 9 = 18  3 X 9 = 27  4 X 9 = 36  5 X 9 = 45  6 X 9 = 54  7 X 9 = 63  8 X 9 = 72  9 X 9 = 81

解题思路:
1.分析问题,明确结果
先思考九九乘法表长什么样子,将其先勾勒出来 ,看得出来这是一个循环。
2.思考需要的知识 ,或搜索新知识
这个可以确定循环次数,用for…in…循环,用for i in range(1,10)
需要打印,用到print()函数
3.思考切入点
观察 每一行的开头都是1,每列呈递增关系,每行的第二个乘数不变,
每行的结尾的方程式的两个乘数都是一样 。都是1到9.
4.尝试解决问题的一部分
开始码代码:

for i in range (1,10):
    for j in range(1,10):
        print('%d X %d = %d' % (j,i,i*j))
        if i==j:
            print('')
            break     
''' 运行结果为:
1 X 1 = 1

1 X 2 = 2
2 X 2 = 4

1 X 3 = 3
2 X 3 = 6
3 X 3 = 9
...

发现新问题,如何让每一次循环print打印出来不换行呢?重复1-4步,需要用到新的知识。我网上搜了一下python print不换行,有个函数可以 end=’’,于是

for i in range (1,10):
    for j in range(1,10):
        print('%d X %d = %d' % (j,i,i*j),end='')
        if i==j:
            print('')
            break

成功打印出结果 ,然后将新知识做在笔记上。