热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

Python第三天学习笔记

本文详细介绍了Python编程的第三天学习内容,包括字符编码、文件处理以及函数的基本概念和使用方法。

本文由编程笔记小编整理,旨在介绍 Python 第三天学习的相关知识点,帮助读者深入理解 Python 编程的核心概念。


目录

一、字符编码
  a.字符编码基础
  b.字符编码的工作原理
  c.文本编辑器与字符编码
  d.程序执行与字符编码
二、文件处理
  1.文件处理的基本流程
  2.文件打开模式详解
  3.文件内的光标控制
  4.上下文管理器的使用
三、函数
  1.数学函数与 Python 函数的区别
  2.使用函数的优势
  3.函数与过程的区别
  4.函数参数详解
  5.函数的返回值
  6.自定义函数的创建
  7.函数的调用方式


一、字符编码

a.字符编码基础
字符编码是计算机用于识别和处理字符的一套规则。每种字符集都有其对应的编码方式,常见的编码方式有 ASCII、UTF-8 等。

b.字符编码的工作原理
计算机只能处理数字,因此需要将字符转换为数字才能进行处理。这个转换过程就是通过字符编码来实现的。例如,'A' 在 ASCII 编码中对应的数字是 65。

c.文本编辑器与字符编码
为了防止文件出现乱码,文本编辑器在保存文件时会指定一种编码方式。打开文件时,也应使用相同的编码方式,否则可能会导致乱码。

d.程序执行与字符编码
Python 解释器在执行脚本时,会根据文件头部的编码声明(如 #coding:utf-8)来读取文件内容。如果未指定编码,默认情况下 Python 2 使用 ASCII 编码,Python 3 使用 UTF-8 编码。


二、文件处理

1.文件处理的基本流程
文件处理的基本步骤包括:打开文件、读写文件、关闭文件。这些操作可以通过文件句柄来完成。

f = open('file.txt', 'r')  # 打开文件
cOntent= f.read() # 读取文件内容
print(content) # 输出文件内容
f.close() # 关闭文件

2.文件打开模式详解
文件打开模式决定了文件的读写方式。常见的模式有:
- 'r': 只读模式,文件必须存在。
- 'w': 只写模式,如果文件不存在则创建,存在则清空内容。
- 'a': 追加模式,如果文件不存在则创建,存在则在末尾追加内容。
- 'r+': 读写模式,文件必须存在。
- 'w+': 读写模式,如果文件不存在则创建,存在则清空内容。
- 'a+': 读写模式,如果文件不存在则创建,存在则在末尾追加内容。
- 'b': 以二进制方式操作文件。

3.文件内的光标控制
可以使用 `seek` 方法来移动文件内的光标位置,使用 `tell` 方法来获取当前光标的位置。

with open('file.txt', 'r', encoding='utf-8') as f:
print(f.read(4)) # 读取前4个字符
with open('file.txt', 'r', encoding='utf-8') as f:
f.seek(3) # 移动光标到第3个字符
print(f.tell()) # 获取当前光标位置
print(f.read()) # 从当前光标位置继续读取内容

4.上下文管理器的使用
使用 `with` 语句可以自动管理文件的打开和关闭,避免忘记关闭文件导致资源泄露。

with open('file1.txt', 'r', encoding='utf-8') as f1, open('file2.txt', 'w', encoding='utf-8') as f2:
cOntent= f1.read()
f2.write(content)

三、函数

1.数学函数与 Python 函数的区别
数学函数是一个等式,输入一个值,输出一个结果。Python 函数则是封装了一系列操作的代码块,可以接受参数并返回结果。虽然两者都能接受输入并产生输出,但 Python 函数可以修改外部状态。

2.使用函数的优势
使用函数可以提高代码的复用性和可维护性。例如,将重复的代码封装成函数,可以在多处调用,减少代码冗余。

def send_email(message):
# 发送邮件的逻辑
connect_to_server()
send_message(message)
close_connection()

while True:
if cpu_usage > 90:
send_email('CPU usage alert')
if disk_usage > 90:
send_email('Disk usage alert')
if memory_usage > 80:
send_email('Memory usage alert')

3.函数与过程的区别
在 Python 中,过程是没有返回值的函数。但实际上,即使没有显式地使用 `return` 语句,Python 函数也会返回 `None`。

def process():
print('This is a process')

result = process()
print(result) # 输出: None

4.函数参数详解
Python 函数支持多种参数类型,包括位置参数、关键字参数、默认参数和可变长参数。

def greet(name, age, gender='male'):
print(f'Hello {name}, you are {age} years old and your gender is {gender}.')

greet('Alice', 30)

5.函数的返回值
函数可以通过 `return` 语句返回一个或多个值。如果不使用 `return` 语句,函数默认返回 `None`。

def add(a, b):
return a + b

result = add(3, 5)
print(result) # 输出: 8

6.自定义函数的创建
自定义函数需要先定义后使用。定义函数时,可以使用 `def` 关键字,函数体中可以包含任何合法的 Python 代码。

def custom_function(param1, param2):
result = param1 + param2
return result

print(custom_function(10, 20)) # 输出: 30

7.函数的调用方式
函数可以按无参或有参的方式调用,也可以嵌套调用。

def simple_func():
print('This is a simple function')

simple_func()


def parameterized_func(name):
print(f'Hello, {name}')

parameterized_func('Bob')


def nested_func(x, y):
return x + y

result = nested_func(nested_func(1, 2), 3)
print(result) # 输出: 6

推荐阅读
  • 从 .NET 转 Java 的自学之路:IO 流基础篇
    本文详细介绍了 Java 中的 IO 流,包括字节流和字符流的基本概念及其操作方式。探讨了如何处理不同类型的文件数据,并结合编码机制确保字符数据的正确读写。同时,文中还涵盖了装饰设计模式的应用,以及多种常见的 IO 操作实例。 ... [详细]
  • 本文将介绍如何编写一些有趣的VBScript脚本,这些脚本可以在朋友之间进行无害的恶作剧。通过简单的代码示例,帮助您了解VBScript的基本语法和功能。 ... [详细]
  • 深入解析Redis内存对象模型
    本文详细介绍了Redis内存对象模型的关键知识点,包括内存统计、内存分配、数据存储细节及优化策略。通过实际案例和专业分析,帮助读者全面理解Redis内存管理机制。 ... [详细]
  • 本文详细介绍如何使用Python进行配置文件的读写操作,涵盖常见的配置文件格式(如INI、JSON、TOML和YAML),并提供具体的代码示例。 ... [详细]
  • 本文详细解析了Python中的os和sys模块,介绍了它们的功能、常用方法及其在实际编程中的应用。 ... [详细]
  • 深入理解Redis的数据结构与对象系统
    本文详细探讨了Redis中的数据结构和对象系统的实现,包括字符串、列表、集合、哈希表和有序集合等五种核心对象类型,以及它们所使用的底层数据结构。通过分析源码和相关文献,帮助读者更好地理解Redis的设计原理。 ... [详细]
  • 使用Numpy实现无外部库依赖的双线性插值图像缩放
    本文介绍如何仅使用Numpy库,通过双线性插值方法实现图像的高效缩放,避免了对OpenCV等图像处理库的依赖。文中详细解释了算法原理,并提供了完整的代码示例。 ... [详细]
  • 本文详细介绍了Java中org.neo4j.helpers.collection.Iterators.single()方法的功能、使用场景及代码示例,帮助开发者更好地理解和应用该方法。 ... [详细]
  • 优化ListView性能
    本文深入探讨了如何通过多种技术手段优化ListView的性能,包括视图复用、ViewHolder模式、分批加载数据、图片优化及内存管理等。这些方法能够显著提升应用的响应速度和用户体验。 ... [详细]
  • 探讨如何通过编程技术实现100个并发连接,解决线程创建顺序问题,并提供高效的并发测试方案。 ... [详细]
  • MQTT技术周报:硬件连接与协议解析
    本周开发笔记重点介绍了在新项目中使用MQTT协议进行硬件连接的技术细节,涵盖其特性、原理及实现步骤。 ... [详细]
  • MySQL DateTime 类型数据处理及.0 尾数去除方法
    本文介绍如何在 MySQL 中处理 DateTime 类型的数据,并解决获取数据时出现的.0尾数问题。同时,探讨了不同场景下的解决方案,确保数据格式的一致性和准确性。 ... [详细]
  • 深入解析TCP/IP五层协议
    本文详细介绍了TCP/IP五层协议模型,包括物理层、数据链路层、网络层、传输层和应用层。每层的功能及其相互关系将被逐一解释,帮助读者理解互联网通信的原理。此外,还特别讨论了UDP和TCP协议的特点以及三次握手、四次挥手的过程。 ... [详细]
  • 对象自省自省在计算机编程领域里,是指在运行时判断一个对象的类型和能力。dir能够返回一个列表,列举了一个对象所拥有的属性和方法。my_list[ ... [详细]
  • JavaScript 基础语法指南
    本文详细介绍了 JavaScript 的基础语法,包括变量、数据类型、运算符、语句和函数等内容,旨在为初学者提供全面的入门指导。 ... [详细]
author-avatar
Li-zHihuAn
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有