Python零基础入门指南:从小白到能写代码

目录

Python是什么?

为什么要学习Python?

如何安装Python

步骤1:下载Python

步骤2:安装Python

步骤3:验证安装

步骤4:安装一个好用的编辑器

第一个Python程序

传统的"Hello, World!"

理解你的第一个程序

进阶一点:个性化你的程序

Python基础语法

缩进:Python的灵魂

注释:给代码加说明

Python中的数据类型

数字:整数、小数和复数

字符串:处理文本

列表:有序的集合

元组:不可变的列表

字典:键值对的集合

集合:不重复的元素集合

数据类型总结

变量:存储和使用数据

什么是变量?

变量命名规则

变量赋值

变量的动态类型

变量的生命周期和作用域

运算符:数据的操作

算术运算符

比较运算符

逻辑运算符

成员运算符

身份运算符

位运算符

运算符优先级

条件语句:做决策

if语句

if-else语句

if-elif-else语句

嵌套if语句

条件表达式(三元运算符)

真值测试

链式比较

循环:重复执行代码

for循环

while循环

break和continue语句

else子句

嵌套循环

列表推导式

函数:代码的积木

定义和调用函数

带参数的函数

默认参数值

关键字参数

返回值

可变参数

作用域和生命周期

函数式编程工具

函数文档

递归函数

模块和包:使用别人的代码

什么是模块?

导入模块

常用标准库模块

创建自己的模块

什么是包?

pip和第三方库

虚拟环境

文件操作:读写文件

打开和关闭文件

使用with语句(推荐)

读取文件

写入文件

文件位置指针

处理不同格式的文件

文件和目录操作



Python是什么?

想象一下,你有一个聪明又听话的朋友,你可以用接近日常英语的语言告诉他做什么,他就能准确地完成任务。Python就像这样一个朋友 - 它是一种编程语言,让你可以用相对简单的指令告诉计算机做什么。

Python是由荷兰人Guido van Rossum在1989年开发的,他希望创造一种易于阅读和使用的语言。Python的名字来源于他喜欢的英国喜剧团体"Monty Python"。

为什么要学习Python?

  1. 简单易学:Python的语法设计得很直观,类似于英语。
  2. 使用广泛:从网站开发到数据分析,从人工智能到游戏开发,Python几乎无处不在。
  3. 就业机会多:Python是招聘市场上最需要的技能之一。
  4. 强大的社区支持:有大量的资源、库和框架可以帮助你。
  5. 适合初学者和专家:无论你是编程新手还是有经验的开发者,Python都有适合你的用途。

想象一下:

  • 如果编程语言是交通工具,那么Python就像是一辆容易上手的自行车,而不是需要复杂操作的飞机。
  • 如果编程语言是乐器,Python就像是尤克里里,容易学会第一首歌,而不是需要多年练习的小提琴。

如何安装Python

步骤1:下载Python

  1. 打开浏览器,访问官方网站:python.org
  2. 点击"Downloads"(下载)按钮
  3. 网站会自动检测你的操作系统并推荐合适的版本
  4. 下载最新的Python 3版本(例如Python 3.11.0)

小贴士:始终选择Python 3,因为Python 2已于2020年停止支持。

步骤2:安装Python

Windows用户

  1. 双击下载的.exe文件
  2. 重要:勾选"Add Python to PATH"选项(这会让你在任何地方都能使用Python)
  3. 点击"Install Now"(立即安装)
  4. 等待安装完成
  5. 看到"Setup was successful"(安装成功)就完成了

Mac用户

  1. 双击下载的.pkg文件
  2. 按照安装向导的指示进行操作
  3. 输入管理员密码(如果要求)
  4. 等待安装完成

Linux用户: 大多数Linux发行版已经预装了Python。你可以在终端中输入python3 --version检查。如果没有安装,使用包管理器安装:

  • Ubuntu/Debian: sudo apt install python3
  • Fedora: sudo dnf install python3

步骤3:验证安装

  1. 打开命令提示符(Windows)或终端(Mac/Linux)
  2. 输入:python --versionpython3 --version
  3. 如果看到类似"Python 3.11.0"的输出,说明安装成功

步骤4:安装一个好用的编辑器

虽然Python自带一个简单的编辑器(IDLE),但使用更强大的编辑器会让编程更加愉快。推荐初学者使用:

  • Visual Studio Code(免费,功能丰富)
  • PyCharm Community Edition(免费,专为Python设计)
  • Thonny(免费,专为Python初学者设计)

小贴士:如果你完全是编程新手,推荐先安装Thonny,它专为初学者设计,安装简单,界面清爽。

第一个Python程序

传统的"Hello, World!"

在编程世界,编写一个显示"Hello, World!"的程序是传统的第一步。

使用Python解释器
  1. 打开命令提示符或终端
  2. 输入pythonpython3进入Python解释器(你会看到>>>提示符)
  3. 输入:print("Hello, World!")
  4. 按回车键,你应该会看到:
    Hello, World!
    
  5. 输入exit()或按Ctrl+Z (Windows)或Ctrl+D (Mac/Linux)退出解释器
使用Python文件
  1. 打开你的代码编辑器
  2. 创建新文件
  3. 输入:print("Hello, World!")
  4. 保存为hello.py
  5. 在命令提示符或终端中,导航到保存文件的文件夹
  6. 运行:python hello.pypython3 hello.py
  7. 你会看到输出:
    Hello, World!
    

理解你的第一个程序

print("Hello, World!")

这行代码做了什么?

  • print() 是一个内置函数,用于在屏幕上显示信息
  • 括号内的内容是要显示的内容
  • "Hello, World!" 是一个字符串(文本),由引号包围

类比:想象print()函数像是一个喊话器,你在喊话器里说的任何话(放在括号里的内容)都会被喊出来(显示在屏幕上)。

进阶一点:个性化你的程序

让我们创建一个稍微复杂一点的程序,它会问你的名字,然后打招呼:

# 这个程序会向用户打招呼
name = input("请输入你的名字:")  # 获取用户输入并存储在变量中
print("你好," + name + "!欢迎学习Python!")  # 组合文本并显示

保存为greeting.py并运行。程序会:

  1. 显示"请输入你的名字:"并等待你输入
  2. 将你输入的名字存储在name变量中
  3. 显示个性化的问候语,包含你的名字

程序运行结果示例:

请输入你的名字:小明
你好,小明!欢迎学习Python!

成就解锁:恭喜你!你刚刚写了一个可以与用户交互的程序!

Python基础语法

缩进:Python的灵魂

在大多数编程语言中,使用花括号{}来标记代码块。但Python使用缩进(通常是4个空格)来表示代码块。这使得Python代码非常整洁易读,但也意味着缩进错误会导致程序出错。

# 正确的缩进
if True:
    print("这句话会被打印")
    print("这句话也会被打印")
    
    if True:
        print("更深的缩进")
        
print("回到最外层")

# 错误的缩进
if True:
    print("这是正确的")
print("这也是正确的,不在if语句块内")
  print("错误!不一致的缩进")  # 这行会引起错误!

类比:想象缩进就像是书中的段落和子段落。主段落靠左对齐,子段落缩进表示它们属于上一个主段落。

缩进的黄金法则:
  • 同一个代码块中的语句必须有相同的缩进
  • 子代码块比父代码块多缩进一级(通常是4个空格)
  • 使用空格而不是制表符(Tab)缩进,或将编辑器配置为按Tab键插入4个空格

注释:给代码加说明

注释是写给人看的,Python解释器会忽略它们。好的注释可以让你和其他人更容易理解代码。

# 这是单行注释

print("Hello")  # 这也是注释,可以放在代码后面

"""
这是多行注释
可以跨越多行
通常用于函数或类的文档说明
"""

'''
这也是多行注释
单引号或双引号都可以
只要有三个连续的引号
'''
写好注释的技巧:
  • 解释为什么(代码的目的),而不是怎么做(代码已经显示了这点)
  • 解释复杂的算法或逻辑
  • 更新代码时更新相关注释
  • 不要写显而易见的注释,如# 将x加1这样的

Python中的数据类型

数字:整数、小数和复数

Python支持多种数字类型,让你可以处理几乎所有类型的数值数据。

整数 (int)

整数是没有小数部分的数字。

age = 25
temperature = -10
large_number = 1000000  # 一百万
# 可读性更好的大数字写法
large_number = 1_000_000  # 下划线会被忽略,只是为了提高可读性

print(type(age))  # <class 'int'>
浮点数 (float)

浮点数是有小数部分的数字。

height = 1.75  # 米
pi = 3.14159
tiny = 1.0e-10  # 科学记数法:1.0 × 10^(-10)

print(type(height))  # <class 'float'>

注意:浮点数可能有精度问题。例如,0.1 + 0.2可能不完全等于0.3,而是非常接近的值,如0.30000000000000004。这是因为计算机以二进制存储小数,有些小数无法精确表示。

复数 (complex)

复数有实部和虚部,使用j表示虚部。

c = 3 + 4j  # 复数:3 + 4i
print(c.real)  # 3.0(实部)
print(c.imag)  # 4.0(虚部)
print(type(c))  # <class 'complex'>
数字运算
# 基本算术
a = 10
b = 3

print(a + b)  # 13(加法)
print(a - b)  # 7(减法)
print(a * b)  # 30(乘法)
print(a / b)  # 3.3333...(除法,结果是浮点数)
print(a // b)  # 3(整除,结果是整数)
print(a % b)  # 1(取余,即10除以3后的余数)
print(a ** b)  # 1000(幂运算,10的3次方)

# 复合赋值运算符
x = 5
x += 3  # 等同于 x = x + 3
print(x)  # 8

y = 10
y *= 2  # 等同于 y = y * 2
print(y)  # 20

类比:整数就像是你在数数时用的数字(1, 2, 3...);浮点数就像是带小数点的测量值(身高、体重);复数就像是在平面坐标系中同时表示x和y坐标的数。

字符串:处理文本

字符串是一系列字符的集合,用于表示文本数据。在Python中,字符串用单引号(')或双引号(")括起来。

创建字符串
# 单引号或双引号都可以
name = 'Alice'
greeting = "Hello, World!"

# 三引号可以创建多行字符串
address = """123 Main St.
Anytown, CA 12345
USA"""

print(address)
# 输出:
# 123 Main St.
# Anytown, CA 12345
# USA
字符串操作
# 字符串连接(合并)
first_name = "John"
last_name = "Doe"
full_name = first_name + " " + last_name
print(full_name)  # John Doe

# 重复字符串
echo = "Hello " * 3
print(echo)  # Hello Hello Hello

# 获取字符串长度
message = "Welcome to Python!"
length = len(message)
print(length)  # 18

# 索引(获取单个字符)
# 索引从0开始!第一个字符的索引是0,第二个是1,依此类推
print(message[0])  # W(第一个字符)
print(message[11])  # P

# 负索引(从字符串末尾开始)
print(message[-1])  # !(最后一个字符)
print(message[-2])  # n(倒数第二个字符)

# 切片(获取子字符串)
print(message[0:7])  # Welcome(从索引0开始,直到但不包括索引7)
print(message[:7])  # Welcome(省略起始索引表示从开头开始)
print(message[11:])  # Python!(省略结束索引表示直到末尾)
print(message[::2])  # Wloet yhn(步长为2,即隔一个字符取一个)

类比:字符串就像一个字符项链,每个字符是一个珠子。索引就是珠子的位置编号,切片就是获取一段连续的珠子。

字符串方法

Python的字符串有很多内置方法,帮助你执行常见操作:

text = "  Hello, Python World!  "

# 大小写转换
print(text.upper())  # 转大写: "  HELLO, PYTHON WORLD!  "
print(text.lower())  # 转小写: "  hello, python world!  "
print(text.title())  # 每个单词首字母大写: "  Hello, Python World!  "

# 去除空白
print(text.strip())  # 去除两端空白: "Hello, Python World!"
print(text.lstrip())  # 去除左侧空白: "Hello, Python World!  "
print(text.rstrip())  # 去除右侧空白: "  Hello, Python World!"

# 查找和替换
print(text.find("Python"))  # 查找子串,返回首次出现的索引: 9
print(text.replace("Python", "Amazing"))  # 替换: "  Hello, Amazing World!  "

# 拆分和连接
words = text.split()  # 按空白拆分成列表
print(words)  # ['Hello,', 'Python', 'World!']
new_text = "-".join(words)  # 用-连接列表中的字符串
print(new_text)  # Hello,-Python-World!

# 检查内容
print("Python" in text)  # True(检查是否包含"Python")
print(text.startswith("Hello"))  # False(因为有前导空格)
print(text.endswith("!"))  # False(因为有尾随空格)

# 格式化字符串
name = "张三"
age = 25
# 使用f-string(Python 3.6+)
greeting = f"你好,{name}!你已经{age}岁了。"
print(greeting)  # 你好,张三!你已经25岁了。

# 旧式格式化
greeting2 = "你好,%s!你已经%d岁了。" % (name, age)
print(greeting2)  # 你好,张三!你已经25岁了。

# format方法
greeting3 = "你好,{0}!你已经{1}岁了。".format(name, age)
print(greeting3)  # 你好,张三!你已经25岁了。

小贴士:f-string是Python 3.6+中推荐的字符串格式化方法,它简洁易读,性能也更好。

列表:有序的集合

列表是Python中最常用的数据类型之一,用于存储有序的项目集合。列表可以包含不同类型的元素,甚至可以包含其他列表。

创建列表
# 创建列表
fruits = ["apple", "banana", "cherry"]
mixed = [1, "hello", 3.14, True]
empty_list = []

# 创建列表的另一种方式
numbers = list(range(1, 6))  # 使用range函数创建列表[1, 2, 3, 4, 5]
print(numbers)
访问列表元素
# 通过索引访问(从0开始)
print(fruits[0])  # apple
print(fruits[1])  # banana
print(fruits[-1])  # cherry(负索引从末尾开始)

# 切片(与字符串类似)
print(fruits[0:2])  # ['apple', 'banana'](从索引0到1)
print(fruits[:2])  # ['apple', 'banana'](从开头到索引1)
print(fruits[1:])  # ['banana', 'cherry'](从索引1到末尾)
修改列表

列表是可变的,这意味着你可以在创建后改变它们:

# 修改元素
fruits[0] = "orange"
print(fruits)  # ['orange', 'banana', 'cherry']

# 添加元素
fruits.append("grape")  # 在末尾添加
print(fruits)  # ['orange', 'banana', 'cherry', 'grape']

fruits.insert(1, "kiwi")  # 在指定位置插入
print(fruits)  # ['orange', 'kiwi', 'banana', 'cherry', 'grape']

# 扩展列表
more_fruits = ["pear", "melon"]
fruits.extend(more_fruits)  # 添加另一个列表的所有元素
# 也可以用 fruits += more_fruits
print(fruits)  # ['orange', 'kiwi', 'banana', 'cherry', 'grape', 'pear', 'melon']

# 删除元素
fruits.remove("banana")  # 删除指定元素
print(fruits)  # ['orange', 'kiwi', 'cherry', 'grape', 'pear', 'melon']

popped = fruits.pop()  # 删除并返回最后一个元素
print(popped)  # melon
print(fruits)  # ['orange', 'kiwi', 'cherry', 'grape', 'pear']

popped_index = fruits.pop(1)  # 删除并返回指定索引的元素
print(popped_index)  # kiwi
print(fruits)  # ['orange', 'cherry', 'grape', 'pear']

del fruits[0]  # 删除指定索引的元素(不返回值)
print(fruits)  # ['cherry', 'grape', 'pear']

类比:列表就像一个火车,每个车厢是一个元素。你可以查看任何车厢的内容(索引),替换车厢(修改),添加新车厢(append/insert),或者移除车厢(remove/pop)。

常用列表操作
numbers = [3, 1, 4, 1, 5, 9, 2, 6]

# 列表长度
print(len(numbers))  # 8

# 排序
numbers.sort()  # 原地排序(改变原列表)
print(numbers)  # [1, 1, 2, 3, 4, 5, 6, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值