Python编程入门——透析八大核心知识点快速掌握Python编程

前言

Python是一种相对容易学习和使用的编程语言。对于有其他编程经验(比如C++)的开发者来说,学习Python可能会更加轻松和快捷。Python语言特点:

  1. 简洁的语法: Python的语法相对简单且易读易写。与C++相比,Python代码行数更少,表达更直接,不需要过多的语法和符号。

  2. 动态类型系统: Python是一种动态类型语言,不需要显式声明变量的类型。这使得编写代码更加灵活,也减少了类型相关的复杂性。

  3. 丰富的标准库: Python拥有丰富的标准库和第三方库,提供了大量的模块和工具,可以帮助解决各种问题。这些库对于完成任务和快速开发非常有帮助。

  4. 广泛的应用领域: Python在许多领域中都有应用,包括Web开发、数据科学、人工智能、自然语言处理等。这使得学习Python的人能够在不同的领域找到用武之地。

  5. 强大的社区支持: Python拥有庞大而活跃的开发者社区,有大量的教程、文档、博客和社区资源可供学习和参考。

  6. 易用性和灵活性: Python具有易用性和灵活性,支持多种编程范式(面向对象、函数式编程等),并且适合用于快速原型开发。

一、基础语法

Python中常见的基础操作。变量的定义与使用、数据类型操作、条件语句和循环结构是Python编程中的基础。

1. 变量的定义与使用

# 定义变量并赋值
name = "Alice"
age = 30# 使用变量
print("Name:", name)
print("Age:", age)

2. 数据类型操作

# 整数操作
num1 = 10
num2 = 5
result = num1 + num2
print("Result:", result)# 字符串操作
str1 = "Hello, "
str2 = "world!"
combined_str = str1 + str2
print("Combined String:", combined_str)

3. 条件语句

# 条件语句示例
score = 85
if score >= 90:print("优秀")
elif score >= 80:print("良好")
else:print("及格")

4. 循环结构

# for循环示例
for i in range(1, 6):print(i)

二、函数和模块

1. 函数的定义与调用

# 定义函数
def greet(name):return "Hello, " + name + "!"# 调用函数
result = greet("Alice")
print(result)

2. 参数传递

# 函数参数传递
def add_numbers(a, b):return a + b# 调用函数并传递参数
sum_result = add_numbers(5, 3)
print("Sum:", sum_result)

3. 创建和使用模块

在创建和使用模块时,可以将函数或代码组织到单独的Python文件中,并在其他Python文件中导入和使用它。

模块文件(例如,example_module.py):
# example_module.pydef multiply_numbers(x, y):return x * y
主文件中使用模块:
# 主文件# 导入模块
import example_module# 使用模块中的函数
result = example_module.multiply_numbers(4, 5)
print("Multiplication Result:", result)

这些示例展示了Python中函数的定义与调用、参数传递,以及如何创建和使用模块。函数可以封装代码以便多次使用,而模块可以让将相关功能组织到单独的文件中,方便复用和维护。

三、面向对象编程

1. 类的定义和对象的创建

# 类的定义
class Animal:def __init__(self, species, sound):self.species = speciesself.sound = sounddef make_sound(self):print(f"A {self.species} makes a {self.sound} sound")# 创建对象实例
dog = Animal("dog", "bark")
cat = Animal("cat", "meow")# 调用对象的方法
dog.make_sound()
cat.make_sound()

2. 继承

# 继承示例
class Dog(Animal):def wag_tail(self):print("The dog wags its tail")# 创建派生类对象
golden_retriever = Dog("dog", "bark")# 调用继承的方法
golden_retriever.make_sound()
golden_retriever.wag_tail()

3. 多态

# 多态示例
def make_animal_sound(animal):animal.make_sound()# 不同对象调用相同方法
make_animal_sound(dog)
make_animal_sound(cat)
make_animal_sound(golden_retriever)

类允许创建对象模型,继承允许创建新类并重用现有类的功能,而多态性允许不同的对象对相同的方法做出不同的响应。

四、文件操作

在Python中进行文件读取和写入的操作通常使用内置的open()函数。

###1. 读取文件

# 打开文件进行读取(默认为只读模式)
with open('file.txt', 'r') as file:content = file.read()print(content)

上述代码将打开名为 file.txt 的文件,并使用read()函数读取文件内容,然后将内容打印出来。

2. 写入文件

# 打开文件进行写入(若不存在则创建文件,存在则覆盖内容)
with open('file.txt', 'w') as file:file.write("Hello, this is a sample text!\n")file.write("Writing to a file in Python is easy.")

在使用文件读取和写入操作时,确保对文件路径具有适当的访问权限,并小心处理文件的打开和关闭操作,以避免资源泄漏或文件损坏的可能性。

五、异常处理

在Python中,可以使用try-except块来捕获和处理异常。这种机制使能够优雅地处理可能出现的错误。

1 .捕获和处理异常

try:# 尝试执行可能引发异常的代码result = 10 / 0  # 除以零会引发ZeroDivisionError异常
except ZeroDivisionError:# 捕获ZeroDivisionError异常并处理print("Error: Division by zero!")

try块中包含可能引发异常的代码,当发生ZeroDivisionError异常时,except块会捕获该异常并输出错误信息。

2. 处理不同类型的异常

try:# 尝试执行可能引发异常的代码value = int(input("Enter a number: "))result = 10 / value
except ZeroDivisionError:# 处理除以零异常print("Error: Division by zero!")
except ValueError:# 处理输入非数字的异常print("Error: Invalid input. Please enter a number.")

除了捕获ZeroDivisionError异常外,还添加了ValueError异常的处理方式,以应对用户可能输入非数字的情况。

3. 最终处理(使用finally)

try:# 尝试执行可能引发异常的代码file = open('test.txt', 'r')content = file.read()print(content)
except FileNotFoundError:print("Error: File not found.")
finally:# 不管是否发生异常,都会执行的代码块file.close()  # 确保关闭文件,释放资源

'finally`块用于确保在任何情况下都能关闭打开的文件,无论是否发生异常。

六、数据结构与算法

1. 列表操作

列表是一种有序的可变容器,可以包含任意类型的元素。

创建列表
# 创建一个列表
my_list = [1, 2, 3, 4, 5]# 访问列表元素
print(my_list[0])  # 输出列表中的第一个元素
print(my_list[-1])  # 输出列表中的最后一个元素
列表切片
# 列表切片操作
sliced_list = my_list[1:4]  # 从索引1到索引3(不包括4)切片
print(sliced_list)  # 输出 [2, 3, 4]
添加和删除元素
# 添加元素到列表尾部
my_list.append(6)# 在特定位置插入元素
my_list.insert(2, 7)  # 在索引2处插入元素7# 删除元素
my_list.remove(3)  # 删除元素3

2.字典操作

字典是一种键-值对的无序集合。

创建字典
# 创建一个字典
my_dict = {'name': 'Alice', 'age': 25, 'city': 'New York'}# 访问字典元素
print(my_dict['name'])  # 输出 'Alice'
print(my_dict.get('age'))  # 输出 25
添加和删除键值对
# 添加键值对
my_dict['gender'] = 'female'# 删除键值对
del my_dict['city']
迭代字典
# 迭代字典的键
for key in my_dict:print(key, my_dict[key])# 迭代字典的键值对
for key, value in my_dict.items():print(key, value)

3.排序算法

Python中有多种排序算法可供使用,其中最常见的是内置的sorted()函数和列表的sort()方法。

使用sorted()函数进行排序
my_list = [4, 1, 7, 3, 9, 2]
sorted_list = sorted(my_list)  # 对列表进行排序
print(sorted_list)
使用列表的sort()方法进行排序
my_list = [4, 1, 7, 3, 9, 2]
my_list.sort()  # 对列表进行排序(会修改原始列表)
print(my_list)

七、网络编程

Socket编程是一种用于在网络上发送和接收数据的编程技术。它使得计算机程序能够在网络上进行通信,允许数据在不同设备之间传输。HTTP(Hypertext Transfer Protocol)是一种用于传输超文本的协议,通常用于在客户端和服务器之间传输网页和其他资源。

在Python中可以内置的socket库进行Socket编程,同时使用http.serverrequests等库来处理HTTP协议。

1. Socket编程示例:

import socket# 创建套接字
server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)# 绑定IP和端口
server_socket.bind(('127.0.0.1', 8080))# 监听连接
server_socket.listen(5)while True:# 接受连接client_socket, addr = server_socket.accept()print(f"Connection from {addr} has been established!")# 发送和接收数据client_socket.send(bytes("Welcome to the server!", "utf-8"))data = client_socket.recv(1024)print("Received data:", data.decode("utf-8"))# 关闭连接client_socket.close()

2. HTTP协议应用示例:

Python中有许多库可用于处理HTTP请求和响应,例如requests库。

import requests# 发送GET请求
response = requests.get('https://api.example.com/data')# 打印响应内容和状态码
print("Response:", response.text)
print("Status Code:", response.status_code)# 发送POST请求
payload = {'key1': 'value1', 'key2': 'value2'}
response = requests.post('https://api.example.com/post', data=payload)# 打印响应内容和状态码
print("Response:", response.text)
print("Status Code:", response.status_code)

八、数据库

在Python中,有多种库可用于数据库操作,最常用的是sqlite3(SQLite)、MySQL Connector(MySQL)、psycopg2(PostgreSQL)和pymongo(MongoDB)。下面示例演示如何使用sqlite3库进行数据库操作:

连接SQLite数据库并执行操作:
import sqlite3# 连接到SQLite数据库(如果不存在则会创建)
conn = sqlite3.connect('example.db')# 创建一个游标对象,用于执行SQL语句
cursor = conn.cursor()# 创建一个表
cursor.execute('''CREATE TABLE IF NOT EXISTS users (id INTEGER PRIMARY KEY, name TEXT, age INTEGER)''')# 插入数据
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('Alice', 25))
cursor.execute("INSERT INTO users (name, age) VALUES (?, ?)", ('Bob', 30))# 提交更改
conn.commit()# 查询数据
cursor.execute("SELECT * FROM users")
rows = cursor.fetchall()
for row in rows:print(row)# 关闭连接
conn.close()

上面的代码创建了一个名为example.db的SQLite数据库,创建了一个名为users的表,并向表中插入了数据。然后,它执行了一个查询来检索所有的用户数据,并打印出结果。

对于其他数据库,操作方式类似,只需根据数据库类型选择合适的库,并按照相应的文档进行操作。例如,对于MySQL,可以使用MySQL Connector库,对于PostgreSQL,你可以使用psycopg2库,对于MongoDB,可以使用pymongo库,使用方法类似于上面的示例。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/180866.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

SC3671升降压应用 10-30V输入区间 输出 12V 2A 恒压输出

SC3671升降压应用 10-30V输入区间 输出 12V 2A 恒压输出 10V-24V输入 升降压输出12V3A 外置MOS 大电流

【开发实践】使用POI实现导出带有复杂表头的的excel文件

一、需求分析 公司业务部门需要&#xff0c;根据一些数据&#xff0c;加上表头&#xff0c;导出需要的excel表格。效果如下&#xff1a; 二、代码实现 【依赖准备】 <!-- POI --><dependency><groupId>org.apache.poi</groupId><artifactId>po…

修改Linux系统的网络参数

修改Linux系统的网络参数 接收缓冲区是用来存储从网络接口接收到的数据的一块内存区域。通过增大接收缓冲区的大小&#xff0c;可以提高网络传输的性能&#xff0c;特别是在处理大量数据或高负载情况下。 sudo sysctl -w net.core.rmem_max2097152 sudo sysctl -w net.core.r…

【esp32】可变时间的定时器中断的开启和关闭

前言 回忆若能下酒&#xff0c;往事便可作一场宿醉。醒来时&#xff0c;天依旧清亮&#xff0c;风仍然分明&#xff0c;而光阴的两岸&#xff0c;终究无法以一苇杭之。我知你心意。无须更多言语&#xff0c;我必与你相忘于江湖&#xff0c;以沧桑为饮&#xff0c;年华果腹&…

倾斜摄影三维模型的根节点合并的轻量化技术方法分析

倾斜摄影三维模型的根节点合并的轻量化技术方法分析 倾斜摄影三维模型的根节点合并是一种轻量化技术&#xff0c;旨在减小模型数据的大小&#xff0c;提高渲染效率和加载速度。在本文中&#xff0c;我们将探讨关于倾斜摄影三维模型根节点合并的轻量化技术方法。 1、LOD&#x…

SpringBoot+网易邮箱登录注册

文章目录 SpringBoot网易邮箱登录注册pom.xmlapplication.ymlsqlUserEmail.javaUserEmailMapper.javaUserEmailMapper.xmlEmailService.javaUserEmailService.javaUserEmailServiceImpl.javaUserEmailController.javaregister1.html 编写前参考 SpringBoot网易邮箱登录注册 po…

PPSSPP (PSP游戏模拟器)最新版安装使用教程

PPSSPP优势 1、目前唯一的也是最好的psp模拟器 可运行绝大多数psp游戏且运行高速&#xff0c;即使是低配手机也能游玩经典大作。 2、支持自定义调节虚拟手柄和实体手柄连接 ppsspp模拟器支持使用虚拟手柄或者连接实体手柄游玩&#xff0c;同时还可以自定义调节按键选项。 …

启动程序触发器-项目启动建表

一、需求 在项目启动时&#xff0c;自动新建数据表 二、实现思路 创建触发类 实现SpringBoot的ApplicationRunner接口 编写建表语句常量 实现run方法&#xff0c;并在run方法中使用JDBC工具类的建表方法&#xff0c;传入建表语句常亮&#xff0c;完成建表 三、代码实现&…

牛客剑指offer刷题位运算篇

文章目录 不用加减乘除做加法题目思路代码实现 二进制中1的个数题目思路代码实现 数值的整数次方题目思路代码实现 不用加减乘除做加法 题目 设计一个函数把两个数字相加。不得使用 或者其他算术运算符。 示例: 输入: a 1, b 1 输出: 2 提示&#xff1a; a, b 均可能是负…

使用Git客户端向gitee免密推送项目代码(保姆级流程哦)

1.进入Git官网手动下载git的客户端可执行程序 一路next即可 2.找到安装路径下的3.进入git-bash 根据如下的代码一次执行只需要修改对应的username和自己再gitee中绑定的邮箱 4.分发私钥到邮箱 产生私钥的时候回车三次即可&#xff1b;查看私钥如下图及正常&#xff1b; 5.进…

文生图领域经典-ControlNet介绍

引言 2023年的计算机视觉领域顶级学术会议ICCV上&#xff0c;一篇颠覆文生图AI领域的论文《Adding Conditional Control to Text-to-Image Diffusion Models》——ControlNet 荣膺最佳论文奖(Marr奖)。 自开源以来&#xff0c;ControlNet已经在GitHub上揽获25k星。无论是对扩…

vue项目多个不同的服务器请求地址管理

vue项目多个不同的服务器请求地址管理 在vue项目开发过程中&#xff0c;获取不同的数据可能会出现需要请求多个不同服务器地址的域名&#xff0c;这个时候需要对不同域名的请求地址进行管理以及跨域的代理。 一、单服务器域名地址的跨域代理和请求配置&#xff1a; 跨域配置&…

C#:程序发布的大小控制

.net不讨喜有个大原因就是.net平台本身太大了&#xff0c;不同版本没有兼容性&#xff0c;程序依赖哪个版本用户就要安装哪个版本&#xff0c;除非你恰好用的是操作系统默认安装的版本——问题是不同版本操作系统默认安装的不一样。 所以打包程序就很头疼&#xff0c;不打包平台…

深度解读:为什么要做数据合规?如何做到数据合规?

数据资源“入表”在即&#xff0c;企业更需筑牢数据合规防线。但企业主企业购买数据、获取数据到底是否合法合规&#xff0c;入表如何防范合规风险&#xff1f;上周三&#xff0c;亿信华辰邀请到北京鑫诺律师事务所高级合伙人、管委会副主任武婕将和大家分享《数据入表法律合规…

每天五分钟计算机视觉:经典架构的力量与启示

在深度学习和计算机视觉领域,卷积神经网络(Convolutional Neural Networks,简称CNN)无疑是最为经典的架构之一。近年来,随着研究的不断深入和新架构的不断涌现,许多初学者可能会忽视这些经典架构的重要性。然而,理解并学习这些经典架构,对于我们深入理解卷积神经网络的…

Docker+Anaconda+CUDA+cuDNN

一、导语 因为要复现文献的需求和实验室里师兄想要给我提升能力的多方面因素在一起&#xff0c;所以学习并实现了相关安装。在这里做一个记录&#xff0c;方便日后查看&#xff0c;如果能给其他同学带来便捷就更好了。 在这篇文章中&#xff0c;我的目标是搭建一个可以使用Py…

鸿蒙4.0开发笔记之ArkTS语法的基础数据类型[DevEco Studio开发](七)

文章目录 一、基本数据类型的定义1、变量声明2、数字类型3、字符串类型4、布尔类型5、数组类型6、元组类型7、枚举类型8、联合类型&#xff08;少用&#xff09;9、未知Unkown类型10、未定义和空值类型 二、数据类型的使用1、组件内部声明变量不需要使用let关键字2、使用Divide…

从戴森发明的“球轮手推车”看专利

今天跟大家分享一个特别有意思的专利&#xff0c;那就是戴森发明的球状轮子的手推车。 相信戴森这个品牌很多人都听过&#xff0c;大家熟悉的应该是戴森吹风机和戴森吸尘器。这两个目前是市场上比较高端的家用设备。 很多人也正是因为这些家用设备了解到戴森这个人&#xff0…

有权图的最短路径算法

目录 单源最短路径问题 Dijkstra算法 原理 ​ 获得最短路径长度的Dijkstra代码实现 时间复杂度 算法优化 优先队列优化后的代码实现 时间复杂度 可以具体获得最短路径的Dijkstra代码实现 Bellman-Ford算法 原理 代码实现 Floyed算法 原理 代码实现 单源最短路…

YouTube宣布要求披露AI生成的内容并添加标签

不知道大家在逛YouTube的时候有没有刷到过一些画面和人物看起来不太自然的视频。 没错&#xff0c;这些视频里面的画面和人物可能都是由AI生成的。 近日&#xff0c;YouTube 产品管理副总裁在官方博客文章上表示&#xff1a;生成式 AI 有潜力在 YouTube 上激发创造力&#xff…