从零开始学习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.rhkb.cn/news/431709.html

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

相关文章

29 C 语言中的随机数实现:rand 与 srand

目录 1 为什么需要随机数&#xff1f; 1.1 背景介绍 1.2 应用场景 2 C 语言实现随机数 2.1 rand() 函数 2.1.1 函数原型 2.1.2 功能说明 2.1.3 案例演示 2.2 srand() 函数 2.2.1 函数原型 2.2.2 功能说明 2.2.3 案例演示 2.3 指定范围的随机数 2.3.1 获…

【JavaEE】数据链路层协议和DNS

&#x1f525;个人主页&#xff1a; 中草药 &#x1f525;专栏&#xff1a;【Java】登神长阶 史诗般的Java成神之路 &#x1f45c;一.以太网 以太网&#xff08;Ethernet&#xff09;是一种局域网技术&#xff0c;它定义了开放系统互连&#xff08;OSI&#xff09;模型中的物理…

Python网络爬虫获取Wallhaven壁纸图片(源码)

** 话不多说&#xff0c;直接附源码&#xff0c;可运行&#xff01; ** import requests from lxml import etree from fake_useragent import UserAgent import timeclass wallhaven(object):def __init__(self):# yellow# self.url "https://wallhaven.cc/search?co…

K8S介绍---搭建集群

Kubernetes介绍 官网&#xff1a;https://kubernetes.io/ 一、应用部署方式演变 1、传统部署&#xff1a;互联网早期&#xff0c;会直接将应用程序部署在物理机上 优点&#xff1a;简单&#xff0c;不需要其他技术的参与 缺点&#xff1a;不能为应用程序定义资源使用边界&a…

Java中List、ArrayList与顺序表

List、ArrayList与顺序表 List什么是List常用方法介绍List的使用 ArrayList与顺序表线性表顺序表接口的实现 ArrayList简介ArrayList的使用ArrayList的构造ArrayList的常见操作ArrayList的遍历ArrayList的扩容机制 ArrayList的具体使用杨辉三角简单的洗牌算法 ArrayList的问题及…

双向链表的基本结构及功能实现

1.基本结构: 双向链表是一种链表数据结构&#xff0c;它由一系列节点组成&#xff0c;每个节点包含三个部分&#xff1a; (1).数据域&#xff1a;存储节点的数据 (2).前驱指针:指向前一个节点 (3).后驱指针:指向下一个节点 2.基本特性&#xff1a; 双向链接: 与单向链表…

【WPF】02 按钮控件圆角配置及状态切换

按钮圆角 先从工具箱里拖进来一个Button控件&#xff0c;然后对这个按钮进行美化。 首先在 xaml 里按钮控件部分 添加如下代码&#xff1a; <Button x:Name"btnLogin" Content"登录" HorizontalAlignment"Center" Margin"0,399,0,0&q…

C++20中头文件compare的使用

<compare>是C20中新增加的头文件&#xff0c;此头文件是language support库的一部分。它包括&#xff1a;concepts、classes、customization point objects、functions。 1.concepts&#xff1a;三向比较运算符<>&#xff0c;目的是简化比对对象的过程&#xff0c;…

微服务配置管理——动态路由

动态路由 网关的路由配置全部是在项目启动时由org.springframework.cloud.gateway.route.CompositeRouteDefinitionLocator在项目启动的时候加载&#xff0c;并且一经加载就会缓存到内存中的路由表内&#xff08;一个Map&#xff09;&#xff0c;不会改变。也不会监听路由变更新…

【PG备份恢复】基于时间点的恢复(踩坑指南)

1 设置基于时间点恢复所需的配置 1.1 修改配置文件 postgresql.conf vim postgresql.conf archive_mode on archive_command cp %p /data1/backups/pg_wal_archive/%f wal_level replica 1.2 生效配置 2 进行一次全备 2.1 创建备份目录 mkdir -p /data/backup/pg_b…

C语言常见字符串函数模拟实现一:(strlen,strcpy,strcat,strcmp,strstr )

strlen模拟实现 重点&#xff1a;1.字符串已经\0作为结束标志&#xff0c;strlen返回的是字符串\0前面出现的字符个数&#xff08;不包含\0&#xff09; 2.参数指向的字符串必须要以\0结束。 3.注意函数的返回值是size_t&#xff0c;是无符号的&#xff0c;加减是无法对比的。…

thinkphp8 从入门到放弃(后面会完善用到哪里写到哪)

thinkphp8 从入门到放弃 引言 thinkphp* 大道至简一、 thinkphp8 安装安装Composerthinkphp 安装命令(tp-项目名称)多应用安装&#xff08;一个项目不会只有一个应用&#xff09;安装完文件目录如下本地部署配置伪静态好了项目可以run 二、架构服务&#xff08;Service&#xf…

大数据新视界 --大数据大厂之探索ES:大数据时代的高效搜索引擎实战攻略

&#x1f496;&#x1f496;&#x1f496;亲爱的朋友们&#xff0c;热烈欢迎你们来到 青云交的博客&#xff01;能与你们在此邂逅&#xff0c;我满心欢喜&#xff0c;深感无比荣幸。在这个瞬息万变的时代&#xff0c;我们每个人都在苦苦追寻一处能让心灵安然栖息的港湾。而 我的…

app自动化前置准备环境搭建

编写脚本之前的一些前置准备工作。 1&#xff0c;安装appium server&#xff1a;官网地址&#xff1a;http://appium.io/ 安装教程&#xff1a;https://www.cnblogs.com/gancuimian/p/16536322.html 2&#xff0c;安装appium客户端&#xff1a; appium客户端安装相对较简单…

智谱清影 - CogVideoX-2b-部署与使用

&#x1f351;个人主页&#xff1a;Jupiter. &#x1f680; 所属专栏&#xff1a;Linux从入门到进阶 欢迎大家点赞收藏评论&#x1f60a; 目录 体验地址&#xff1a;[丹摩DAMODEL官网](https://www.damodel.com/console/overview) CogVideoX 简介本篇将详细介绍使用丹摩服务器部…

OpenAI GPT o1技术报告阅读(2)- 关于模型安全性的测试案例

✨报告阅读&#xff1a;使用大模型来学习推理(Reason) 首先是原文链接&#xff1a;https://openai.com/index/learning-to-reason-with-llms/ 接下来我们看一个简单的关于模型安全性的测试&#xff0c;当模型被问到一个有风险的话题时&#xff0c;会如何思考并回答用户呢&…

CentOS中使用DockerCompose方式部署带postgis的postgresql(附kartoza/docker-postgis镜像下载)

场景 CentOS中使用Docker部署带postgis的postgresql&#xff1a; CentOS中使用Docker部署带postgis的postgresql_centos postgis插件在容器中如何安装-CSDN博客 上面使用Docker搜索和拉取kartoza/postgis时并没有任何限制。 当下如果不能科学上网时&#xff0c;大部分镜像源…

.Net Core 生成管理员权限的应用程序

创建一个ASP.NET Core Web API项目 给解决方案设置一个名称 选择一个目标框架&#xff0c;这里选择的是 .NET 8.0框架 在Porperties文件夹中添加一个app.manifest文件 设置app.manifest文件属性&#xff0c;生成操作设置为嵌入的资源 双击解决方案名称&#xff0c;编辑WebAppli…

【AI大模型】股票价格预测精度增强,基于变分模态分解、PatchTST和自适应尺度加权层

简介 股票价格指数是金融市场和经济健康的晴雨表&#xff0c;准确预测对投资决策至关重要。股票市场的高频交易和复杂行为使得预测具有挑战性&#xff0c;需开发稳定、准确的预测模型。研究表明&#xff0c;估值比率、数据驱动模型&#xff08;如支持向量机&#xff09;、股票…

Android平台使用VIA创建语音交互应用

Android平台使用VIA创建语音交互应用 概述 在 Android 平台上开发一款语音助手应用需要整合多种技术,包括语音识别(ASR)、文字转语音(TTS)、以及热词检测(Hotword Detection)。这些技术共同构成了语音助手应用的核心交互方式,使用户能够通过语音命令与设备进行无缝交…