复制成功
请遵守本站许可
REPORT
Chapter_Post // Field_Report

Post_Ref: RL-PYTHON笔记

2026.04.08

Python笔记

Echo HaoRan
Echo HaoRan
#StudyProject
ANALYSIS

环境#

  • 解释器
    • Python 解释器
      • 纯净,占用空间少
    • Anaconda
      • Python 集成环境,包含常用的工具库
      • 也提供了常用的代码开发工具,体积较大

规则#

  • 严格区分大小写
  • 代码运行是至上而下的
  • 每一个不同的部分要注释
  • 引入工具包
    • import package
    • from xx import package:导入 package 包中的 xx
      • form os import getwd as gt:导入 os 且将 getwd 更名为 gt
    • import package as pk
  • 标识符
    • 不能用数字开头
    • 不能和关键词重名
    • 有字母下划线和数字组成
      • 关键词: [‘False’, ‘None’, ‘True’, ‘and’, ‘as’, ‘assert’, ‘async’, ‘await’, ‘break’, ‘class’, ‘continue’, ‘def’, ‘del’, ‘elif’, ‘else’, ‘except’, ‘finally’, ‘for’, ‘from’, ‘global’, ‘if’, ‘import’, ‘in’, ‘is’, ‘lambda’, ‘nonlocal’, ‘not’, ‘or’, ‘pass’, ‘raise’, ‘return’, ‘try’, ‘while’, ‘with’, ‘yield’]
  • 变量
    • print(s) : 不是将数据赋予变量,而是将变量指向了数据所在的存储地址
      • A[变量名] —> B[内存地址] —> C[实际数据]
      • 实际上是给C 实际数据贴上了一个A 标签
    • 局部变量:
      1. def func(): 定义函数
      2. b=3:函数中定义变量
    • 全局变量: a = l

对象#

  • 查看对象属性和具有的方法
    • dir(print)
      PRTCL // PYTHON
      import (os)
      dir (os)
  • 查看对象的内存地址
    • print{id(a)}
      PRTCL // PYTHON
      a = l
      print {id(a)}
  • 查看对象的类型
    • type(a)
      PRTCL // PYTHON
      type(a)
  • 查看对象的长度
    • len(a)
      PRTCL // PYTHON
      len("hello")
      #会输出 5
      #也可以输入函数,会输出函数对应值的长度

nput 输入的所有的值都会转化为str字符串#

PRTCL // PYTHON
name=input("请输入你的姓名:")
#在输入框中输入张三
print(name)
#会输出张三
  • 删除
    PRTCL // PYTHON
    del name
    #del + 函数名,直接将这个函从内存中删除
  • 生成序列
    • range
      PRTCL // PYTHON
      #range(start,stop[,step])
      #从 start 开始,默认是从 0 开始.
      #到 stop 结束,但不包括 stop
      #step 步长,默认为 1
      for i in range (5):
      #注意尾部的冒号
      print (i)
      #输出
      0
      1
      2
      3
      4

数据和容器#

  • Python 内置了 6 重类型
    1. Number数值
    2. String字符串
    3. List列表
    4. Tuple元素
    5. Dictionary字典
    6. Set集合
  • 数据的类型
    • 有序:可以使用下标 ( 索引 ) 访问元素
    • 无序:不可以使用下标 ( 索引 ) 访问元素
    • 可变:可以被修改
    • 不可变:不能修改
有序无序
可变列表字典.集合
不可变字符串.元组数值

数值#

类型范围
int 整数1,2(-∞,+∞)
float 浮点1.2,3.7E-2E-2含义为3.7-2 次方(-∞,+∞)
bool 布尔True,False[True值为 1,False值为 0]
complex 复数x+yjx 为实数所有有理数 & 无理数
y 为虚数无法定值的数,一般用i表示
%% 虚数无法单独存在,实数可以是 0%%
  • 复数:
    1. 不能单独存在,他们总是和一个值为 0.0 的实数部分一起构成一个复数
    2. 虚数部分不许有后缀 j 或者 J
    3. 实数部分和虚数部分都是浮点数 ^float
  • 运算符
    1. +
    2. -
    3. *
    4. / : Python2 5/2=2 Python3 5/2=2.5
    5. 取余 / 取整%,//
    6. 乘方 **
    7. 如果不同类型的数字进行运算,则结果为精度较高的那个类型 int+float=float
  • 函数
      • len()函数返回列表的总长度。
    1. max()函数返回列表中的最大值。
    2. min()函数返回列表中的最小值。
      PRTCL // PYTHON
      stock1_prices = [2.52, 2.44, 2.32, 2.41, 2.51, 2.50, 2.44]
      stock2_prices = [8.36, 8.31, 8.21, 8.21, 8.25, 8.11, 8.13]
      print(len(stock1_prices)) # Output: 7
      print(max(stock1_prices)) # Output: 2.52
      print(min(stock2_prices)) # Output: 8.11
    3. 求绝对值: abs(x);
    4. 四舍五入: round(x);
    5. 返回两个数值的商和余数: divmod(y,x); 商就是结果的整数,余数是除不尽的剩余
      PRTCL // PYTHON
      # Python 示例
      被除数 = 17
      除数 = 5
      = 被除数 // 除数 # 3
      余数 = 被除数 % 除数 # 2
      print(f"{}个整苹果,剩{余数}个")
      # 输出:3 个整苹果,剩 2 个
    6. 求取最大值 %% 最小值 %%: max min
    7. 求和: sum
  • math 模块
    1. Python math模块提供了许多对浮点数的数学运算函数。同时还提供了cmath模块,cmath模块的函数跟math模块函数基本一致,区别是cmath模块运算的是复数,math模块运算的是数学运算。
    • math模块常用方法:
      • 三角函数:sincostanh
      • 获取绝对值:fabs
      • 向上取整:ceil;向下取整:floor
      • 获取阶乘:factorial
      • x 的 y 次方:pow

字符串#

  • 特征
    • 有限的字符集合
    • 可以由汉字,数字,字母,符号组成
    • 一般有引号包裹
  • 创建方式
    • 单引号:`Python`
    • 双引号``Python``
    • 三引号 \```pyhton```\
    • 类型转换 str(obj) : 将现有的 转换为 字符串^str
      • 单引号和双引号一样,不能换行
      • 三引号创建的字符串可以换行
  • 转译字符
    PRTCL // PYTHON
    #print("张三:"老子是王五""")
    #现在的输出会报错
    #如果想要正常输出,需要添加转义符 \
    print("张三:\"老子是王五\"")
    #这样就能够正确输出
    #张三:"老子是王五"
    • 常见的转义符
      • \n换行
      • \t水平制表,跳到下一个 TAB 位置
      • \\代表一个反斜线\
      • \0空字符
      • \v垂直制表
        • 有字符串但是不想他转义,可以使用 r print(r"\a\b\c\d\e\f\g")
    • 字符串的运算
      PRTCL // PYTHON
      a="hello"
      b=" world"
      c=a+b
      #+ 号会拼接字符串
      #会输出 helloworld
      d="a"*2
      #* 号会将字符串乘以 2
      #会输出 aa
  • 索引 - 因为字符串是 有序数列 ,所以可以根据下表 ( 索引 ) 来访问 - 索引正向从 0 开始,倒向从-1 开始 - Str = "python"=> Str[0] => p
    • 切片通过索引获取多个值就叫切片
      • 批量获取(切片):str[a:b:c],a是起始元素的位置,b是终止元素的位置,c是步长。
      • a=0 b=n c=1时,可以简写为 str[::] 每两个取一个可以写为str[::2]
      PRTCL // PYTHON
      vowels = ['a', 'e', 'i', 'o', 'u']
      print(vowels[0 : 3])#从序号 0 到序号 3
      print(vowels[1 : 3])#从序号 1 到序号 3
      #所有切片 均不包含最后一位
      # Output:
      # ['a', 'e', 'i']
      # ['e', 'i']
    • 索引错误,常见错误 IndexError
      PRTCL // PYTHON
      Traceback (most recent call last):
      print(vowels[5])
      IndexError: list index out of range
  • 常用操作 ![Pasted image 20250601130719](/images/posts/Python 笔记 /Pasted image 20250601130719.png)

关系运算符#

  • ==等于
  • !=不等于
  • >大于
  • <少于
  • >=大于或等于
  • <=小于或等于

if else#

  • 可以在 and 之间选择性地添加一个或多个elif语句(“else if”的缩写),以提供额外的检查条件。有时两个语句根本不够。if``else

    PRTCL // PY
    if grade > 90:
    print('A')
    elif grade > 80:
    print('B')
    elif grade > 70:
    print('C')
    elif grade > 60:
    print('D')
    else:
    print('F')

    ** 注意:** 这些选项中只有一个会执行。


逻辑运算符#

逻辑运算符,也称为布尔运算符,用于组合并计算两个条件。它们是andornot运算符:

  • and True如果两个条件都满足则返回True,否则返回False
  • or True如果至少有一个条件满足True,则返回,False否则返回。
  • not True如果条件成立则返回False,反之亦然。
  • 以下是一些示例:
PRTCL // PYTHON
if hunger > 4 and anger > 1:
print('Hangry')

如果hunger变量大于 4_并且_变量anger大于 1,则程序打印“Hangry”。

PRTCL // PYTHON
if coffee > 0 or bubble_tea > 0:
print('😊')

如果coffee变量大于 0_或_变量bubble_tea大于 0,则程序打印笑脸。

PRTCL // PYTHON
if not tired:
print('Time to code!')

如果tired变量_不是_ True,则程序将打印“Time to code!” 那么你可能会想:andor如此相似,我该如何记住它们之间的区别呢?让我们用表格来解释一下:

一个BA 和 BA 或 B
FalseFalseFalseFalse
FalseTrueFalseTrue
TrueFalseFalseTrue
TrueTrueTrueTrue

While 循环#

  • 在编程中,循环用于重复执行一段代码,直到满足指定的条件。它是另一个非常强大的工具,被广泛使用!
  • 人们在提到循环时通常会使用通用术语“迭代”;迭代只是意味着“重复”。我们要学习的第一种环路是while环岛。你可以把它想象while成一个环形交叉路口。
  • 在深入研究循环之前while,让我们先看一个使用银行 ATM 的演示。创建一个enter_pin.py程序并输入以下内容:
PRTCL // PYTHON
print('BANK OF CODÉDEX')
#打印名称
pin = int(input('Enter your PIN: '))
#打印输入提示
while pin != 1234:
pin = int(input('Incorrect PIN. Enter your PIN again: '))
#循环比较 pin 是否和 1234 不相等 判断 True 还是 False
#不相等则提示再次输入
if pin == 1234:
print('PIN accepted!')
#一直循环到 pin 等于 1234 则输出文本

范围 range()#

  • 要循环执行一组代码指定次数,我们可以使用for循环和range()函数。 该range()函数返回一个数字序列。默认情况下,该序列从 0 开始,以 1 为增量,以指定的数字结束。
PRTCL // PYTHON
for i in range(6):
print(i)
  • i对于内的数字range(6)(即 0 到 5),打印数字i。 这将输出:
PRTCL // SH
Terminal window
0
1
2
3
4
5
  • 注意,它是如何停止在 5 处的,并且没有打印 6。这是因为range()实际上它在指定数字之前一个结束。
  • 也可以理解为,内存的起始符为 0 数字 i - 1 才是实际显示的最后数值

列表{}#

除了内置函数之外,Python 还有许多非常方便的内置列表方法。 以下是其中一些:

  • .append()方法将一个项目添加到列表的末尾。
  • .insert()方法将项目添加到特定索引。
  • .remove()方法根据值从列表中删除一个项目。
  • .pop()方法删除特定索引处的项目。 让我们以 DNA 序列为例!🧬
PRTCL // PYTHON
dna = ['AUG', 'AUC', 'UCG']
dna.append('UAA')
# ['AUG', 'AUC', 'UCG', 'UAA']
dna.insert(2, 'GAU')
# ['AUG', 'AUC', 'GAU', 'UCG', 'UAA']
dna.remove('AUC')
# ['AUG', 'GAU', 'UCG', 'UAA']
dna.pop(0)
# ['GAU', 'UCG', 'UAA']

内置函数和列表中的方法的区别在于,方法在我们创建的列表变量上使用点符号语法。内置函数可以自行调用,但方法总是附加到调用它们的列表变量上。 另一个显著的区别是,虽然并非所有内置函数都定义为适用于列表,但列表方法仅适用于列表。 以下是可保存在笔记中的所有 11 种列表方法:

列表方法描述
.append()将项目添加到列表末尾
.clear()从列表中删除所有项目
.copy()返回列表的浅拷贝
.count()返回值在列表中出现的次数
.extend()通过扩展将另一个列表附加到当前列表
.index()返回列表内值的索引
.insert()在列表中的指定位置插入一项
.pop()从列表中的指定位置删除一项
.remove()根据项目的值从列表中删除项目
.reverse()反转列表
.sort()对列表进行排序

循环运算案例#

Fizz Buzz是一款儿童文字游戏,用来教除法。它也是无数公司经典的技术面试题。🐝

eVVmz5n

虽然这项挑战对于经验丰富的程序员来说可能很简单,但它的目的是淘汰 90% 无法创造性地运用编程知识解决新问题的求职者。想试试吗?

创建一个fizz_buzz.py程序,输出从 1 到 100 的数字。

问题在于:

  • 对于 3 的倍数,打印“Fizz”而不是数字。
  • 对于 5 的倍数,打印“Buzz”而不是数字。
  • 这是棘手的部分:对于 3_和_5 的倍数,打印“FizzBu​​zz”。

输出应如下所示:

PRTCL // OUTPUT
1
2
Fizz
4
Buzz
Fizz
7
8
Fizz
Buzz
11
Fizz
13
14
FizzBuzz
...

答案:

PRTCL // PYTHON
fizz_buzz.py
for i in range(1, 101):
grade = ""
if i % 3 == 0:
grade += "Fizz"
if i % 5 == 0:
grade += "Buzz"
else:
print(grade or i)
# 巧用 or 短路特性

定义一个函数#

那么我们如何从头创建一个函数呢? 用户定义函数是我们自己定义的用于执行特定任务的函数,它是一个两步过程:1️)定义和 2️)调用。 要定义一个函数,我们需要一个函数定义。函数定义以关键字开头def,后跟函数名、一对括号和一个冒号(按此顺序)。 函数定义如下:

PRTCL // PYTHON
def name():
# The code inside
  • 关键字def
  • 函数名称,后跟一对括号()
  • 冒号:。 函数内部的代码称为函数体。与if语句和while循环一样,函数内部的代码必须缩进。 ** 注意:函数的常见命名约定是snake_case 假设我们要创建一个名为的函数say_hello()
PRTCL // PYTHON
def say_hello():
print('Howdy! 🤠')
print('How are you?')

我们刚刚定义了一个打印出两个问候语的函数! 定义函数是创建函数的第一步,但这并不意味着 Python 会自动运行函数体中的代码。我们如何让 Python 知道我们想要执行函数体呢? 我们需要_调用_该函数!

调用函数#

调用一个函数,我们在代码中的某处使用函数名称后跟括号:

PRTCL // PYTHON
def say_hello():
print('Howdy! 🤠')
print('How are you?')
say_hello()

这将执行say_hello()一次该功能! 因此输出将是:

PRTCL // PYTHON
Howdy! 🤠
How are you?

我们也可以多次调用一个函数。例如:

PRTCL // PYTHON
def say_hello():
print('Howdy! 🤠')
print('How are you?')
say_hello()
say_hello()
say_hello()

这将执行该say_hello()函数三次! 因此输出将是:

PRTCL // BASH
Terminal window
Howdy! 🤠
How are you?
Howdy! 🤠
How are you?
Howdy! 🤠
How are you?

现在轮到您在程序中定义和调用函数了!


random 随机:#

  • random()
    生成 (0.0, 1.0) 范围内的随机浮点数
  • uniform(a, b)
    生成 (a, b) 范围内的随机浮点数
  • choice(seq)
    从非空序列中随机选择一个元素
  • sample(seq, k)
    从序列中随机选择 k 个不重复的元素
  • shuffle(seq)
    原地打乱序列顺序

函数:#

范围#

假设我们在函数体内创建了一个变量。我们可以在函数体外使用它吗?好吧,我们来看一下。 定义一个名为的函数并在其外部add()打印变量:answer

PRTCL // PYTHON
def add(x, y):
answer = x + y
return answer
print(answer)

当我们运行此代码时,我们会收到一个错误:

PRTCL // OUTPUT
NameError: name 'answer' is not defined

这是由于所谓的范围。 范围决定了变量在程序中可见且可以使用的位置。 范围有两种类型:

  • 该变量的作用域answer仅在add()函数内部,是局部变量,属于函数局部作用域add()
  • 现在,在函数外部创建的变量称为全局变量,属于全局范围,这意味着它们可以被每个函数使用。 让我们尝试将answer变量设置为全局变量(函数外部):
PRTCL // PYTHON
answer = 0
def add(x, y):
answer = x + y
return answer
add(3, 4)
print(answer)

输出将不再是错误!

PRTCL // BASH
Terminal window
0

注意,answer不是 7,而是 0,因为如果我们在函数内部创建一个同名变量,它将是局部变量,只能在函数内部使用。同名的全局变量将保持全局变量状态,并保持其原始值。

返回#

我们了解到函数可以接受输入,但你知道函数也可以有输出吗?事实上,每个 Python 函数都有一个输出! 该return关键字用于终止函数并输出一个值:

PRTCL // PYTHON
def function_name():
# The code inside
return value

当我们不添加它时,Python 将隐式返回默认值None作为返回值。 当我们_确实_想明确说明时:

PRTCL // PYTHON
def add(x, y):
answer = x + y
return answer

所以增加了一个return关键字,再加上我们想要输出的变量。 现在,当我们调用该函数时,将会有一个我们可以玩的输出:

PRTCL // PYTHON
total = add(4.99, 9.99) # total is 14.98

这意味着我们实际上可以打印出一个函数调用!💡

PRTCL // PYTHON
print(add(3, 4)) # Same thing as print(7)
print(add(1, 5)) # Same thing as print(6)
print(add(5, 3)) # Same thing as print(8)

这里,add()函数返回一个值,并且该返回值是该print()函数的一个参数。 输出将是:

PRTCL // BASH
Terminal window
7
6
8

** 注意:当到达某个return语句时,Python 将停止当前函数的执行,并将值发送到调用该函数的位置。

打印与返回#

现在您可能想知道,为什么我们要返回值而不是打印它们? 嗯,print()函数可以位于程序中的任何位置 - 函数内部或外部,而return函数的输出;您不需要打印出返回的任何内容。 根据经验法则:

  • return当您想要将值从代码中的一个点发送到另一个点时,请在函数中使用。
  • print()当您想要向用户显示一些文本时,请在函数中使用。

模块#

PRTCL // PYTHON
import random, math #也可以使用两行分别引入
#import math
#引入随机模块
dice = [1,2,3,4,5,6]
#指定一个值的随机范围
print(random.choices(dice))
#使用.choices(*) 来指定随机那个项
print(random.choices(dice,k=3))
#添加 k=*,来指定随机数量
R P
Rhine Lab Pioneer Division
Auth_Verified: 2026.04.08
// END OF POST

订阅

通过 RSS 订阅本站,新文章发布时第一时间收到通知。

Follow
Classified
Chapter_06
Protocol_Ref: CC-BY-NC-SA-4.0

Python笔记

Author: CHONGXIReleased: 2026.04.08

Licensed under CC BY-NC-SA 4.0

评论

© 2025-2026 EchoSpace
Powered by Astro & echohaoran Non-Collaborative_Entity // Protocol_V.4.21