首页/新闻资讯/正文详情

【Python 基础】第 期:人生苦短,我用 Python

发布时间:2026/9/24 12:26:43 来源:云帆数科 栏目:资讯中心
【Python 基础】第 期:人生苦短,我用 Python
【Python 基础】第 期人生苦短我用 Python引言为什么是 Python“人生苦短我用 Python”——这句流传甚广的口号道出了 Python 的核心魅力简洁、高效、易读。作为一门解释型、面向对象的高级编程语言Python 以其优雅的语法和强大的生态成为初学者和资深开发者共同的选择。无论你是想快速实现一个想法还是构建复杂的数据分析系统Python 都能让你用更少的代码完成更多的事。今天我们将从基础概念出发逐步深入 Python 的核心机制最终通过实战示例展示它的威力。让我们开始这段旅程吧## 一、Python 基础变量与数据类型### 1.1 变量赋值与动态类型Python 不需要显式声明变量类型它采用动态类型系统。这意味着你可以直接将值赋给变量类型由解释器自动推断。python# 变量赋值无需声明类型name Alice # 字符串类型age 25 # 整数类型height 1.68 # 浮点数类型is_student True # 布尔类型# 打印变量信息print(f姓名{name}年龄{age}身高{height}米是否是学生{is_student})# 动态改变类型age 二十五岁 # 现在 age 变成了字符串print(f修改后的年龄{age})### 1.2 基本数据类型操作Python 提供了丰富的数据类型包括数字、字符串、列表、元组、字典等。我们重点介绍几种常用类型。python# 数字运算a 10b 3print(f加法{a} {b} {a b})print(f除法取整{a} // {b} {a // b}) # 结果为 3print(f幂运算{a} ** {b} {a ** b}) # 结果为 1000# 字符串操作text Hello, Python!print(f字符串长度{len(text)})print(f大写转换{text.upper()})print(f替换{text.replace(Python, World)})# 列表可变序列fruits [苹果, 香蕉, 橘子]fruits.append(葡萄)print(f列表内容{fruits})print(f第二个元素{fruits[1]})## 二、控制流让程序做决策### 2.1 条件语句if-elif-else结构让程序根据条件执行不同的代码块。python# 判断成绩等级score 85if score 90: grade 优秀elif score 80: grade 良好elif score 60: grade 及格else: grade 不及格print(f成绩 {score} 分等级为{grade})### 2.2 循环结构for循环和while循环是 Python 中重复执行代码的主要方式。python# for 循环遍历可迭代对象print(1 到 5 的平方)for num in range(1, 6): square num ** 2 print(f{num} 的平方是 {square})# while 循环条件控制print(\n使用 while 循环计算 1 到 10 的和)total 0counter 1while counter 10: total counter counter 1print(f1 到 10 的和为{total})## 三、函数代码复用的基石函数是组织代码的基本单元它封装了一段可重复使用的逻辑。### 3.1 定义和调用函数python# 定义函数计算斐波那契数列def fibonacci(n): 返回斐波那契数列的前 n 项 if n 0: return [] elif n 1: return [0] elif n 2: return [0, 1] result [0, 1] for i in range(2, n): next_num result[-1] result[-2] result.append(next_num) return result# 调用函数print(斐波那契数列前 10 项)fib_list fibonacci(10)print(fib_list)# 函数还可以有默认参数def greet(name, greeting你好): 带默认参数的问候函数 return f{greeting}{name}print(greet(小明))print(greet(Bob, Hello))### 3.2 变量的作用域理解局部变量和全局变量的区别很重要。python# 全局变量global_var 我是全局变量def scope_demo(): local_var 我是局部变量 print(f函数内部{global_var}) print(f函数内部{local_var}) # 修改全局变量需要使用 global 关键字 global global_var global_var 全局变量已被修改scope_demo()print(f函数外部{global_var})# print(local_var) # 这会报错因为 local_var 在函数外部不可见## 四、数据结构进阶列表与字典### 4.1 列表的高级操作python# 列表推导式优雅地生成列表squares [x**2 for x in range(1, 11)]print(f1 到 10 的平方列表{squares})# 列表切片numbers [0, 1, 2, 3, 4, 5, 6, 7, 8, 9]print(f前三个元素{numbers[:3]})print(f从索引 2 到 5{numbers[2:6]})print(f步长为 2{numbers[::2]})# 列表排序unsorted [3, 1, 4, 1, 5, 9, 2, 6]unsorted.sort() # 原地排序print(f排序后{unsorted})# 使用 sorted 函数不修改原列表words [apple, banana, cherry, date]sorted_words sorted(words, keylen) # 按字符串长度排序print(f按长度排序{sorted_words})### 4.2 字典键值对的强大工具python# 创建字典student { 姓名: 张三, 年龄: 20, 成绩: { 数学: 95, 英语: 88, 物理: 92 }}# 访问字典print(f学生姓名{student[姓名]})print(f数学成绩{student[成绩][数学]})# 字典方法print(f所有键{list(student.keys())})print(f所有值{list(student.values())})# 字典推导式squares_dict {x: x**2 for x in range(1, 6)}print(f数字平方字典{squares_dict})## 五、文件操作读写数据Python 提供了简单的文件操作接口让我们能轻松处理文本文件。python# 写入文件with open(example.txt, w, encodingutf-8) as file: file.write(第一行Hello, Python!\n) file.write(第二行文件操作很简单\n) file.write(第三行人生苦短我用 Python\n)# 读取文件print(读取文件内容)with open(example.txt, r, encodingutf-8) as file: content file.read() print(content)# 逐行读取print(逐行读取)with open(example.txt, r, encodingutf-8) as file: for line_number, line in enumerate(file, 1): print(f第 {line_number} 行{line.strip()})## 六、异常处理让程序更健壮程序运行中难免会遇到错误合理的异常处理能让程序优雅地应对问题。pythondef safe_divide(a, b): 安全的除法函数 try: result a / b except ZeroDivisionError: print(错误除数不能为零) return None except TypeError: print(错误请输入数字) return None else: # 没有异常时执行 print(f计算成功{a} / {b} {result}) return result finally: # 无论是否异常都会执行 print(除法操作完成)# 测试异常处理print(测试 1正常除法)safe_divide(10, 2)print(\n测试 2除数为零)safe_divide(10, 0)print(\n测试 3类型错误)safe_divide(10, 2)## 七、面向对象编程封装与抽象类是 Python 面向对象编程的核心它允许我们创建自定义的数据类型。pythonclass BankAccount: 银行账户类 # 类变量所有实例共享 bank_name Python 银行 def __init__(self, owner, initial_balance0): 构造函数初始化账户 self.owner owner self.__balance initial_balance # 私有属性通过名称改写 self.transactions [] def deposit(self, amount): 存款 if amount 0: self.__balance amount self.transactions.append(f存款{amount}元) return True return False def withdraw(self, amount): 取款 if 0 amount self.__balance: self.__balance - amount self.transactions.append(f取款-{amount}元) return True return False def get_balance(self): 获取余额 return self.__balance def show_info(self): 显示账户信息 print(f银行{self.bank_name}) print(f户主{self.owner}) print(f余额{self.__balance}元) print(交易记录) for trans in self.transactions[-5:]: # 显示最近5笔交易 print(f - {trans})# 使用类print(创建账户)account BankAccount(小明, 1000)account.deposit(500)account.withdraw(200)account.show_info()# 访问类变量print(f\n银行名称{BankAccount.bank_name})## 八、模块与包组织大型项目Python 的模块系统让我们能轻松组织和复用代码。python# 创建自定义模块保存为 math_utils.pydef factorial(n): if n 0: return 1 return n * factorial(n - 1)def is_prime(n): if n 2: return False for i in range(2, int(n**0.5) 1): if n % i 0: return False return True# 导入和使用模块# import math_utils# from math_utils import factorial, is_prime# 使用 Python 标准库import mathimport randomfrom datetime import datetimeprint(f圆周率{math.pi})print(f随机数{random.randint(1, 100)})print(f当前时间{datetime.now()})# 使用第三方库需要先安装pip install requests# import requests# response requests.get(https://api.github.com)# print(response.status_code)## 九、实战案例数据分析小工具让我们综合运用所学知识创建一个简单的数据分析工具。pythondef analyze_scores(scores): 分析学生成绩数据 if not scores: return # 基本统计 total sum(scores) count len(scores) average total / count max_score max(scores) min_score min(scores) # 计算中位数 sorted_scores sorted(scores) if count % 2 0: median (sorted_scores[count//2 - 1] sorted_scores[count//2]) / 2 else: median sorted_scores[count//2] # 成绩分布 distribution { 优秀(90-100): 0, 良好(80-89): 0, 中等(70-79): 0, 及格(60-69): 0, 不及格(60): 0 } for score in scores: if score 90: distribution[优秀(90-100)] 1 elif score 80: distribution[良好(80-89)] 1 elif score 70: distribution[中等(70-79)] 1 elif score 60: distribution[及格(60-69)] 1 else: distribution[不及格(60)] 1 # 输出结果 print( * 40) print(成绩分析报告) print( * 40) print(f总人数{count}) print(f平均分{average:.2f}) print(f最高分{max_score}) print(f最低分{min_score}) print(f中位数{median:.2f}) print(\n成绩分布) for level, count in distribution.items(): if count 0: bar # * count print(f {level}: {bar} ({count}人))# 模拟数据import randomrandom.seed(42)test_scores [random.randint(40, 100) for _ in range(20)]# 进行分析analyze_scores(test_scores)## 十、总结Python 的力量从基础的变量赋值到高级的面向对象编程从简单的控制流到复杂的数据分析Python 以其清晰简洁的语法和强大的功能让我们能够用更少的时间完成更多的工作。本文涵盖的内容只是 Python 世界的冰山一角但它已经足够让你感受到“人生苦短我用 Python”这句话的真谛。Python 的核心优势在于-可读性强代码如文章般自然-生态丰富从 Web 开发到机器学习无所不能-社区活跃遇到问题总能找到解决方案-入门简单适合所有层次的开发者现在你已经掌握了 Python 的基础知识可以开始构建自己的项目了。记住编程最好的学习方式就是动手实践。打开你的编辑器开始编写第一个 Python 程序吧无论你是想自动化办公、开发网站还是探索人工智能Python 都会是你最可靠的伙伴。

相关推荐

智能代理系统架构设计与优化实践
智能代理系统架构设计与优化实践

1. 项目概述在AI技术快速发展的今天,智能代理(Agent)系统正成为自动化流程和智能决策的核心组件。claudecode的agent定义项目,本质上是一套针对特定业务场景的智能代理框架设计规范。这个项目不是简单地调用现成API,而是从底层定义了agent的行… · 2026/9/22 18:36:10

步进电机为何不标功率?从电流控制原理到选型实战解析
步进电机为何不标功率?从电流控制原理到选型实战解析

步进电机,一个在3D打印机、雕刻机、机器人、打印机等精密控制领域无处不在的执行元件。很多工程师和爱好者第一次接触它时,都会有一个共同的疑问:为什么步进电机的规格书上,通常找不到一个明确的“功率”参数,而只有电… · 2026/9/20 19:15:24

5步实现小爱音箱AI智能升级:从普通音箱到ChatGPT语音助手
5步实现小爱音箱AI智能升级:从普通音箱到ChatGPT语音助手

5步实现小爱音箱AI智能升级:从普通音箱到ChatGPT语音助手 【免费下载链接】mi-gpt 🏠 将小爱音箱接入 ChatGPT 和豆包,改造成你的专属语音助手。 项目地址: https://gitcode.com/GitHub_Trending/mi/mi-gpt 你是否曾想过让小爱音箱拥有… · 2026/9/17 1:01:41

Arduino蜂鸣器播放音乐实战:从tone()原理到《欢乐颂》
Arduino蜂鸣器播放音乐实战:从tone()原理到《欢乐颂》

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 12:26:38

机器人阻抗控制从原理到调参:阻尼-弹簧-质量模型与工程实践
机器人阻抗控制从原理到调参:阻尼-弹簧-质量模型与工程实践

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 12:26:38

GSM信令协议栈与核心网元:从七号信令到MAP位置更新分析
GSM信令协议栈与核心网元:从七号信令到MAP位置更新分析

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 12:26:38

MySQL8.0新特性:直方图
MySQL8.0新特性:直方图

MySQL8.0MySQL8.0新特性:直方图 查询优化器负责将SQL查询转换为尽可能高效的执行计划,但随着数据环境不断变化,查询优化器可能无法找到最佳的执行计划,导致SQL效率低下。造成这种情况的原因是优化器对查询的数据了解的不够充足&am… · 2026/9/24 12:26:38

斐讯K2路由器变砖不用愁:TTL串口救砖+刷Breed保姆级教程
斐讯K2路由器变砖不用愁:TTL串口救砖+刷Breed保姆级教程

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 12:26:38

毫米波雷达办公位人体存在感应:原理、部署与调优实战
毫米波雷达办公位人体存在感应:原理、部署与调优实战

/* MD / 富文本中的 .toc(含博客园搬家等嵌套结构);.toc-box 在侧栏,不受影响 */#content_views .toc,/* 编辑器常在目录前后插入空 p(:empty 仍占 20px),一并去掉避免顶空隙 */#content_views.markdown_views > p:empty:has(+ .toc),#content_views.markdown_views … · 2026/9/24 12:26:32

基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程
基于YOLOv8的渔船作业监控系统:从环境搭建到边缘部署全流程

简介:这是一套面向计算机、人工智能、自动化等专业学生与教师的毕业设计级项目资源,围绕YOLOv8实现渔船作业监控系统,可用于毕设、课程设计、大作业或项目立项演示。压缩包共97个文件,约24.21MB,以70个Python源码文件为… · 2026/9/24 0:00:13

1D-CNN时间序列建模实战:从Conv1d原理到工业落地
1D-CNN时间序列建模实战:从Conv1d原理到工业落地

简介:面向时间序列数据建模的一维卷积神经网络完整实现,适合深度学习入门者及需要快速验证时序模型的研究者,能够从音频、文本、传感器或股价等序列中挖掘局部特征与时间依赖。压缩包体积很小,只有3KB,内含3个Python脚… · 2026/9/24 0:00:26

柔软的L:汉语语流中被忽视的舌肌张力控制
柔软的L:汉语语流中被忽视的舌肌张力控制

1. 这个“L”不是字母表里的L,而是舌尖上的L最近在几个方言群和语音教学社群里,反复看到有人发一句:“也说字母L:柔软的长舌”。初看以为是英语发音课笔记,点开才发现全是方言爱好者、播音系学生、语言康复师甚至戏曲演… · 2026/9/24 0:00:44

了解更多?预约专属演示

我们的顾问将为您一对一讲解产品与方案

企业微信二维码