Python基础知识

Python语言中,一切皆为对象,而每个对象都属于某个数据类型

python2与python3的不同(Print)

python没有考虑向下兼容,即python3不能不加修改地去运行一个用python2语法编写的程序

  1. python3中print是一个内置函数,有多个参数,而python2中print是一个语法结构;

  2. Python2打印时可以不加括号:print ‘hello world’, Python3则需要加括号 print(“hello world”)

  3. Python2中,input要求输入的字符串必须要加引号,为了避免读取非字符串类型发生的一些行为,不得不使用raw_input()代替input()

Python的主要优点

(语法简洁 跨平台 胶水语言 开源 强制可读 支持中文 支持面向对象和面向过程 类的 库丰富)

Python执行代码的两种方式:文件式和交互式

Python的书写规范(变量 标识符 保留字 内置函数 缩进)

Python有一个非常丰富的库,包括标准库和第三方库。以下是一些常用的库:

标准库

  1. math:提供数学函数和常量。
  2. datetime:提供日期和时间处理功能。
  3. os:提供操作系统相关的功能,如文件和目录访问。
  4. sys:提供Python解释器相关的功能和变量。
  5. json:提供JSON文件的读写功能。
  6. random:提供生成随机数的功能。
  7. re:提供正则表达式相关功能。

第三方库

  1. numpy:提供强大的数值计算功能,特别是对于矩阵和向量运算。
  2. pandas:提供数据分析和数据处理的功能。
  3. matplotlib:提供数据可视化功能,可以绘制各种图表。
  4. scikit-learn:提供机器学习算法和数据挖掘工具。
  5. tensorflowpytorch:提供深度学习的功能。
  6. requests:提供HTTP请求功能,可以用来爬取网页数据。
  7. flaskdjango:提供Web开发的功能。

Python的数据类型主要有以下几种:

  1. 数值型:包括整型(int)、浮点型(float)、复数(complex)和布尔型(bool)。
  2. 序列类型:包括不可变(字符串(str)、元组(tuple))和可变(列表(list))。
  3. 集合类型:包括集合(set
  4. 字典数据类型:dict。例如:{1: “one”, 2: “two”}

pow()-求幂次的函数

元组也称之为定值表,用于存储值固定不变的值表

s1=(1,2,3)

image-20230615224700014

列表也称之为表,用于存储其值可变的表

s2=[1,2,3]

字符串是包括若干字符的序列数据,支持序列数据的基本操作

s3=”Hello, world”

s3[:5] 输出 ‘Hello’

字典

image-20230615224923720

image-20230615225034314

image-20230615225123852

Python的书写规范主要遵循PEP 8(Python Enhancement Proposal 8),以下是一些基本的规范:

  1. 变量和标识符:变量名和标识符应该是小写的,如果由多个单词组成,应该用下划线分隔。例如:my_variable。类名应该使用驼峰命名法,即首字母大写,例如:MyClass
  2. 保留字:Python有一些保留字,这些词不能用作变量名或标识符。例如:and, as, assert, break, class, continue, def, del, elif, else, except, False, finally, for, from, global, if, import, in, is, lambda, None, nonlocal, not, or, pass, raise, return, True, try, while, with, yield
  3. 内置函数:Python有一些内置函数,例如:print(), len(), type(), str(), int(), float(), list(), dict(), set(), tuple(), range(), input(), open(), help(), dir(), abs(), sum(), min(), max(), round(), sorted(), reversed(), enumerate(), zip(), map(), filter(), reduce()等。尽量不要用这些函数名作为变量名,以免引起混淆。
  4. 缩进:Python使用缩进来表示代码块,通常使用4个空格的缩进。不同的缩进级别表示不同的代码块。例如:
1
2
def my_function():
print("Hello, world!") # 这行代码是my_function的一部分,所以它被缩进了4个空格

Python的缩进和注释:(选择填空判断)

严格缩进 可以通过什么样的方法来引入注释

单行注释:在注释文本前使用井号(#)

多行注释:在注释文本前后使用三个单引号(’’’)或三个双引号(”””)

Python的命名规则:

区分大小写 数字不能出现在首字符 中间不能出现空格

Python代码可以通过两种主要方式执行:文件式和交互式。

  1. 文件式(脚本模式):在这种模式下,你会将你的Python代码写入一个.py文件中,然后使用Python解释器来运行这个文件。例如,如果你有一个名为script.py的文件,你可以在命令行中输入python script.py来运行这个脚本。这种方式适合于运行较长的、需要保存的程序。
  2. 交互式(命令行模式):在这种模式下,你可以直接在Python的交互式解释器中输入并执行代码。你可以在命令行中输入python来启动Python解释器,然后在提示符>>>后面输入Python代码,按Enter键即可立即执行。这种方式适合于快速测试代码片段或进行简单的计算。

IPO描述(选择填空判断)

IPO是指 input process output

接收华氏温度和摄氏温度并相互转换的IPO描述是什么?

Input-输入:带华氏摄氏标志的温度值

Process-处理:根据温度标志选择适当的温度转换算法

Output-输出:带有摄氏华氏标志的温度值

numpy

numpy是第三方库,需要安装

内置方法

统计元素个数-np.size()

元素包含的字节长度-np.itemsize()

创建全为0的矩阵-zeros

全为1的矩阵-ones

单位矩阵-identity

更改维度-reshape

可以实现转置的操作(array.T np.transpose(array) array.swapaxes(0,1))

可以实现平铺的操作 (array.flatten() 和array.ravel(),它们的区别是前者修改之后不会改变原有矩阵的数据)

改变维度案例

1
2
3
4
5
6
7
8
9
10
import numpy as np

c = np.arange(1, 13).reshape([3, 4])
# array([[ 1, 2, 3, 4],
# [ 5, 6, 7, 8],
# [ 9, 10, 11, 12]])
print(np.sum(c, axis=0)) # axis=0 为按列求和,四列,每一列为(3, 1)
# [15 18 21 24]
print(np.sum(c, axis=1))
# [10 26 42]

image-20230615153534608

1
2
3
4
5
6
7
8
9
10
11
12
13
c = np.arange(1, 25).reshape([2, 3, 4])
# array([[[ 1, 2, 3, 4],
# [ 5, 6, 7, 8],
# [ 9, 10, 11, 12]],

# [[13, 14, 15, 16],
# [17, 18, 19, 20],
# [21, 22, 23, 24]]])

print(np.sum(c, axis=0)) # 将第0维累加, 也就是最终得到的维度是[3, 4]
# [[14 16 18 20]
# [22 24 26 28]
# [30 32 34 36]]

numpy广播

1
2
3
4
5
a = np.array([1, 2, 3])
b = np.array([[4, 5, 6], [7, 8, 9]])
a + b
# array([[ 5, 7, 9],
# [ 8, 10, 12]])

文件的读写

文件的分类(二进制文件和文本文件)

打开文件的两个参数 (mode 文件名)

模式:这是一个字符串,用于指定打开文件的模式。以下是一些常见的模式:

  • 'r':只读模式。这是默认模式,如果你不提供模式参数,open()函数会以只读模式打开文件。
  • 'w':写入模式。如果文件已存在,这将覆盖现有文件。如果文件不存在,将创建一个新文件。
  • 'a':追加模式。如果文件已存在,这将在文件的末尾添加新内容。如果文件不存在,将创建一个新文件。
  • 'x':创建模式。这将创建一个新文件。如果文件已存在,这将引发错误。
  • 'b':二进制模式。这用于非文本文件,如图像和可执行文件。
  • 't':文本模式。这用于文本文件。这是默认模式,如果你不提供模式参数,open()函数会以文本模式打开文件。

这些模式可以组合使用。例如,'rb'表示以二进制模式打开一个只读文件,'wt'表示以文本模式打开一个写入文件。

例如,如果你想以写入模式打开一个名为myfile.txt的文件,你可以这样做:open('myfile.txt', 'w')

打开文件相关的保留字:(with as)

在Python中,打开文件时常常会使用到withas这两个保留字。

  1. **with**:with语句在Python中被用于异常处理,它可以提供一种方式,使得代码更加简洁,同时在处理文件对象时,可以自动关闭文件。
  2. **as**:as在Python中是别名,用于创建一个别名。

当你打开一个文件时,你通常会这样做:

1
2
with open('myfile.txt', 'r') as file:
content = file.read()

在这个例子中,with open('myfile.txt', 'r')打开文件,并创建一个上下文。as file创建了一个别名file,这就是我们将要操作的文件对象。当with语句的代码块执行完毕后,文件会自动关闭,这就避免了我们忘记关闭文件的可能性,使得代码更加安全。

打开文件的读取方法包括:readall();read();readline();readlines()

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
# 打开文件
with open('myfile.txt', 'r') as fp:
# 检查文件是否已关闭
print(fp.closed) # 这将打印False,因为文件此时是打开的

# 打印被打开的文件的名称
print(fp.name) # 这将打印'myfile.txt'

# 使用readlines()得到一个包含换行符的所有行的列表
lines = fp.readlines()
print(lines) # 这将打印文件的所有行

# 注意:在with语句结束后,文件会自动关闭
print(fp.closed) # 这将打印True,因为文件此时已关闭

# 写入文件
with open('myfile.txt', 'w') as fp:
# 使用writelines()将一个列表写入文件中
lines_to_write = ['Hello, world!\n', 'This is a test.\n']
fp.writelines(lines_to_write)

# 使用seek()移动文件指针
with open('myfile.txt', 'r') as fp:
# 将文件指针移动到文件开头
fp.seek(0, 0) # 第一个0是偏移量,第二个0表示文件开头

# 将文件指针移动到当前位置的后5个字符
fp.seek(5, 1) # 第一个5是偏移量,第二个1表示当前位置

# 将文件指针移动到文件结尾
fp.seek(0, 2) # 第一个0是偏移量,第二个2表示文件结尾

这里是指本来fo的角标已经指向后面了,但是现在利用seek归零了

image-20230615183948454

image-20230615192437476

递归和循环

基本例题

image-20230615193024566

公约数公倍数

image-20230615194344985

斐波那契

image-20230615195723631

python库的安装

使用pip工具 pip install 库

pip可以实现安装扩展包 可以卸载扩展包 可以更新扩展包。

库的几种导入方法

from <库名> import <函数名>

from <库名> import *

turtle画图库的使用

import turtle

import numpy as np

turtle相应的方法:goto(),penup(), pendown(),pensize(), pencolor(), turtle.fd(), turtle.circle(), turtle.setheading(angle)-turtle.seth(angle)(angle: 行进方向的绝对角度), turtle.left(angle) turtle.right(angle)(同样是绝对角度)

使用turtle库中的turtle.fd()函数和turtle.seth()函数绘制一个等边三角形,边长为100

1
2
3
4
5
6
from turtle import * 
fd(100)
left(120)
fd(100)
left(120)
fd(100)

image-20230615202434215

选择题

image-20230615204107653

image-20230615220904593

或的话,数字越大越容易出,and的话有0则先0,无0则先数字大,False和True优先出True

image-20230615223124119

image-20230615224631116

简答题

保留字

image-20230615211529443

Python的保留字(也称为关键字)是预定义的、具有特殊含义的标识符。这些关键字不能用作变量名、函数名或任何其他标识符。以下是一些Python的关键字及其用法:

  1. and:逻辑与操作符。如果两个操作数都为真,则结果为真,否则为假。例如:if a and b:

  2. or:逻辑或操作符。如果两个操作数中至少有一个为真,则结果为真。例如:if a or b:

  3. not:逻辑非操作符。如果操作数为真,则结果为假,反之亦然。例如:if not a:

  4. ifelifelse:用于条件控制语句。例如:

    1
    2
    3
    4
    5
    6
    pythonCopy codeif a > b:
    print("a is greater than b")
    elif a == b:
    print("a is equal to b")
    else:
    print("a is less than b")
  5. forwhile:用于循环控制语句。例如:

    1
    2
    pythonCopy codefor i in range(5):
    print(i)

    1
    2
    3
    pythonCopy codewhile a < 5:
    print(a)
    a += 1
  6. breakcontinue:用于循环控制,break用于立即退出当前循环,continue用于跳过当前循环的剩余部分并进入下一次循环。

  7. def:用于定义函数。例如:def my_function():

  8. class:用于定义类。例如:class MyClass:

  9. tryexceptfinally:用于异常处理。例如:

    1
    2
    3
    4
    5
    6
    pythonCopy codetry:
    # try to execute some code
    except SomeException:
    # handle the exception
    finally:
    # this code will be executed no matter what
  10. importfrom:用于导入模块。例如:import mathfrom math import sqrt

  11. pass:一个空操作语句,用于在语法上需要一个语句,但程序需要什么都不做的情况。例如,在定义一个空函数或类时:def my_function(): passclass MyClass: pass

编程题

Eval

image-20230615211720034

格式化输出

image-20230615213028873

image-20230615214111088

字典和字符串实例

image-20230615225434074