从零开始学习Python

目录

从零开始学习Python

引言

环境搭建

安装Python解释器

选择IDE

基础语法

注释

变量和数据类型

变量命名规则

数据类型

运算符

算术运算符

比较运算符

逻辑运算符

输入和输出

控制流

条件语句

循环语句

for循环

while循环

循环控制语句

函数和模块

定义函数

内置函数和模块

常用内置函数

标准模块示例

自定义模块

文件操作

文件打开模式

读写文件示例

异常处理

面向对象编程

类和对象

定义类

继承

多态

常用库简介

NumPy

Pandas

Matplotlib

实践项目

项目一:猜数字游戏

项目二:简单的记事本程序

进阶学习资源

推荐书籍

在线课程

社区和论坛

总结

附录:常用函数和方法速查表

字符串方法

列表方法

字典方法


 

引言

Python是一种高级、解释型、通用的编程语言,由Guido van Rossum于1991年首次发布。凭借其简洁的语法和强大的功能,Python已广泛应用于Web开发数据分析人工智能科学计算等领域。

学习目标:

  • 理解Python的基本语法和结构
  • 掌握常用的数据类型和操作
  • 学会编写函数和使用模块
  • 能够进行文件操作和异常处理
  • 了解面向对象编程的基本概念
  • 使用常用的第三方库进行实践

环境搭建

安装Python解释器

Python有两个主要版本:Python 2和Python 3。Python 2已停止更新,建议安装Python 3

各操作系统安装指南:

  • Windows:
    1. 访问Python官方网站下载Windows安装包。
    2. 运行安装程序,勾选“Add Python to PATH”选项,方便在命令行中使用Python。
  • macOS:
    • 使用Homebrew安装:在终端中执行brew install python3
  • Linux:
    • 使用包管理器安装,如Ubuntu下执行sudo apt-get install python3

选择IDE

一个好的集成开发环境(IDE)可以提高编程效率。

推荐IDE:

IDE名称特点
IDLEPython自带,轻量级,适合入门
PyCharm功能强大,支持丰富插件,专业版收费
Visual Studio Code轻量级,扩展性强,跨平台

基础语法

注释

  • 单行注释:以#开头。

    # 这是一个单行注释

  • 多行注释:使用三引号'''"""包裹。

    ''' 这是一个 多行注释 '''

变量和数据类型

变量命名规则

  • 只能包含字母数字下划线_)。
  • 不能以数字开头。
  • 区分大小写。

数据类型

数据类型描述示例
整数整数类型,如年龄、数量age = 25
浮点数带小数点的数,如重量weight = 70.5
字符串文字或字符序列name = "Alice"
布尔值真或假is_student = True
列表有序可变的元素集合scores = [90, 85, 88]
元组有序不可变的元素集合dimensions = (1920, 1080)
字典键值对的无序集合person = {'name': 'Bob', 'age': 30}
集合无序不重复元素的集合unique_numbers = {1, 2, 3}

运算符

算术运算符

运算符描述示例
+加法3 + 2 = 5
-减法3 - 2 = 1
*乘法3 * 2 = 6
/除法3 / 2 = 1.5
//整除3 // 2 = 1
%取模3 % 2 = 1
**3 ** 2 = 9

比较运算符

运算符描述示例
==等于3 == 2(False)
!=不等于3 != 2(True)
>大于3 > 2(True)
<小于3 < 2(False)
>=大于等于3 >= 2(True)
<=小于等于3 <= 2(False)

逻辑运算符

运算符描述示例
andTrue and False(False)
orTrue or False(True)
notnot True(False)

输入和输出

  • 输出:使用print()函数。

     
    print("Hello, World!")
    

     

  • 输入:使用input()函数。

     
    name = input("请输入你的名字:")
    print("你好," + name)
    

     

控制流

条件语句

使用ifelifelse控制程序的执行路径。

 
age = 20
if age >= 18:print("成年人")
elif age >= 13:print("青少年")
else:print("儿童")

 

循环语句

for循环

用于遍历序列。

 
for i in range(5):print(i)

 

while循环

根据条件反复执行。

 
count = 0
while count < 5:print(count)count += 1

 

循环控制语句

  • break:终止循环。
  • continue:跳过本次迭代。
 
for i in range(10):if i % 2 == 0:continue  # 跳过偶数if i > 7:break     # 大于7时终止循环print(i)

 

函数和模块

定义函数

使用def关键字定义函数,提高代码的重用性。

 
def greet(name):return "Hello, " + namemessage = greet("Alice")
print(message)

 

内置函数和模块

常用内置函数

函数名描述
len()返回对象长度
max()返回最大值
min()返回最小值
sum()求和
type()返回对象类型

标准模块示例

  • math模块:提供数学函数。

     
    import math
    print(math.pi)          # 输出圆周率
    print(math.sqrt(16))    # 输出4.0
    

     

  • random模块:生成随机数。

     
    import random
    print(random.random())  # 输出0到1之间的随机浮点数
    

     

自定义模块

  • 创建模块:新建一个.py文件,编写函数或变量。

  • 导入模块:使用import关键字。

     
    # 在my_module.py中定义函数
    def say_hello():print("Hello from my_module!")# 在主程序中导入并使用
    import my_module
    my_module.say_hello()
    

     

文件操作

文件打开模式

模式描述
r读取(默认)
w写入(会覆盖文件)
a追加
rb二进制读取
wb二进制写入

读写文件示例

 
# 写入文件
with open('example.txt', 'w') as f:f.write("Hello, File!")# 读取文件
with open('example.txt', 'r') as f:content = f.read()print(content)

 

异常处理

通过try-except块捕获异常,保证程序的健壮性。

 
try:with open('nonexistent.txt', 'r') as f:content = f.read()
except FileNotFoundError:print("文件未找到")

 

面向对象编程

类和对象

定义类

 
class Animal:def __init__(self, name):self.name = namedef speak(self):pass

 

继承

 
class Dog(Animal):def speak(self):print(self.name + "说:汪汪汪")dog = Dog("小黑")
dog.speak()

 

多态

不同对象对同一方法具有不同的实现。

 
class Cat(Animal):def speak(self):print(self.name + "说:喵喵喵")animals = [Dog("小黑"), Cat("小白")]
for animal in animals:animal.speak()

 

常用库简介

NumPy

用于科学计算的库,支持多维数组和矩阵运算。

 
import numpy as np
array = np.array([[1, 2, 3], [4, 5, 6]])
print(array.shape)  # 输出(2, 3)

 

Pandas

提供高效的数据操作和分析。

 
import pandas as pd
data = {'Name': ['Tom', 'Jerry'], 'Age': [5, 6]}
df = pd.DataFrame(data)
print(df)

 

Matplotlib

用于创建静态、动态和交互式的可视化图表。

 
import matplotlib.pyplot as plt
plt.plot([1, 2, 3], [4, 5, 6])
plt.title("简单折线图")
plt.xlabel("X轴")
plt.ylabel("Y轴")
plt.show()

 

实践项目

项目一:猜数字游戏

需求分析:

  • 程序随机生成一个1到100的整数。
  • 用户输入猜测的数字,程序给予提示:大了、小了、猜对了。
  • 记录用户猜测的次数,直到猜对为止。

实现代码:

 
import randomdef guess_number():number = random.randint(1, 100)count = 0while True:try:guess = int(input("猜猜看我心里的数字是几(1-100):"))count += 1if guess < number:print("太小了,再试一次。")elif guess > number:print("太大了,再试一次。")else:print(f"恭喜你,猜中了!你一共猜了{count}次。")breakexcept ValueError:print("请输入有效的整数。")guess_number()

 

项目二:简单的记事本程序

需求分析:

  • 用户可以添加新的待办事项。
  • 用户可以查看已添加的待办事项。
  • 数据需要持久化存储在文件中。

实现代码:

 
def display_menu():print("\n--- 记事本菜单 ---")print("1. 添加待办事项")print("2. 查看待办事项")print("3. 退出")def add_todo():todo = input("请输入待办事项:")with open('todos.txt', 'a') as f:f.write(todo + '\n')print("待办事项已添加。")def view_todos():print("\n--- 待办事项列表 ---")try:with open('todos.txt', 'r') as f:todos = f.readlines()if todos:for idx, todo in enumerate(todos, 1):print(f"{idx}. {todo.strip()}")else:print("暂无待办事项。")except FileNotFoundError:print("暂无待办事项。")def main():while True:display_menu()choice = input("请选择操作(1/2/3):")if choice == '1':add_todo()elif choice == '2':view_todos()elif choice == '3':print("感谢使用,程序已退出。")breakelse:print("无效的选择,请重新输入。")if __name__ == "__main__":main()

 

进阶学习资源

推荐书籍

书名作者适用读者
《Python编程:从入门到实践》Eric Matthes初学者
《流畅的Python》Luciano Ramalho有一定基础的开发者
《Python Cookbook》David Beazley等进阶开发者

总结

通过本篇文章,我们从环境搭建开始,逐步深入了解了Python的基本语法、控制流、函数和模块、文件操作、面向对象编程以及常用的第三方库。希望读者能够通过实践项目加深理解,并利用提供的资源继续深入学习。

学习建议:

  • 持续练习:编程技能需要不断练习才能熟练。
  • 阅读源码:通过阅读他人代码提升自己的编码水平。
  • 参与社区:积极参与社区讨论,分享和获取经验。

附录:常用函数和方法速查表

字符串方法

方法描述示例
str.upper()将字符串转换为大写"hello".upper() => "HELLO"
str.lower()将字符串转换为小写"HELLO".lower() => "hello"
str.strip()去除两端空白符" hello ".strip() => "hello"
str.split()分割字符串为列表"a,b,c".split(",") => ['a','b','c']
str.replace(old, new)替换子字符串"hello".replace("l", "x") => "hexxo"

列表方法

方法描述示例
list.append(x)在末尾添加元素lst.append(4)
list.insert(i, x)在指定位置插入元素lst.insert(1, 'a')
list.pop(i)移除并返回指定位置的元素lst.pop(2)
list.sort()排序列表lst.sort()
list.reverse()反转列表lst.reverse()

字典方法

方法描述示例
dict.keys()返回所有键d.keys()
dict.values()返回所有值d.values()
dict.items()返回所有键值对d.items()
dict.get(key, default)获取键对应的值d.get('a', 0)
dict.update(other_dict)更新字典d.update({'b':2})

希望本篇文章能帮助您顺利入门Python编程的世界,开启新的学习之旅!92f23f18cbda462593419fd63956c57f.webp

 

 

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

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

一文学会 Java 8 的Predicates

​ 博客主页: 南来_北往 系列专栏&#xff1a;Spring Boot实战 前言 在这份详细的指南中&#xff0c;您将了解 Java Predicates&#xff0c;这是 Java 8 中一个新颖且有用的特性。本文解释了 Java Predicates 是什么以及如何在各种情况下使用它们。 在这份详尽的指南中…

JVM 几种经典的垃圾收集器

目录 前言 Serial Serial Old ParNew Parallel Scavenge Parallel Old CMS收集器 garbage first 收集器 前言 回顾一下之前的几种垃圾收集算法: JVM java主流的追踪式垃圾收集器-CSDN博客文章浏览阅读646次&#xff0c;点赞22次&#xff0c;收藏16次。简要介绍了几…

AI大模型教程 Prompt提示词工程 AI原生应用开发零基础入门到实战【2024超细超全,建议收藏】

在AGI&#xff08;通用人工智能&#xff09;时代&#xff0c;那些既精通AI技术、又具备编程能力和业务洞察力的复合型人才将成为最宝贵的资源。为此&#xff0c;我们提出了‘AI全栈工程师’这一概念&#xff0c;旨在更精准地描述这一复合型人才群体&#xff0c;而非过分夸大其词…

RocketMQ消费者消费的时候,宕机了,消息会丢失吗?

一个消息从生产者产生&#xff0c;到被消费者消费&#xff0c;主要经过这3个过程&#xff1a; 因此,本文将从以下这几个维度来回答: 生产者如何保证不丢消息 存储端如何保证不丢消息 消费者如何保证不丢消息 最后消费者消费的时候,宕机,消息会不会丢呢? 1. 生产者如何保证…

SaaS 软件转型计划

目录 一、转型目标 1、背景与趋势分析 2、转型策略与实施路径 3、预期成果与展望 二、现状分析 1、产品评估&#xff1a;从传统到SaaS的华丽转身 2、客户群体洞察&#xff1a;倾听需求&#xff0c;引领变革 3、销售渠道优化&#xff1a;拓宽路径&#xff0c;触达更多客…

如何高效绘制ER图?

在数据驱动的时代&#xff0c;实体-关系图&#xff08;ER图&#xff09;作为数据建模的核心工具&#xff0c;对于理解、设计和优化数据库结构至关重要。然而&#xff0c;传统的手绘或复杂软件绘制ER图方式往往效率低下且难以协作。幸运的是&#xff0c;ProcessOn在线绘图工具以…

潮玩宇宙大逃杀宝石游戏搭建开发

潮玩宇宙大逃杀的开发主要涉及以下方面&#xff1a; 1. 游戏概念和设计&#xff1a; 核心概念定义&#xff1a;确定以潮玩为主题的宇宙背景、游戏的基本规则和目标。例如&#xff0c;玩家在宇宙场景中参与大逃杀竞技&#xff0c;目标是成为最后存活的玩家。 玩法模式设计&a…

飞睿智能实时雷达活体探测传感器模块,智能家居静止检测实时感知人员有无

随着科技的飞速发展&#xff0c;我们的生活正在经历着未有的创新。在这个创新的浪潮中&#xff0c;实时雷达活体探测传感器模块的技术正逐渐崭露头角&#xff0c;以其独特的优势为我们的生活带来安全与便捷。今天&#xff0c;我们就来详细探讨一下这项技术&#xff0c;看看它是…

LeetCode Hot100 C++ 哈希 1.两数之和

LeetCode Hot100 C 1.两数之和 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个整数&#xff0c;并返回它们的数组下标。 你可以假设每种输入只会对应一个答案&#xff0c;并且你不能使用两次相同的元素。 你可以按…

银行业数据科学家的 6 条经验教训

一个扎心的现实教训是:数据科学并不像你所期望的那样。 原本希望在计算机科学、统计学和机器学习领域工作。运用新方法获得独特见解,实现一切自动化。简而言之,最终成了这个职业炒作的牺牲品。 我想和你们分享一下。希望我们能够摆脱炒作,提高你对数据科学家工作的理解。…

如何只用 CSS 制作网格?

来源&#xff1a;how-to-make-a-grid-like-graph-paper-grid-with-just-css 在看 用于打印到纸张的 CSS 这篇文章时&#xff0c;对其中的网格比较好奇&#xff0c;作者提供了 stackoverflow 的链接&#xff0c;就看到了来源的这个问题和众多回复。本文从里面挑选了一些个人比较…

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-24

计算机前沿技术-人工智能算法-大语言模型-最新研究进展-2024-09-24 1. Enriching Datasets with Demographics through Large Language Models: What’s in a Name? K AlNuaimi, G Marti, M Ravaut, A AlKetbi, A Henschel… - arXiv preprint arXiv …, 2024 通过大型语言…

9.23作业

仿照string类&#xff0c;自己手动实现 My_string 代码如下 MyString.h #ifndef MYSTRING_H #define MYSTRING_H #include <iostream> #include <cstring>using namespace std;class My_string { private:char *ptr; //指向字符数组的指针int size; …

【LeetCode:1014. 最佳观光组合 + 思维题】

&#x1f680; 算法题 &#x1f680; &#x1f332; 算法刷题专栏 | 面试必备算法 | 面试高频算法 &#x1f340; &#x1f332; 越难的东西,越要努力坚持&#xff0c;因为它具有很高的价值&#xff0c;算法就是这样✨ &#x1f332; 作者简介&#xff1a;硕风和炜&#xff0c;…

5G-A“用铲子挖金子”,为何在云南地区商用成功?

作者 | 曾响铃 文 | 响铃说 随着技术的成熟与应用&#xff0c;AI、5G-A、物联网等前沿技术领域在市场看来都属于“金矿”型产业&#xff0c;蕴藏着巨大的经济财富。然而&#xff0c;在如今的市场上&#xff0c;“挖金子”的不好过&#xff0c;反而是卖“铲子”的人赚得盆满钵…

MySQL --基本查询(下)

文章目录 3.Update3.1将孙悟空同学的数学成绩变更为 80 分3.2将曹孟德同学的数学成绩变更为 60 分&#xff0c;语文成绩变更为 70 分3.3将总成绩倒数前三的 3 位同学的数学成绩加上 30 分3.4将所有同学的语文成绩更新为原来的 2 倍 4.Delete4.1删除数据4.1.1删除孙悟空同学的考…

微软推迟在MDM设备上启用OOBE强制更新 因为IT管理员反馈称缺乏控制

微软很久之前就计划在 Windows 10/11 OOBE 期间强制下载更新&#xff0c;即若检测到系统本身属于旧版本例如并未安装最新累积更新&#xff0c;则在 OOBE 期间强制下载最新累积更新并自动安装。这种更新方式已经在面向消费者的设备上启用&#xff0c;而上周微软则是在适用于企业…

CSS文档流以及脱离文档流的方法

文档流 文档流是文档中可显示对象在排列时占用的位置/空间。例如&#xff1a;块元素自上而下摆放&#xff0c;内联元素从左到右摆放。&#xff08;文档流中限制非常的多&#xff0c;导致很多页面效果无法实现)。 常见文档流限制 高低不齐&#xff0c;底边对齐 <head>&…

机器学习之概念1

今天去上机器学习的课&#xff0c;其中我觉得可以套用之前学的强化学习&#xff0c;其中P是评估&#xff0c;T是任务&#xff0c;E是经验&#xff0c;就是利用经验来提高相关的评估任务&#xff0c;从数据中学习&#xff0c;从统计机器中学习&#xff0c;其中可以分为有监督的机…

大型语言模型(Large Language Models)的介绍

背景 大型语言模型&#xff08;Large Language Models&#xff0c;简称LLMs&#xff09;是一类先进的人工智能模型&#xff0c;它们通过深度学习技术&#xff0c;特别是神经网络&#xff0c;来理解和生成自然语言。这些模型在自然语言处理&#xff08;NLP&#xff09;领域中扮…