【资料】考纲+b站+蓝皮书补充

考试大纲(11/11):Python123

b站视频(30/30)

北理视频()

蓝皮书()

刷题:

一、程序设计的基本方法

1、程序运行(交互式;文件式)

2、编程方法IPO(输入,处理,输出)

3、程序设计语言概述(计算机指令、计算机程序)

编译(静态语言):源代码→目标代码(执行)。一次性,不需要编译。速度更快。

解释(脚本语言):源代码逐条转换并逐条运行。每次运行都需要。

二、基本语法元素

1、基本语法元素

(1)程序的格式框架(缩进,注释)

缩进:1个缩进=4个空格,二者不能混用。缩进是表明程序框架的唯一手段。

(2)语法元素名称(变量,命名,保留字)

命名:首字符不可是数字,中间不可空格,不可用保留字,大小写敏感。

保留字(35个) 确认一下!!!

(3)数据类型(数字类型:整数,浮点数,复数;字符串类型;其他类型)

(4)产生或计算新数据值的代码片段称为表达式

2、基本输入输出函数

(1)input()输出的是字符串

(2)eval()eval()将输入的字符串转换为python语句 e.g.数字

#常与input()一起使用,获取用户输入的数字

eval(input("提示文字"))

#与print()

print(eval(""))

eval("hello")与eval("'hello'")结果不同,前者没定义报错,后者为hello。

eval(""hello"")报错,不可两个双引号结合使用

(3)print()输出字符串,一个或多个变量,混合字符串和变量值,对end参数进行赋值

#混合字符串和变量值

print("{}和{}".format(a,b)) e.g. print("我最喜欢{}".format("77"))

#对end参数赋值(默认回车换行)

print(a, end="")

三、基本数据类型

1、数字类型(整数、浮点数、复数)

(1)整数

十六进制:0x a=10 b=11 以此类推 e.g. 0x3F2 = 3x16^2+15^16^1+2

八进制:0o

二进制:0b

bin() #返回二进制的小写字符串

oct() #返回八进制的小写字符串

hex() #返回十六进制的小写字符串

(2)浮点数

浮点数计算只有前15位保证精度,因此可用整数计算浮点数获得高精度。

decimal.Decimal('xxx') 提高浮点数精度

(3)复数

b=0或1时,不能省略

2、数字类型的操作&函数

(1)操作

// 整除

% 求余

整数和浮点数,结果为浮点数

整数/浮点数和复数,结果为复数

(2)函数

3、字符串类型

(1)转义符\n 换行

\\ 反斜杠

\' 单引号

\" 双引号

\t 制表符(TAB)

(2)索引

[序号]

(3)切片

[N: M]

[::-1]输出整个,-1表示从右往左,步长为1

(4)format的格式控制

:固定格式不变

宽度小于输入的宽度,不起作用

类型的f,指浮点数

4、字符串的操作&函数

(1)操作

x + y连接两个字符串x与y

x*n 或 n*x复制n次字符串x

x in s 判断x是否s的子串,返回T/F

(2)函数

len()

str() 返回任意类型的字符串形式

chr() 返回Unicode编码x对应的单字符 chr(65) #A

ord() 返回单字符表示的Unicode编码 ord("A") #65

hex() 返回十六进制的小写字符串

oct() 返回八进制的小写字符串

(3)处理方法

#转换成小写,是副本(原始string不变)

str.lower()

#转换成大写,是副本(原始string不变)

str.upper()

#根据sep被分割,可以空格或数字或字母,结果是列表数据

str.split(sep=None)

a = "i like ice cream"

a.split(" ") #['i', 'like', 'ice', 'cream']

#返回sub字符串出现的次数

str.count("sub")

#把old换成new

str.replace(old,new)

#字符串居中函数,fillchar默认空格,也可以设置填充如-*

str.center(width,fillchar)

#删除左侧和右侧的字符,不能删除中间

str.strip(chars)

#将str字符插入iter变量的元素之间

str.join(iter)

".".join("12345") #'1.2.3.4.5'

#查找字符c的位置,从第二个开始(不写默认从0)

s.find("c",2)

5、判断类型&类型转换

(1)判断类型

type()

(2)类型转换

eval() 字符串换成数字

int(x)将x转换为整数

float(x) 将x转换为浮点数

str(x) 将x转换为字符串

四、程序的控制结构

1、程序的基本结构(顺序结构、分支结构、循环结构)

break 结束循环;continue结束当前循环的当次循环

(1)分支结构

①单分支结构。多个条件用and/or

if :

语句块

②二分支结构 if-else

if :

else:

当和都只包含简单表达式时,可写作:

if else

③多分支结构 if-elif-else

if :

elif :

else:

(2)循环结构

是程序根据条件判断结果向后反复执行的一种运行方式,根据循环体触发条件不同,包括遍历循环和无限循环结构。

① 遍历循环

遍历结构可以是字符串、文件、range()函数或组合数据类型。字符串:

for in :

range()函数,可以指定语句块的循环次数:

for in range():

遍历循环的扩展模式:

当for循环正常执行之后,程序会继续执行else语句中内容。else语句只在循环正常执行之后才执行并结束,因此,可以在中放置判断循环执行情况的语句

for in :

else:

②无限循环 while

while :

(3)循环控制

break:跳出最内层for或while循环,脱离该循环后程序从循环后代码继续执行。

for i in "water":

if i == "t":

break

print(i, end="")

#wa

continue:结束当前当次循环,即跳出循环体中下面尚未执行的语句,但不跳出当前循环。

for i in "water":

if i == "t":

continue

print(i, end="")

#waer

·求和1~10质数,并输出非质数

s=0

for i in range(1,10):

for j in range(2,i):

if i%j==0:

print(i,"不是质数")

break

else:

s += i

print("1-10质数之和为:%d"%s)

2、异常处理try-except

(1)输入异常

try:

except:

(2)运行异常

五、函数和代码复用

1、函数的基本使用没有参数时也要保留圆括号

如果需要返回值,使用保留字return和返回值列表。函数可以没有return语句,函数体结束后会将控制权返回给调用者。

#定义

def ():

return

#调用

()

2、函数的参数传递

可选参数一般都放置在非可选参数的后面,即定义函数时,先给出所有非可选参数,然后再分别列出每个可选参数及对应的默认值。

def (, = ):

return def vfunc(a,b) 错误。*a为列表型变量,要放在后面。

参数名称传递(函数按照参数名称方式传递参数)

( = )

函数的返回值

return用来结束并将程序返回到函数被调用的位置继续执行。

使用return返回多个值时,可以用一个/多个变量保存结果。

3、变量的作用域

(1)局部变量

在函数内部使用的变量,仅在函数内部有效,当函数退出时变量将不再存在。

(2)全局变量

全局变量可以和局部变量同名

4、代码复用

六、组合数据类型(集合、序列、映射)

集合类型是一个具体的数据类型名称,而序列类型和映射类型是一类数据类型的总称

集合类型:元素集合,无序,相同元素在集合中唯一存在。

序列类型:是一个元素向量,元素之间存在先后关系,通过序号访问,元素之间不排他。 序列类型的典型代表是字符串类型和列表类型。

映射类型:是“键-值” 数据项的组合,每个元素是一个键值对,表示为(key, value)。 映射类型的典型代表是字典类型。

1、集合 {}

无序,没有索引和位置,元素可以动态增加or删除。不可重复。

元素类型:只能是固定数据类型:整数、浮点数、字符串、元组等。

可以print过滤重复元素。

(1)操作符

& #交集

| #并集

- #差集

^ #补集

(2)函数方法

S.add(x) #把数据项x增加到集合S(S必须要有数字)

S.remove(x) #如果x在集合S中,则移除;不在则产生异常

S.clear() #移除S中所有

len(S) #返回S元素个数

x in S

x not in S

2、序列类型 []

一维元素向量,存在顺序,通过序号访问。

数据可以是:字符串、列表、元组类型

序列类型使用相同的索引体系,即正向递增序号和反向递减序号

操作符和函数:

x in s

x not in s

s + t

s*n 或 n*s

s[i]

s[i:j]

s[i:j:k]

len(s)

min(s)

max(s)

s.index(x) #序列s中第一次出现元素x的位置

s.count(x) #序列s中出现x的总次数

(1)列表 []

可以通过list(x) 函数将集合或字符串类型转换成列表类型

ls.append(x) #只能增加1个元素

ls.insert(i,x) #在第i位置增加元素x

ls.clear()

ls.pop(i) #将第i项元素取出并删除元素

ls.remove(x) #将列表中出现的第一个元素x删除

ls.reverse() #列表ls中元素反转

del ls[1:] #从序号1开始全部删除(包括1)

ls.copy() #复制ls中所有元素生成一个新列表(清空ls不影响新的lt)

#使用索引配合等号(=)可以对列表元素修改

3、字典 {}

键-值,元素是key,value,元素之间无序。

键和值通过冒号连接,不同键值对通过逗号隔开。字典类型和集合类似,即键值对之间没有顺序且不能重复。字典各个元素并没有顺序之分。

(1)索引

利用键值对关系索引元素:

= []

索引和赋值(=)可以对字典的元素进行修改

大括号创建字典,通过索引和赋值可以增加元素

(2)操作函数

len(d)

dict()

(3)操作方法

d.keys() #返回所有键

d.values() #返回所有值

d.items() #返回素有键值对

d.get(key,default) #根据键查找返回值信息,有key就返回对应的值,否则就返回新的default

d.pop(key,default) #根据键信息查找并取出值信息,并从字典里删除对应的键值对

d.popitem() #随机取出一个键值对,以元组(key,value)形式返回。 取出后从字典中删除这个键值对

d.clear() #删除字典中所有键值对。保留变量。

七、文件和数据格式化

1、文件的使用

文件是存储在辅助存储器上的一组数据序列,可以包含任何数据内容。概念上,文件是数据的集合和抽象。

文本文件:由单一特定编码的字符组成,如UTF-8编码,内容容易统一展示和阅读

二进制文件:由比特0和比特1组成,文件内部数据的组织格式与文件用途有关。二进制是信息

按照非字符但特定格式形成的文件,例如,png格式的图片文件、avi格式的视频文件。

区别在于是否有统一的字符编码。

(1)打开

#t表示文本文件

f = open("a.txt","rt")

print(f.readline())

f.close()

#b表示二进制文件

f = open("a.txt","rb")

print(f.readline())

f.close()

打开模式

r #只读

w #覆盖写,不存在则创建,存在则覆盖源文件

x #创建写,不存在则创建,存在则异常

a #追加写,不存在则创建,存在则追加内容

b #二进制文件

t #文本文件

+ #与r/w/x/a一同使用,在原功能基础上增加读写功能

打开模式中,'r'、'w'、 'x'、 'b'可以和'b'、 't'、 '+'组合使用,形成既表达读写又表达文件模式的方式。

(2)文件的读取

读取一次后,无法再次读取相同内容

f.read(size=-1) #读入整个文件内容,字符串形式

f.readline(size=-1) #读入一行,字符串

f.readlines(hint=-1) #读入整个,列表

f.seek(offset) #f.seek() 能够移动读取指针的位置

f.seek(0)将读取指针移动到文件开头,f.seek(2)将读取指针移动到文件结尾。

遍历循环读取

f.open("a.txt","r")

for line in f:

print(line) #处理一行数据

f.close()

(3)写入

f.write(s)向文件写入字符串s,每次写入后,将会记录一个写入指针。该方法可以反复调用,将在写入指针后分批写入内容,直至文件被关闭。'\n' 记得写,换行。

f.writelines(lines)直接将列表类型的各元素连接起来写入文件f

2、数据的维度

一组数据在被计算机处理前需要进行一定的组织,表明数据之间的基本关系和逻辑,进而形成“ 数据的维度” 。根据数据的关系不同,数据组织可以分为:一维数据、二维数据和高维数据。

(1)一维数据(线性方式组织,e.g.列表,数组)

(2)二维数据(表格)

(3)高维数据(多层嵌套)

3、一维数据的处理

(1)存储

ls = ["我","喜欢","oreo"]

f = open("a.csv","w")

f.write(",".join(ls)+"\n") #以逗号分隔在csv格式里,把列表ls用join变成izi符串

f.close()

(2)处理:从CSV读入一维数据,并表示为列表对象

f = open("a.csv","r")

ls = f.read().strip('\n').split(",")

f.close()

print(ls)

4、二维数据的处理

(1)存储(二维数据存储为CSV)

f = open("a.csv","w")

for row in ls:

f.write(",".join(row)+"\n") #ls代表二维列表

f.close()

(2)处理(从CSV读入二维数据,并表示为二维列表对象)

f = open("a.csv","r")

ls = [] #创建新列表

for line in f:

ls.append(line.strip('n\').split(","))

f.close()

print(ls)

借助循环遍历实现对每个数据的处理,

for row in ls:

for item in row:

八、python计算生态

1、体育竞技实例

2、web页面元素提取

Web页面一般是html超文本标记语言,是一种对信息的标记语言,对Web的内容、格式进行描述。

九、turtle库

调用

import turtle

turtle.circle(200)

from turtle import *

circle(200)

import turtle as t

t.circle(200)

1、设置主窗体的大小和位置

turtle.setup(width, height, startx, starty)

2、画笔控制函数

#抬起画笔,移动画笔不绘制形状

turtle.penup turtle.up

#移动画笔绘制形状

turtle.pendown turtle.down

#设置画笔尺寸

turtle.pensize turtle.width()

e.g. turtle.width(25)

#设置画笔颜色

turtle.pencolor(colorstring) or turtle.pencolor((r,g,b))

#填充图形前

begin_fill()

#填充图形结束

end_fill()

#返回填充状态,T为填充,F为未填充

filling()

3、绘制

#前进distance

turtle.fd()

#向右旋转angle

right(angle)

向左旋转angle

left(angle)

#改变画笔方向(正东为0,正北为90)

turtle.seth(to_angle)

#根据半径r绘制extent角度的弧形(extent不设置or None则画整个圆)

turtle.circle(radius, extent = None)

十、random库

调用

from random import *

最基本的函数:random.random() #生成一个[0.0, 1.0)之间的随机小数输出一个6位数的验证码

ls =[]

for i in range(6):

num=random.randrange(0,10)

ls.append(str(num))

s="".join(ls) #为了输出是连续数字列表

print(s)

十一、time库

十二、第三方库

pip工具安装

pip install

1、pyinstaller

(1)打包

使用PyInstaller库对Python源1文件打包。最终在dist内生成exe文件,可直接执行

:\>Pyinstaller -F

2、jieba库

import jieba

(1)中文分词

jieba.lcut(s)#精准模式,返回列表

jieba.lcut(s, cut_all=True)#全模式(可能会重复)

jieba.lcut_for_search(s)#返回搜索引擎模式(先精确模式,再对长词进一步切分)

jieba.add_word() #增加新单词

(2)词云

调用

pip install wordcloud

from wordcloud import WordCloud

使用

t = "我喜欢冰淇淋,尤其是oreo"

words = jieba.lcut(txt) #精确分词

newtxt = ' '.join(words) #用空格拼接

wordcloud = WordCloud(font_path="msyh.ttc").generate(newtxt) #msyh 微软雅黑字体

wordcloud.to_file('1.png')

python123第k序元素查找_二级个人笔记相关推荐

  1. python123第k序元素查找_Python实现折半查找并用matplotlib实现动态过程可视化

    折半查找是算法中减治策略的基本例子,实现起来也很简单,但是在网上看到的图片教程不觉得很乾巴麽?? 在这里插入图片描述 这是一个简单的实现: def Reduction(lists, k): " ...

  2. python第k序元素查找列表_【Python】第8次练习:列表——程序填空题 -合并队列、列表元素零的移动、列表逆序输出、第K序元素查找...

    [Python]第8次练习:列表--程序填空题 -合并队列.列表元素"零"的移动.列表逆序输出.第K序元素查找 1.程序填空题 -合并队列 题目:某班男女两队同学各若干人,男生已按 ...

  3. python第k序列元素查找_【python】寻找数组中第k大的元素

    题目链接:https://www.nowcoder.com/question/next?pid=13956292&qid=298692&tid=26431616 方法一: 最简单直接的 ...

  4. python第k序列元素查找_python查找第k小元素代码分享 -电脑资料

    复制代码代码如下: # -*- coding: utf-8 -*- from random import randint from math import ceil, floor def _parti ...

  5. python第k序列元素查找_Python寻找第k小的元素

    更多: http://my.oschina.net/u/438371/blog/131956 1.[代码][Python]代码 # -*- coding: utf-8 -*- from random ...

  6. 快速排序_查找第k小元素

    快速排序_查找第k小元素 以下代码可以从数组a[]中找出第k小的元素. 它使用了类似快速排序中的分治算法,期望时间复杂度是O(N)的. 请仔细阅读分析源码,填写划线部分缺失的内容. 一个问题,快排你的 ...

  7. 网易_在数组中查找前K个元素

    笔试题,最后一题 查找网易云音乐中播放量最大的前K个歌曲. 换句话说,就是在数组中查找前K大元素. 大致有以下几个思路. 1.第一感觉就是对数组进行降序全排序,然后返回前K个元素,即是需要的K个最大数 ...

  8. 《编程之美》 查找最大(小)的k个元素

    http://blog.csdn.net/v_july_v/article/details/6370650 http://blog.csdn.net/insistgogo/article/detail ...

  9. java查找第k大的数字_查找数组中第k大的数

    问题:  查找出一给定数组中第k大的数.例如[3,2,7,1,8,9,6,5,4],第1大的数是9,第2大的数是8-- 思考:1. 直接从大到小排序,排好序后,第k大的数就是arr[k-1]. 2. ...

最新文章

  1. 2021-07-01带Left Join的SQL语句的执行顺序
  2. Linux运维:快速清空文本内容
  3. 解决GitHub报错:schannel:failed to receive handshake, SSL/TLS connection failed
  4. android10如何设置打开方式,Android启动方式
  5. java image类的值_关于在java中保存image类型的字段的问题
  6. 在React中处理事件
  7. 继续泼冷水 Ubuntu决定放弃支持安腾
  8. 3-4numpy聚合操作和arg(索引)运算和排序
  9. c++如何判断两个字符串是否相同?_链表 | 如何判断两个单链表(无环)是否交叉...
  10. Bailian2911 受限完全平方数【暴力】
  11. 你的主机中的软件中止了一个已建立的连接。_winscp中文版,winscp中文版软件的使用技巧...
  12. Win7 局域网内简单共享的设置
  13. Java编程题——简单下拉框二级联动
  14. java无经验_应届生没有项目经验怎么面试?(java篇)
  15. doc批量转成docx(doc batch convert docx)
  16. 【FOMO3d】 的隐藏彩(lou)蛋(dong)
  17. powershell 使用_如何使用PowerShell生成随机名称和电话号码
  18. 【大数据分析】2021“秋招”毕业生求职的网络舆论关注度分析
  19. OnMeasure()
  20. 期货外接看穿式技术方面问答总结

热门文章

  1. 【前端攻城狮之路】Angular篇
  2. [附源码]JAVA毕业设计税务缴纳管理系统(系统+LW)
  3. 第二届中国行业互联网大会暨CIO班十一周年年会首届阿拉善峰会圆满举行
  4. 删除照片恢复,最实用的方法快收藏起来!
  5. 彩色图像--色彩空间 HSI(HSL)、HSV(HSB)
  6. X86架构小机以何应对核心业务
  7. 解决xxx packages are looking for funding
  8. 拆解TL-NVR5108K硬盘录像机
  9. 三个小项目入门Go语言|字节青训营笔记
  10. [前端css-3] 实现图片卷帘效果,以及动画