从零开始学习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名称 特点
IDLE Python自带,轻量级,适合入门
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)

逻辑运算符

运算符 描述 示例
and True and False(False)
or True or False(True)
not not True(False)

输入和输出

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

    复制代码
     
    python 复制代码
    print("Hello, World!")
  • 输入 :使用input()函数。

    复制代码
     
    python 复制代码
    name = input("请输入你的名字:")
    print("你好," + name)

控制流

条件语句

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

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

循环语句

for循环

用于遍历序列。

复制代码
 
python 复制代码
for i in range(5):
    print(i)

while循环

根据条件反复执行。

复制代码
 
python 复制代码
count = 0
while count < 5:
    print(count)
    count += 1

循环控制语句

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

函数和模块

定义函数

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

复制代码
 
python 复制代码
def greet(name):
    return "Hello, " + name

message = greet("Alice")
print(message)

内置函数和模块

常用内置函数

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

标准模块示例

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

    复制代码
     
    python 复制代码
    import math
    print(math.pi)          # 输出圆周率
    print(math.sqrt(16))    # 输出4.0
  • random模块:生成随机数。

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

自定义模块

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

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

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

文件操作

文件打开模式

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

读写文件示例

复制代码
 
python 复制代码
# 写入文件
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块捕获异常,保证程序的健壮性。

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

面向对象编程

类和对象

定义类

复制代码
 
python 复制代码
class Animal:
    def __init__(self, name):
        self.name = name

    def speak(self):
        pass

继承

复制代码
 
python 复制代码
class Dog(Animal):
    def speak(self):
        print(self.name + "说:汪汪汪")

dog = Dog("小黑")
dog.speak()

多态

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

复制代码
 
python 复制代码
class Cat(Animal):
    def speak(self):
        print(self.name + "说:喵喵喵")

animals = [Dog("小黑"), Cat("小白")]
for animal in animals:
    animal.speak()

常用库简介

NumPy

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

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

Pandas

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

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

Matplotlib

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

复制代码
 
python 复制代码
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的整数。
  • 用户输入猜测的数字,程序给予提示:大了、小了、猜对了。
  • 记录用户猜测的次数,直到猜对为止。

实现代码:

复制代码
 
python 复制代码
import random

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

guess_number()

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

需求分析:

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

实现代码:

复制代码
 
python 复制代码
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("感谢使用,程序已退出。")
            break
        else:
            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编程的世界,开启新的学习之旅!

相关推荐
一道微光3 分钟前
Mac的M2芯片运行lightgbm报错,其他python包可用,x86_x64架构运行
开发语言·python·macos
矛取矛求7 分钟前
QT的前景与互联网岗位发展
开发语言·qt
Leventure_轩先生7 分钟前
[WASAPI]从Qt MultipleMedia来看WASAPI
开发语言·qt
向宇it21 分钟前
【从零开始入门unity游戏开发之——unity篇01】unity6基础入门开篇——游戏引擎是什么、主流的游戏引擎、为什么选择Unity
开发语言·unity·c#·游戏引擎
m0_7482567829 分钟前
WebGIS实战开源项目:智慧机场三维可视化(学习笔记)
笔记·学习·开源
四口鲸鱼爱吃盐31 分钟前
Pytorch | 利用AI-FGTM针对CIFAR10上的ResNet分类器进行对抗攻击
人工智能·pytorch·python
是娜个二叉树!38 分钟前
图像处理基础 | 格式转换.rgb转.jpg 灰度图 python
开发语言·python
互联网杂货铺41 分钟前
Postman接口测试:全局变量/接口关联/加密/解密
自动化测试·软件测试·python·测试工具·职场和发展·测试用例·postman
Schwertlilien42 分钟前
图像处理-Ch5-图像复原与重建
c语言·开发语言·机器学习
liuyunshengsir1 小时前
Squid代理服务器的安装使用
开发语言·php