python自学之路-进阶习题篇(三)异常篇

本文介绍了Python编程中的异常处理技巧,通过四个练习进行深入理解:1. 设计一个函数处理文件操作异常;2. 实现URL访问并记录错误日志的函数;3. 使用多线程模拟刷卡扣费系统;4. 利用生成器实现斐波那契数列。此外,还涵盖了正则表达式的常见模式和用法。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1 定义一个函数func(filename) filename:文件的路径,函数功能:打开文件,并且返回文件内容,最后关闭,用异常来处理可能发生的错误。

def fuc(fn):
    try:
        with open(fn, "r") as f:
            a = f.read()
    except Exception as e:
        return e
    else:
        return a

print(fuc("1.txt"))

2 定义一个函数func(urllist)   urllist:为URL的列表,例如:['http://xx.com','http://www.xx.com','http://www.xxx.com'...] 

import logging,urllib.request
logger = logging.getLogger()
hdlr = logging.FileHandler('sendlog.log')
formatter = logging.Formatter('%(asctime)s %(levelname)s %(message)s')
hdlr.setFormatter(formatter)
logger.addHandler(hdlr)
logger.setLevel(logging.NOTSET)
def func(urllist):

    for i in urllist:
        try:
            f=urllib.request.urlopen(i)
        except Exception as e:
            logging.error(e)
        else:
            print(f.read())


print(func(["https://www.baidu.com","https:12313245"])
<think>我们正在回答用户关于Python快速入门自学指南的问题。根据用户需求,我们需要提供一条清晰的学习路径,从基础到实践,并强调动手实践的重要性。同时,我们将参考提供的引用材料,但注意这些引用是示例性的,实际回答应基于可靠的编程知识。 目标:构建一个结构清晰、逐步深入的Python自学指南,包含基础语法、核心概念、项目实践和进阶资源。 结构建议: 1. 学习前的准备(环境搭建,工具选择) 2. Python基础语法(变量、数据类型、控制流、函数等) 3. 核心概念(面向对象、异常处理、文件操作等) 4. 实践项目(小项目推荐) 5. 进阶学习方向(根据兴趣领域) 6. 学习建议(持续练习,参与项目) 注意:每个部分要简明扼要,突出关键点,并鼓励实践。 由于用户要求“快速入门”,我们应聚焦最核心的内容,避免过多理论,多提实践。 我们将按照上述结构组织回答,并在最后生成相关问题。</think>### Python快速入门自学指南(实践教程) 根据您的需求,我整理了系统化的Python自学路径,结合理论与实践,助您高效掌握Python编程: #### 一、基础准备(1-2天) 1. **环境搭建** - 安装[Python最新版](https://www.python.org/downloads/)(建议3.10+) - 配置VS Code/PyCharm开发环境 - 掌握包管理工具`pip install`用法 2. **基础语法速通** ```python # 变量与数据类型 name = "Alice" # 字符串 score = 95.5 # 浮点数 is_passed = True # 布尔值 # 控制结构 if score >= 60: print(f"{name} 及格了!") # f-string格式化 else: print("需要补考") # 循环结构 for i in range(3): print(f"第{i+1}次练习") ``` #### 二、核心技能进阶(1-2周) 1. **函数与模块化** ```python def calculate_area(radius): """计算圆面积""" return 3.14 * radius ** 2 # 调用函数 print(calculate_area(5)) # 输出78.5 ``` 2. **文件操作实践** ```python # 文件 with open("data.txt", "w") as f: f.write("姓名,分数\nAlice,95") # 读取CSV import csv with open("data.txt") as f: reader = csv.DictReader(f) for row in reader: print(f"{row['姓名']}的分数:{row['分数']}") ``` 3. **面向对象编程** ```python class Student: def __init__(self, name): self.name = name self.scores = [] def add_score(self, score): self.scores.append(score) def average_score(self): return sum(self.scores) / len(self.scores) # 实例化 stu = Student("Bob") stu.add_score(88) stu.add_score(92) print(f"平均分:{stu.average_score()}") # 输出90.0 ``` #### 、项目驱动学习(2-4周) 1. **实用小工具开发** - 天气查询程序(使用requests库调用API) - 文件批量重命名工具 - 简易计算器(带GUI界面) 2. **游戏开发实践** ```python # 使用Pygame制作贪吃蛇(片段) import pygame # 初始化 & 创建游戏窗口 pygame.init() screen = pygame.display.set_mode((800, 600)) # 游戏主循环 running = True while running: for event in pygame.event.get(): if event.type == pygame.QUIT: running = False # 绘制逻辑... ``` 3. **AI应用入门** ```python # 使用scikit-learn实现机器学习 from sklearn import datasets from sklearn.model_selection import train_test_split from sklearn.ensemble import RandomForestClassifier # 加载鸢尾花数据集 iris = datasets.load_iris() X_train, X_test, y_train, y_test = train_test_split(iris.data, iris.target) # 训练模型 clf = RandomForestClassifier() clf.fit(X_train, y_train) print(f"准确率:{clf.score(X_test, y_test):.2%}") ``` #### 四、持续提升建议 1. **学习资源推荐** - 免费教程:[Python官方文档](https://docs.python.org/zh-cn/3/) - 实战书籍:《Python编程:从入门到实践》 - 社区:Stack Overflow中文版、Python中文社区 2. **高效学习法** - **每日编码**:坚持每天解决1个Codewars习题 - **项目驱动**:每学完一个模块立即实践小项目 - **代码重构**:定期优化旧代码(3个月后重一个程序) - **参与开源**:在GitHub上贡献Python项目 > 关键提示:学习编程就像学习乐器,持续练习比天赋更重要。建议在学习过程中建立自己的代码仓库,6个月后回看第一个程序,你会惊讶于自己的成长速度。记住:每个程序员都经历过从"Hello World"开始的旅程,坚持下去,你终将成为Python高手![^3]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值