Python编程从0到1完整教程:我是怎么零基础入门的
我学Python的时候已经工作三年了,零基础,大学学的文科。刚开始看代码跟天书一样,一行都看不懂。但我逼着自己每天学一小时,用了半年能独立写爬虫和数据处理脚本,现在工作中经常用Python处理数据,比用Excel快十倍。今天把我自学Python的完整路径和踩过的坑分享出来,零基础也能学。
为什么学Python
先说为什么是Python不是别的语言。Python语法简单,接近自然语言,对新手友好。应用领域广,数据分析、人工智能、爬虫、自动化、Web开发都能用。社区活跃,遇到问题搜一下就有答案。就业机会多,Python开发和数据分析岗位薪资不低。
我当初学Python是因为工作中要处理大量Excel数据,手动做要一整天,用Python脚本半小时搞定。学会了之后真的打开新世界,很多重复劳动都能自动化。
如果你是零基础,别纠结学什么语言,Python就对了。
环境搭建
学编程第一步是装好环境。很多新手卡在环境配置上,我也是。
最简单的方法:下载Anaconda。Anaconda自带Python和常用库(numpy、pandas、matplotlib等),不用一个个装。去官网下载对应系统的版本,安装时勾选"Add to PATH"。
装完打开Anaconda Navigator,启动Jupyter Notebook或者Spyder。Jupyter是交互式的,写一段运行一段,适合学习。Spyder像传统IDE,适合写完整脚本。
如果你不想装Anaconda,也可以去Python官网下载Python,然后用pip装库。但新手建议直接用Anaconda,省很多事。
编辑器推荐VS Code,免费轻量,插件多。装个Python插件就能写代码。
我当初装Anaconda折腾了半天,因为没勾PATH,命令行用不了python。所以安装时一定记得勾PATH。
第一个程序
打开Jupyter Notebook,新建一个Notebook,输入:
print("Hello, World!")
按Shift+Enter运行,看到输出Hello, World!。恭喜你,第一个程序跑起来了。
print是Python的输出函数,把括号里的内容显示出来。引号里的是字符串,就是文本。
这一步虽然简单,但意义重大,证明你的环境没问题,可以开始写代码了。
变量和数据类型
变量是存数据的容器。Python的变量不用声明类型,直接赋值:
name = "张三" # 字符串
age = 25 # 整数
height = 1.75 # 浮点数
is_student = True # 布尔值
Python的基本数据类型有:int(整数)、float(小数)、str(字符串)、bool(布尔)、list(列表)、dict(字典)、tuple(元组)、set(集合)。
变量命名规则:字母数字下划线,不能数字开头,不能用关键字(比如if、for)。建议用英文有意义的名字,别用拼音。
type()函数能看变量类型:type(age) 返回int。
我刚开始经常把数字和字符串搞混,比如name = 123,后来发现需要加引号才是字符串。多写几次就记住了。
字符串操作
字符串是用得最多的类型。几个常用操作:
拼接:"Hello" + " " + "World" 得到"Hello World"
重复:"ha" * 3 得到"hahaha"
取长度:len("Hello") 返回5
切片:"Hello"[0] 返回"H","Hello"[1:3] 返回"el"。注意索引从0开始,切片左闭右开。
格式化:f"我叫{name},今年{age}岁"。f-string是Python3.6+的语法,最方便。
常用方法:.upper()转大写,.lower()转小写,.strip()去空格,.split(",")按逗号分割,.replace("a","b")替换。
字符串方法很多,不用全记,用到再查。我经常记不住的方法直接搜"Python 字符串 方法"。
条件判断
条件判断让程序根据情况执行不同代码:
age = 18
if age >= 18:
print("成年了")
elif age >= 12:
print("青少年")
else:
print("儿童")
注意Python用缩进表示代码块,不是大括号。if、elif、else后面有冒号,下面缩进4个空格。
比较运算符:==等于、!=不等于、>大于、<小于、>=大于等于、<=小于等于。
逻辑运算符:and且、or或、not非。
缩进是Python的特色,也是新手最容易出错的地方。一定要用4个空格缩进,别用Tab,不同编辑器Tab宽度不一样容易乱。VS Code会自动把Tab转成4空格。
循环
循环用来重复执行代码。
for循环,遍历序列:
for i in range(5):
print(i)
range(5)生成0,1,2,3,4。range(2,5)生成2,3,4。range(0,10,2)生成0,2,4,6,8。
遍历列表:
fruits = ["苹果", "香蕉", "橘子"]
for fruit in fruits:
print(fruit)
while循环,条件满足时循环:
count = 0
while count < 5:
print(count)
count += 1
注意while循环要有让条件变False的语句,否则死循环。我写错过几次死循环,程序卡住不动,后来加了count += 1就好了。
break跳出循环,continue跳过本次。
列表和字典
列表是有序序列,可以存不同类型:
nums = [1, 2, 3, 4, 5]
nums.append(6) # 加元素
nums[0] # 取第一个,索引0
nums[-1] # 取最后一个
len(nums) # 长度
nums.pop() # 删除最后一个
列表推导式很Pythonic:[x*2 for x in range(5)] 得到[0,2,4,6,8]。
字典是键值对:
person = {"name": "张三", "age": 25, "city": "北京"}
person["name"] # 取值
person["job"] = "程序员" # 加键值
person.get("email", "无") # 取值,没有返回默认值
遍历字典:
for key, value in person.items():
print(key, value)
字典查找比列表快,适合存结构化数据。我处理数据大量用字典,按key取值很方便。
函数
函数把重复代码封装起来:
def greet(name):
return f"你好,{name}"
result = greet("张三")
def定义函数,参数在括号里,return返回值。调用函数加括号。
默认参数:
def greet(name, greeting="你好"):
return f"{greeting},{name}"
不传greeting就用默认值"你好"。
函数是编程的核心,学会写函数,代码就有结构了。我现在写脚本都会把功能拆成函数,可读性强还好维护。
文件操作
读写文件是常用功能:
# 读文件
with open("data.txt", "r", encoding="utf-8") as f:
content = f.read()
# 写文件
with open("data.txt", "w", encoding="utf-8") as f:
f.write("Hello")
with语句会自动关闭文件,不用手动关,推荐用。
encoding="utf-8"一定要加,不然中文可能乱码。这是新手常踩的坑,我踩过好几次。
读CSV文件建议用pandas,后面讲。
异常处理
程序出错会崩溃,用try-except捕获:
try:
result = 10 / 0
except ZeroDivisionError:
print("不能除以0")
except Exception as e:
print(f"出错了:{e}")
try里的代码出错会跳到except,程序不会崩溃。可以捕获特定异常,也可以用Exception捕获所有。
实际开发中,网络请求、文件操作都要加异常处理,防止意外。我写爬虫时每个请求都加了try-except,不然遇到一个坏链接整个程序就停了。
常用库介绍
Python强大在库,常用的:
requests:发HTTP请求,爬虫必用。pip install requests。
pandas:数据处理,读写Excel、CSV,数据分析必用。pip install pandas。
numpy:数值计算,数组操作。
matplotlib:画图。
openpyxl:操作Excel。
selenium:浏览器自动化。
我最常用的是pandas和requests。pandas处理Excel太方便了,几万行数据几秒搞定。
实战:批量处理Excel
给大家看一个真实的工作场景,用pandas批量处理Excel。
需求:把一个文件夹里所有Excel的"销售额"列求和,输出汇总表。
import pandas as pd
import os
folder = "sales_data"
files = [f for f in os.listdir(folder) if f.endswith(".xlsx")]
total = 0
for file in files:
df = pd.read_excel(f"{folder}/{file}")
total += df["销售额"].sum()
print(f"总销售额:{total}")
就这么几行代码,处理几十个Excel几秒搞定,手动做要一上午。这就是Python的威力。
学习方法和路线
我的学习路线供参考:
第一个月:基础语法(变量、条件、循环、函数),每天写小练习。
第二个月:数据结构(列表、字典)、文件操作、异常处理。
第三个月:学pandas和requests,做小项目(数据处理、简单爬虫)。
第四个月:做完整项目,比如爬取网站数据并分析。
学习方法:
别只看教程,要写代码。看十遍不如写一遍。
每天写一点,保持手感。我每天写一小时,半年见效。
遇到问题先搜,90%的问题别人遇到过。
做项目,用项目驱动学习。做项目过程中会遇到各种问题,解决了就学会了。
我是在解决实际工作问题中学Python的,遇到不会的就搜就学,这样记得牢。
常见坑
缩进错误:Python用缩进,一定要统一用4空格。
中文乱码:文件操作加encoding="utf-8"。
变量名冲突:别用list、dict、str这些内置名字当变量名,会覆盖内置函数。
循环不更新条件:while循环一定要有让条件变False的语句。
除法:Python3的/是真除法(返回float),//是整除。
列表引用:b = a是引用,改b会影响a。要复制用b = a.copy()或者b = a[:]。
这些坑我都踩过,分享出来让大家少走弯路。
学Python没有捷径,就是多写多练。刚开始会觉得难,坚持过前三个月,后面就越来越顺。现在Python是我工作中最常用的工具之一,处理数据自动化全靠它。希望这篇教程能帮你入门。
