绪言

写这个是为了帮助浙江考生进行学考复习 (仅限Python,其它内容自己背咯)。

看清楚了,是复习。初学的不一定看得懂。

初学者去找Runoob吧。

这个讲解肯定会比教材和老师的讲解更清晰和深入一点。读完了也能自己写代码。

Plus, 如果上课划水,但是多多少少听了一点,可以用这个帮你补齐少学的内容。

凡例

接下来的内容中,所有以$开头的字段都代表读者应该自己填写的内容。如$变量名称

需要注意的是,我在这里使用中文,并不代表着你可以在Python中使用中文。恰恰相反,在除了注释以外的地方,你都不应该使用中文,而注释最好也使用英文。

这是因为一些臭名昭著的编码问题

所有打*的内容为选学内容。

定义类型Number = int | long | float,即这三种都可以。

另外,以下代码的版本为Python 3.8因为你浙信息技术Outdated了,用3.11显得有点激进。

关于命名规范问题,类使用大驼峰(这里也没有讲到类吧)(e.g.ClassA),变量和函数全用小写、单词直接用下划线_分隔(e.g. a_number)。

类型

Python 是一个强类型语言,但是也是一个动态类型语言。这真让人头疼。

基础类型

  • int: 整型intager

  • long*: 长整型,也可以代表八进制和十六进制(e.g.51924361L)

  • float: 浮点数 小数

  • complex*: 复数 (e.g.9.322e-36j)

  • str: 字符串string “” ‘’ ‘’’’’’

字符串格式化:

1
2
3
4
print(key + " is " + str(value))
print("{} is {}".format(key, value))
print(f"{key} is {value}")
print("%s is %d" % (key, value))

类型强制转化

基础类型的同名函数可以用于类型转换。

e.g.

1
2
a_number: int = 114514
a_string: str = str(a_number) # "114514"

其它转换:

  • chr(x: int) -> str: 将一个整数(ASCII)转换为一个字符;
  • ord(x: str) -> int: 将一个字符转换为它的整数值(ASCII);
  • hex(x: int) -> str: 将一个整数转换为一个十六进制字符串
  • oct(x: int)-> str: 将一个整数转换为一个八进制字符串

多数据类型

list列表

定义:[$内容]

切片:the_list[$索引]

  1. 索引从0开始

  2. 写一个数,那就取出对应元素

  3. 写a:b取出从a到b的元素,输出为列表 取左不取右

  4. 逆取从-1开始

  5. 字符串相同

  6. a:b:c c为步长

    1
    2
    3
    4
    5
    6
    7
    8
    def slc(origin: list, a: int, b: int, c: int) -> list:
    out: list = []
    out.append(origin[a])
    p: int = a + c
    while p < b:
    out.append(origin[p])
    p += c
    return out

tuple元组

定义()

访问 (a,b)=(1,2)或a=(1,2)[0]

dict字典

定义{}

内容 键值对

访问 a_dict[$key]

Type Hint 类型注释*

如题目所说,这是一个注释,只是给读者和IDE看的,即使你填写了错误的类型或者没有遵守规范也不会报错。

写这个的目的是为了让阅读的人读的更清楚(当然还有IDE提示)。

格式是这样的:

1
2
3
4
5
6
7
# 变量
$变量名称: $类型
# 同时赋值
$变量名称: $类型 = $值
# 函数
def $函数名称($参数: $类型) -> $返回值类型 :
$函数内容

e.g.

1
2
3
4
var1: int = 114514
var2: str = "1919810"
def concat(num: int, string: str) -> str:
return str(num) + string

另外,没有返回值可以标注为None,任意类型标注为Any还不如不标

表达式

算数运算符

  • +: 加

  • -: 减

  • *: 乘

  • **: 乘方

  • /: 除法,结果是浮点数

  • //: 除法,结果向下取整

  • %: 求余

逻辑运算符

  • ==: 等于

  • !=: 不等于

  • >: 大于

  • >=: 大于等于

  • <: 小于

  • <=: 小于等于

  • and: 与 交集

  • or: 或 并集

  • not: 非 补集

  • in: 在。。。中

逻辑表达式

语句

函数

定义

def

调用

常用内建函数

print()

1
2
def print(self, *args, sep=' ', end='\n', file=None):
pass

range()

类似切片

len(x: List | Dict) -> int

求长度

abs(x: Number) -> Number

求绝对值。若参数为整数,返回值也为整数。

round(x: float, [,n: int]) -> Number

返回浮点数x的四舍五入值,如给出n值,则代表舍入到小数点后的位数。

max(x1: Number, x2: Number, …) -> Number

返回最大值。

min(x1: Number, x2: Number, …) -> Number

返回最小值。

条件语句

循环语句

for循环

while循环

break, continue和pass

模块

Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。

模块让你能够有逻辑地组织你的 Python 代码段。

把相关的代码分配到一个模块里能让你的代码更好用,更易懂。

模块能定义函数,类和变量,模块里也能包含可执行的代码。

– Runoob

导入

import pandas

import pandas as pd

import * from math

globals()*

globals函数返回一个dict,内容是当前全局定义的所有内容(包括变量、函数等)。

导入一个模块,可以理解为把对应的py文件运行一遍,然后把它的globals附加到当前globals里面。

直接导入,可以理解为把对应的全局内容附加到一个对象中。

import *,可以理解为把对应的全局内容附加到当前全局内容中。

常用模块

math

对于一些取整类函数参数使用整数类型没意义,因此标注为float

  • fabs(x: Number) -> float: 同abs(),但是返回的是浮点类型。

  • ceil(x: float) -> int: 向上取整。

  • floor(x: float) -> int: 向下取整。

  • exp(x: Number) -> float: 返回 $e^y$ 。

  • pow(x: Number, y: Number) -> float: 返回 $x^y$ 。

  • sqrt(x: Number) -> float: 返回 $\sqrt{x}$ 。

  • log10(x: Number) -> float: 返回 $\log{x}$ 。

pandas

Series

DataFrame

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import pandas

df: pandas.DataFrame = pandas.read_excel("1.xlsx")

print(
df.loc[1],

)

df.append()
df.concat()
df.drop() # axis,1=列,inplace
df.rename() # index,column,inplace
df.tail()
df.head()
a = df[df.[""] == ""]
# sum mean max min

matplot

这是个绘图库,学考仅用于展现pandas的数据。

dataframe.plot(“bar”)

dataframe.bar()

image

csv

只需要知道一个方法:

1
csv.reader(csv_file: TextIOWrapper) -> List[List[str]]

它需要一个用open方法打开的对象,返回一个已经解析的列表。

e.g.

csv文件:

1
2
l1.1,l1.2,l1.3
l2.1,l2.2,l2.3

读取:

1
# ...

文件

内置方法

它来自于io库,但是这些方法是默认导入(_io)的。

但是类型注释用的类型要显式导入。

open(file) -> TextIOWrapper

完整函数签名:

1
2
def open(file, mode='r', buffering=None, encoding=None, errors=None, newline=None, closefd=True):
pass

TextIOWrapper.read() -> str

TextIOWrapper.readline() -> str

TextIOWrapper.readlines() -> List[str]

模块方法