社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

Python速成宝典:一天从入门到实战,建议收藏!

A逍遥之路 • 6 天前 • 36 次点击  

💡 硬核干货警告:这篇文章我斥巨资(熬了两个通宵)整理,没有废话,全是实用知识点,新手大佬都能有收获!建议点赞收藏慢慢看~

为什么选Python?三句话说服你

Python现在这么火,到底值不值得学?我给你三个铁理由:

  • 学一天能干活,学一周能干大活:语法超简单,基本不需要背,敲起来像写英语作文

  • 能实现的太多了:爬虫、数据分析、人工智能、自动化、网站开发...选一个入门就能接活

  • 工资高需求大:各大招聘网站数据显示,Python相关岗位平均薪资比同级Java、PHP高出约15%

不多说了,直接开干!

基础语法

1. 变量和数据类型

Python变量不用声明类型,超简单:

# 变量赋值,随便用
name="老王"
age=35
height=1.75
is_programmer=True

# 常用数据类型
my_list= [1 23]           # 列表(可改)
my_tuple= (123)          # 元组(不可改)
my_dict= {"姓名""老王"}     # 字典
my_set= {123}            # 集合(无重复)

2. 条件判断:if语句

Python用缩进来表示代码块,四个空格是标准:

score=85

ifscore>=90:
    print("优秀")
elifscore>=80:
    print("良好")
elifscore>=60:
    print("及格")
else:
    print("不及格")

3. 循环:for和while

两种循环任你选:




    
# for循环更常用
foriinrange(5):
    print(i)    # 打印0,1,2,3,4

# while循环
i=0
whilei<5:
    print(i)
    i+=1      # 别忘了加1,否则无限循环

4. 函数:代码复用神器

# 定义函数
defcalculate_price(pricediscount=0.9):
    """计算折扣后价格"""
    final_price=price*discount
    returnfinal_price

# 调用函数
price=calculate_price(100)     # 90.0
price=calculate_price(1000.8# 80.0

5. 列表操作大全

列表是Python最常用的数据结构,必须烂熟于心:

# 创建列表
fruits= ["苹果""香蕉""橙子"]

# 添加元素
fruits.append("西瓜")         # 末尾添加
fruits.insert(1"葡萄")      # 指定位置插入

# 删除元素
fruits.remove("香蕉")         # 删除特定元素
delfruits[0]                # 删除指定位置
last=fruits.pop()          # 弹出最后一个并返回

# 切片操作
numbers= [012345]
print(numbers[1:4])         # [1, 2, 3] 不包括结束索引
print(numbers[:3])          # [0, 1, 2] 从头开始
print(numbers[2:])          # [2, 3, 4, 5] 到末尾
print(numbers[::2])         # [0, 2, 4] 步长为2
print(numbers[::-1])        # [5, 4, 3, 2, 1, 0] 反转

超实用代码片段

掌握这些代码片段,能解决80%的Python日常需求:

1. 文件读写

# 写入文件
withopen("data.txt""w"encoding="utf-8"asf:
    f.write("Python速成宝典\n第一行\n第二行")

# 读取文件
withopen("data.txt""r"encoding="utf-8"asf:
    content=f.read()
    print(content)

# 逐行读取(大文件更省内存)
withopen("data.txt""r"encoding="utf-8"asf:
    forlineinf:
        print(line.strip())  # strip()去除换行符

2. 列表推导式

用一行代码生成列表,省去大量循环:

# 普通循环
squares= []
forxinrange(10):
    squares.append(x**2)

# 用列表推导式一行搞定
squares= [x**2forxinrange(10)]
print(squares)  # [0, 1, 4, 9, 16, 25, 36, 49, 64, 81]

# 带条件的列表推导式
even_squares= [x**2forxinrange(10ifx%2==0]
print(even_squares)  # [0, 4, 16, 36, 64]

3. 日期时间处理

fromdatetimeimportdatetimetimedelta

# 获取当前时间
now=datetime.now()
print(now)  # 2025-04-19 15:30:45.123456

# 格式化日期
formatted=now.strftime("%Y年%m月%d日 %H:%M:%S")
print(formatted)   # 2025年04月19日 15:30:45

# 计算日期差
future=now+timedelta(days=10)
difference=future-now
print(difference.days)  # 10

4. 随机数生成

importrandom

# 随机整数
print(random.randint(1100))  # 1到100之间的随机整数

# 随机选择
fruits= ["苹果""香蕉""橙子""葡萄"]
print(random.choice(fruits))  # 随机选一个
print(random.sample(fruits2))  # 随机选两个,不重复

5. 字符串处理

text="  Python是世界上最好的语言  "

# 去除空格
print(text .strip())  # "Python是世界上最好的语言"

# 替换
print(text.replace("最好""最简单"))

# 分割
words="Python,Java,C++".split(",")
print(words)  # ['Python', 'Java', 'C++']

# 连接
print("-".join(words))  # Python-Java-C++

# 判断开头结尾
print("Python很强大".startswith("Python"))  # True
print("学习Python".endswith("Python"))  # True

6. 字典操作

# 创建字典
user= {
    "name""老王",
    "age"35,
    "skills": ["Python""Java"]
}

# 访问(安全方式)
print(user.get("age"))  # 35
print(user.get("height"175))  # 如果没有key,返回默认值175

# 添加/修改
user ["location"="北京"
user["age"=36

# 遍历
forkeyvalueinuser.items():
    print(f"{key}{value}")

7. JSON处理

importjson

# 字典转JSON字符串
user= {"name""老王""age"35}
json_str=json.dumps(userensure_ascii=False)  # 确保中文正常显示
print(json_str)  # {"name": "老王", "age": 35}

# JSON字符串转字典
data=json.loads(json_str)
print(data["name"])  # 老王

# 保存到文件
withopen("user.json""w"encoding="utf-8"asf:
    json.dump(userf ensure_ascii=False)

# 从文件读取
withopen("user.json""r"encoding="utf-8"asf:
    data=json.load(f)

8. 正则表达式

importre

# 匹配手机号
text="联系方式:13812345678,或者13987654321"
phones=re.findall(r"1\d{10}"text)
print(phones)  # ['13812345678', '13987654321']

# 替换敏感词
text="你好,我的密码是123456,别告诉别人"
safe_text=re.sub(r"密码是\d+""密码是******"text)
print(safe_text)  # 你好,我的密码是******,别告诉别人

9. 爬虫基础

importrequests
frombs4import BeautifulSoup

# 获取网页内容
url="https://www.example.com"
response=requests.get(url)
html=response.text

# 解析HTML
soup=BeautifulSoup(html"html.parser")
title=soup.title.text
print(title)  # 网页标题

# 获取所有链接
links= []
forlinkinsoup.find_all("a"):
    links.append(link.get("href"))
print(links)

10. 数据分析入门

importpandasaspd
importmatplotlib.pyplotasplt

# 创建数据表
data= {
    "姓名": ["张三""李四""王五""赵六"],
    "年龄": [253022 28],
    "工资": [800012000650011000]
}
df=pd.DataFrame(data)
print(df)

# 数据分析
print(df.describe())  # 统计信息
print(df.sort_values("工资"ascending=False))  # 按工资降序

# 简单可视化
df.plot(kind="bar"x="姓名"y="工资")
plt.title("员工工资对比")
plt.savefig("salary.png")
plt.close()

11. Excel处理

importpandasaspd

# 读取Excel
df=pd.read_excel("data.xlsx"sheet_name="Sheet1")
print(df.head())  # 显示前5行

# 修改数据
df["总分"=df["语文"+df["数学"+df["英语"]

# 保存到Excel
df.to_excel("result.xlsx"index=False)

12. 图像处理

fromPILimportImageImageFilter

# 打开图片
img=Image.open("photo.jpg")

# 调整大小
resized=img.resize((300200))
resized.save("photo_small.jpg")

# 裁剪图片
box= (100100400400)  # (左, 上, 右, 下)
cropped=img.crop(box)
cropped.save("photo_cropped.jpg")

# 添加滤镜
blurred=img.filter(ImageFilter.BLUR)
blurred.save("photo_blur.jpg")

13. 多线程提速

importthreading
importtime

deftask(nameseconds):
    print(f"任务 {name} 开始")
    time.sleep(seconds)  # 模拟耗时操作
    print(f"任务 {name} 结束,耗时 {seconds} 秒")

# 创建线程
threads= []
foriinrange(5):
    t=threading.Thread(target=taskargs=(f"线程{i}"i))
    threads.append(t)
    t.start()

# 等待所有线程完成
fortinthreads:
    t.join()

print("所有任务完成!")

14. 声明式类型提示(Python 3.6+)

fromtypingimportListDictOptional

defcalculate_average(numbersList[float]) ->float:
    """计算平均值"""
    returnsum(numbers/len(numbers)

defget_user(user_idint->Optional[Dict[strstr]]:
    """获取用户信息,可能返回None"""
    users= {1: {"name""张三""email""zhangsan@example.com"}}
    returnusers.get(user_id)

# 使用
avg=calculate_average([1.52.53.5])  # 2.5
user=get_user(1)  # {"name": "张三", "email": "zhangsan@example.com"}

避坑指南:新手常踩10大坑

1. 缩进不一致

# 错误示范
ifTrue:
    print("第一行")
   print("第二行")  # 缩进只有3个空格,报错!

# 正确做法
ifTrue:
    print("第一行")
    print("第二行")  # 都是4个空格

2. 可变默认参数

# 错误示范
defadd_item(itemitems=[]):  # 危险!默认列表是共享的
    items.append(item)
    returnitems

print(add_item("a"))  # ['a']
print(add_item("b"))  # ['a', 'b'] 而不是 ['b']

# 正确做法
defadd_item(itemitems=None):
    ifitemsisNone:
        items= []
    items.append(item)
    returnitems

3. 循环中修改列表

# 错误示范
numbers= [12345]
foriinrange(len(numbers)):
    ifnumbers[i%2==0:
        numbers.remove(numbers[i])  # 会跳过元素!

# 正确做法
numbers= [12345]
numbers= [xforxinnumbersifx%2!=0]  # 用列表推导式
# 或者
numbers= [12345]
fornuminnumbers[:]:  # 使用切片创建副本
    ifnum%2==0:
        numbers.remo ve(num)

4. 变量作用域

# 错误示范
defincrease_counter():
    counter+=1  # UnboundLocalError

# 正确做法
defincrease_counter():
    globalcounter
    counter+=1

5. 忘记关闭文件

# 错误示范
f=open("data.txt""w")
f.write("内容")
# 忘记关闭文件

# 正确做法(自动关闭)
withopen("data.txt""w"asf:
    f.write("内容")

6. 字符串格式化

# 老式写法(不推荐)
name="老王"
age=35
print("我叫%s,今年%d岁"% (nameage))

# 更好的方式(推荐)
print(f"我叫{name},今年{age}岁")  # Python 3.6+

7. 遍历字典错误

# 危险的方式
my_dict= {"a"1"b"2}
forkeyinmy_dict:
    ifkey=="a":
        my_dict["c"=3  # 遍历时修改字典,可能导致错误

# 安全的方式
forkeyinlist(my_dict.keys()):
    ifkey=="a":
        my_dict["c"=3

8. 浮点数比较

# 错误示范
a=0.1+0.2
print(a==0.3)  # False,因为浮点数精度问题

# 正确做法
importmath
print(math.isclose(a0.3abs_tol=1e-9))  # True

9. 异常处理太宽泛

# 错误示范
try:
    # 一大堆代码
    pass
except:  # 捕获所有异常,难以调试
    pass

# 正确做法
try:
    # 代码

    pass
exceptValueError:
    # 处理特定异常
    pass
exceptExceptionase:
    # 记录详细错误
    print(f"发生错误: {e}")

10. 深浅拷贝混淆

# 错误示范
list1= [1, [23]]
list2=list1.copy()  # 浅拷贝
list2[1][0=9
print(list1)  # [1, [9, 3]] list1也被修改了!

# 正确做法
importcopy
list1= [1, [23]]
list2=copy.deepcopy(list1)  # 深拷贝
list2[1][0=9
print(list1)  # [1, [2, 3]] list1不变

关注+点赞+在评论区说出你最想学的Python方向,也欢迎留言提问~

转发、收藏、在看,是对作者最大的鼓励!👏
关注逍遥不迷路,Python知识日日补!






           对Python,AI,自动化办公提效,副业发展等感兴趣的伙伴们,扫码添加逍遥,限免交流群

备注【成长交流】

图片

Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/181394
 
36 次点击