小白python零基础学习--AI辅导系列

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

DAY1记录

01 python是解释型语言啥意思?

你想搞懂 “Python 是解释型语言” 这个概念,核心就是要明白 Python 代码不是先整体翻译成机器能直接懂的语言,而是边翻译、边执行,这和咱们日常说话交流的模式很像,特别好理解。

一、用大白话解释 “解释型语言”

先给你一个最通俗的比喻:

  • 解释型语言(Python):就像你请了一位翻译,你说一句中文(写一行 Python 代码),翻译立刻翻成英文(机器能懂的指令)并告诉对方(电脑执行),说完一句翻一句、执行一句。哪怕中间某句话说错了(代码有 bug),翻译翻到这句才会告诉你 “翻不了”(程序报错),前面的话已经执行完了。

  • 对比编译型语言(比如 C 语言):就像你先把整段中文稿子(全部代码)交给翻译,翻译先把所有内容一次性翻成英文(编译成可执行文件),确认没错误后,再把完整的英文稿交给对方(电脑执行)。如果中间有一句话错了,整份稿子都翻不了,更没法执行。

二、Python “解释执行” 的具体过程(新手版)

你写的 Python 代码是纯文本(比如.py文件),电脑本身看不懂,需要靠 “解释器”(Python 安装包自带的工具)来处理:

  1. 你运行python 你的代码.py时,解释器启动;

  2. 解释器逐行读取你的代码,先检查语法有没有错(比如少写冒号、缩进错了);

  3. 语法没错的话,立刻把这一行代码翻译成电脑能执行的字节码(中间语言);

  4. 字节码交给 Python 虚拟机(PVM)执行,执行完再处理下一行;

  5. 如果某一行出错(比如把数字和字符串相加),程序会在这一行停止,告诉你错误原因,前面的代码已经执行过了。

三、简单代码示例,直观感受执行特点

比如你写这段 Python 代码:

python

运行

# 示例代码:逐行执行,出错停在错误行
print("第一行代码执行了")  # 第一行
a = 10 + "20"  # 第二行:数字和字符串相加,语法没错但逻辑错
print("第三行代码执行了")  # 第三行

运行结果:

plaintext

第一行代码执行了
Traceback (most recent call last):
  File "test.py", line 3, in <module>
    a = 10 + "20"
TypeError: unsupported operand type(s) for +: 'int' and 'str'

能明显看到:第一行正常执行并打印了内容,第二行出错后,第三行完全没执行 —— 这就是 “逐行解释、逐行执行” 的核心特征。

四、解释型语言的优缺点(新手需要知道)

优点(对新手友好):

  1. 入门简单:写完代码直接运行,不用额外的 “编译” 步骤,改一行代码就能立刻看效果;

  2. 跨平台:一份 Python 代码,在 Windows、Mac、Linux 上都能直接运行(只要装了 Python 解释器);

  3. 调试方便:出错时能精准定位到哪一行,新手容易排查问题。

缺点(了解即可):

  1. 运行速度比编译型语言(如 C、C++)慢:因为每次运行都要逐行翻译,而编译型语言只翻译一次;

  2. 依赖解释器:运行 Python 代码的电脑必须装 Python 解释器,不像编译型语言能生成独立的可执行文件。

总结

  1. 核心定义:Python 作为解释型语言,代码不提前整体编译,而是由解释器逐行翻译、逐行执行;

  2. 新手体感:写完代码直接运行,出错只影响当前行及后续,调试和修改都很灵活;

  3. 关键特点:入门易、跨平台,但运行速度略慢,这也是 Python 适合新手入门的重要原因。

02 蛇形命名法和驼峰命名法是啥玩意?

这两种都是编程里给变量 / 函数 / 类起名的规则,核心区别是连接单词的方式不同,而且 Python 有明确的使用规范,记准了写代码会更专业、易读。

一、先直观看懂两种命名法(举例子最容易懂)

表格

命名法类型

核心规则

例子(描述 “用户名称”)

例子(描述 “获取用户信息”)

蛇形命名法(snake_case)

1. 全部小写2. 单词之间用下划线 _ 连接

user_name

get_user_info

驼峰命名法

小驼峰(lowerCamelCase)

1. 第一个单词小写2. 后续单词首字母大写

userName

getUserInfo

大驼峰(UpperCamelCase/PascalCase)

1. 所有单词首字母大写2. 无下划线

UserName

GetUserInfo

二、Python 里的官方使用规范(小白必记)

Python 有个通用的编码规范叫 PEP 8,明确规定了不同场景该用哪种命名法,不用自己瞎猜:

  1. 蛇形命名法(snake_case) → 用在这些地方(90% 的日常使用场景):

    • 变量(比如 file_patherror_count

    • 函数(比如 read_log_file()backup_folder()

    • 模块 / 包名(比如 import os_path

    示例代码:

    python

    运行

    # 变量用蛇形
    server_ip = "192.168.1.100"
    backup_path = "D:/运维备份"
    
    # 函数用蛇形
    def check_service_status(url):
        # 函数内部逻辑
        return True
    
  2. 大驼峰命名法(PascalCase) → 只用来定义类(小白前期用得少,但要知道):

    • 类名(比如 ServerMonitorExcelAnalyzer

    示例代码:

    python

    运行

    # 类名用大驼峰
    class ServerMonitor:
        # 类里的方法还是蛇形
        def get_service_info(self):
            pass
    
  3. 小驼峰命名法 → Python 里几乎不用!这种命名法主要用在 Java/JavaScript 等语言里,Python 官方不推荐,小白直接忽略即可。

三、为什么要遵守命名规则?(小白理解这一点就够)

  • 自己看:过 1 个月再翻代码,check_service_statuscheckservicestatus 一眼就能看懂意思;

  • 别人看:如果需要和同事协作,统一的命名规则能让对方快速理解你的代码;

  • 符合规范:后续学框架 / 看源码时,所有 Python 项目都按这个规则写,你能快速看懂。

总结

  1. 核心区别:蛇形用「小写 + 下划线」连接单词,驼峰用「单词首字母大写」连接(分大小驼峰);

  2. Python 重点记:变量 / 函数用蛇形(snake_case),类用大驼峰(PascalCase),小驼峰几乎不用;

  3. 小白落地:写脚本时所有变量 / 函数都按蛇形来,比如之前的 log_file_pathbackup_folder,不用纠结其他写法。

03 单引号,双引号,三引号用法区别

一、先看直观对比(小白一眼懂)

表格

引号类型

写法

核心特点

适用场景

单引号

'内容'

最基础,内部不能直接放单引号

短字符串、无特殊符号的场景

双引号

"内容"

和单引号功能完全一样,内部不能直接放双引号

字符串里要包含单引号时(不用转义)

三引号

'''内容'''"""内容"""

1. 可跨多行2. 内部可直接放单 / 双引号3. 可当注释用

多行文本、字符串含大量引号、写注释

二、逐个讲清楚(配小白能跑的代码)

1. 单引号(' '):最基础的字符串定义

  • 规则:用单引号包裹字符串,内部不能直接写单引号(否则 Python 会认错结束位置);

  • 示例:

python

运行

# 正常使用(无内部引号)
name = '运维脚本'
log_key = 'ERROR'
print(name)  # 输出:运维脚本

# ❌ 错误:内部直接放单引号会报错
# error_str = '报错信息:服务'异常''  # Python会以为字符串到“服务”就结束了

# ✅ 正确:需要用反斜杠转义(\)
error_str = '报错信息:服务\'异常\''
print(error_str)  # 输出:报错信息:服务'异常'

2. 双引号(" "):和单引号等价,解决内部单引号问题

  • 规则:功能和单引号完全一样,内部可直接放单引号(不用转义),这是它最常用的优势;

  • 示例:

python

运行

# 替代单引号的基础用法
file_path = "D:/运维日志/server.log"
print(file_path)  # 输出:D:/运维日志/server.log

# ✅ 核心优势:内部放单引号不用转义(适合运维场景的日志/报错描述)
error_str = "报错信息:服务'异常'"
print(error_str)  # 输出:报错信息:服务'异常'

# ❌ 错误:内部直接放双引号会报错
# msg = "提示:"路径不存在""

# ✅ 正确:内部双引号需要转义
msg = "提示:\"路径不存在\""
print(msg)  # 输出:提示:"路径不存在"

3. 三引号(''' ''' 或 """"""):多行字符串神器

  • 规则:① 可跨多行,不用手动加换行符(\n);② 内部可直接放单 / 双引号,完全不用转义;③ 也能当多行注释用(Python 里 #是单行注释,三引号常用作函数 / 类的说明注释);

  • 示例(运维场景超实用):

python

运行

# 场景1:多行日志/报告内容(不用拼换行符)
report = '''
【运维巡检报告】
时间:2026-02-26
状态:
  - 服务1:正常
  - 服务2:异常(端口'8888'未监听)
'''
print(report)  # 输出会保留换行和格式,和写的样子完全一致

# 场景2:内部放单/双引号都不用转义(适合复杂文本)
config = """
[server]
port = 8080
desc = "用户服务"(监听'0.0.0.0')
"""
print(config)

# 场景3:作为多行注释(函数/类的说明)
def backup_folder(source, target):
    """
    备份指定文件夹的函数(这是三引号写的注释)
    参数:
        source: 要备份的文件夹路径
        target: 备份存储目录
    返回:
        布尔值,备份成功返回True
    """
    return True

三、小白怎么选?(记住 3 个简单规则)

  1. 写单行短字符串:单引号 / 双引号随便用(比如 file_name = 'log.txt'file_name = "log.txt");

  2. 字符串里要包含单引号:优先用双引号(比如 "服务'异常'"),避免写转义符;

  3. 字符串要跨多行 / 包含大量引号:直接用三引号(比如运维报告、配置文本)。

DAY2记录

01 is== 的区别

Python 中 is== 的区别,核心结论先告诉你:== 比较的是值是否相等,而 is 比较的是内存地址是否相同(即是否是同一个对象)。下面我会用通俗的语言和示例帮你彻底理解。

一、核心定义与本质区别

表格

运算符

比较目标

底层原理

通俗理解

==

两个对象的是否相等

调用对象的 __eq__() 方法

“长得一样吗?”

is

两个对象的身份是否相同

比较对象的 id()(内存地址)

“是不是同一个东西?”

二、代码示例:直观理解

基础示例(值相等但身份不同)

# 创建两个值相同但内存地址不同的列表
a = [1, 2, 3]
b = [1, 2, 3]

# == 比较值:相等,返回True
print(a == b)  # 输出:True

# is 比较内存地址:不同,返回False
print(a is b)  # 输出:False

# 验证id(内存地址)不同
print(id(a))  # 例如:140673251234560
print(id(b))  # 例如:140673251234624

02 字符串格式化常用的3种方法

name = "Alice"
age = 10

# 方法1:f-string(推荐)
print(f"my name is {name},my age is {age}.")

# 方法2:format()
print("my name is {},my age is {}.".format(name, age))

# 方法3:%格式化(老式)
print("my name is %s,my age is %d" % (name, age))

运行结果:三行都会输出 my name is Alice,my age is 10.

总结

  1. f-string(加 f 的写法):最简单、最推荐,直接{变量名}引用,不用记占位符;

  2. format () 方法:需要把变量按顺序填在format()里,别错把变量名写成字符串(比如 "name");

  3. % 格式化:老式写法,必须把要替换的变量用()包起来(元组),否则会报错;

  4. 新手优先用f-string,少踩坑、写起来最快。

03 python常用的10个内置函数

最常用、最实用的 10 个内置函数,每个都用 “一句话说明 + 小白能懂的代码示例” 讲解,全程避开复杂概念:

先明确核心:内置函数

内置函数是 Python 自带的、不用导入任何模块就能直接用的函数,比如print()len(),是新手最常接触的基础工具。


一、最基础必学(5 个)

1. print () — 输出内容(最常用)

作用:把内容打印到屏幕上

print("hello")          # 输出:hello
print("名字:", "Alice") # 输出:名字: Alice
print(10 + 20)          # 输出:30(支持计算)

2. len () — 统计 “长度 / 个数”

作用:统计字符串、列表、字典等的元素个数 / 长度

print(len("hello"))     # 输出:5(字符串有5个字符)
print(len([1,2,3]))     # 输出:3(列表有3个元素)
print(len({"a":1, "b":2}))  # 输出:2(字典有2个键值对)

3. type () — 查看数据类型

作用:返回变量 / 数据的具体类型(小白排错常用)

print(type(10))         # 输出:<class 'int'>(整数)
print(type("abc"))      # 输出:<class 'str'>(字符串)
print(type([1,2]))      # 输出:<class 'list'>(列表)

4. input () — 获取用户输入

作用:暂停程序,等待用户输入内容,返回字符串类型

name = input("请输入你的名字:")  # 运行后会提示输入,输入后赋值给name
print("你好,", name)            # 输出:你好,XXX(XXX是你输入的内容)

# 注意:输入数字需要转类型
age = int(input("请输入年龄:"))  # 转成整数
print(age + 1)                  # 可以做数字计算

5. range () — 生成数字序列(循环常用)

作用:生成指定范围的整数序列,常和 for 循环搭配

# 用法1:range(结束值) → 从0到结束值-1
for i in range(3):
    print(i)  # 输出:0、1、2

# 用法2:range(起始值, 结束值) → 从起始值到结束值-1
for i in range(2, 5):
    print(i)  # 输出:2、3、4

# 用法3:range(起始值, 结束值, 步长)
for i in range(0, 10, 2):
    print(i)  # 输出:0、2、4、6、8

二、常用进阶(5 个)

6. bool () — 判断 “真 / 假”

作用:把数据转成布尔值(True/False),空 / 0 为 False,其他为 True

print(bool(0))          # 输出:False
print(bool(""))         # 输出:False
print(bool([1,2]))      # 输出:True
print(bool(None))       # 输出:False(None代表空)

7. int ()/float ()/str () — 类型转换

作用:把数据转换成整数、浮点数、字符串

# 转整数
print(int("123"))       # 输出:123(字符串转整数)
print(int(3.9))         # 输出:3(浮点数转整数,只取整数部分)

# 转浮点数
print(float("3.14"))    # 输出:3.14(字符串转浮点数)
print(float(10))        # 输出:10.0(整数转浮点数)

# 转字符串
print(str(100))         # 输出:"100"(数字转字符串)
print(str([1,2]))       # 输出:"[1, 2]"(列表转字符串)

8. max ()/min () — 找最大 / 最小值

作用:从多个数字 / 列表中找最大、最小值

print(max(1, 5, 3))     # 输出:5
print(min([10, 2, 8]))  # 输出:2
print(max("abc"))       # 输出:"c"(字符串按字母顺序比)

9. sum () — 求和

作用:计算数字列表 / 序列的总和

print(sum([1,2,3]))     # 输出:6
print(sum(range(1, 11)))# 输出:55(1到10的和)

10. sorted () — 排序

作用:对列表、元组等排序,返回新的排序列表(不修改原数据)

nums = [5, 2, 8, 1]
print(sorted(nums))     # 输出:[1,2,5,8](默认升序)
print(sorted(nums, reverse=True))  # 输出:[8,5,2,1](降序)

# 字符串排序(按字母)
print(sorted(["b", "a", "c"]))  # 输出:['a','b','c']

总结

  1. 基础必学:print()(输出)、len()(统计长度)、type()(查类型)、input()(获取输入)、range()(生成序列);

  2. 进阶常用:bool()(判真假)、类型转换(int/float/str)、max()/min()/sum()(数值计算)、sorted()(排序);

  3. 所有内置函数都不用导入模块,直接写函数名就能用,是 Python 最基础、最核心的工具。

DAY3记录

01 函数中 *args(可变参数)和 **kwargs(关键字可变参数)区别

核心区别与用法

1. 可变参数 (*args)

  • 本质:接收任意数量的位置参数,并将它们打包成一个元组 (tuple)

  • 特点:参数没有名称,仅按顺序接收值。

  • 示例代码

def sum_numbers(*args):
    # args 是一个元组,比如调用时传入 1,2,3,args 就是 (1,2,3)
    total = 0
    for num in args:
        total += num
    return total

# 调用示例
print(sum_numbers(1, 2, 3))  # 输出:6
print(sum_numbers(10, 20))   # 输出:30

2. 关键字可变参数 (**kwargs)

  • 本质:接收任意数量的关键字参数key=value 形式),并将它们打包成一个字典 (dict)

  • 特点:参数必须有名称(键),值和键一一对应。

  • 示例代码

def print_info(**kwargs):
    # kwargs 是一个字典,比如调用时传入 name="张三", age=20,kwargs 就是 {"name":"张三", "age":20}
    for key, value in kwargs.items():
        print(f"{key}: {value}")

# 调用示例
print_info(name="张三", age=20, city="北京")
# 输出:
# name: 张三
# age: 20
# city: 北京

3. 两者结合使用

可以同时使用 *args**kwargs,接收任意位置参数和关键字参数,这也是 Python 中 “万能参数” 的常见写法:

python

运行

def func(*args, **kwargs):
    print("位置参数元组:", args)
    print("关键字参数字典:", kwargs)

func(1, 2, name="李四", score=90)
# 输出:
# 位置参数元组: (1, 2)
# 关键字参数字典: {'name': '李四', 'score': 90}

总结

  1. 数据类型不同*args 打包成元组**kwargs 打包成字典

  2. 传参形式不同*args 接收无名称的位置参数(如 1,2,3),**kwargs 接收有名称的关键字参数(如 name="张三")。

  3. 核心用途*args 解决 “不确定要传多少个位置参数” 的问题,**kwargs 解决 “不确定要传多少个关键字参数” 的问题。

您可能感兴趣的与本文相关的镜像

Python3.8

Python3.8

Conda
Python

Python 是一种高级、解释型、通用的编程语言,以其简洁易读的语法而闻名,适用于广泛的应用,包括Web开发、数据分析、人工智能和自动化脚本

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值