Python基础教程(第3版)中文版 第19章 趣味编程 (笔记)

简介: Python基础教程(第3版)中文版 第19章 趣味编程 (笔记)

                               第19章 趣味编程

1. 为何要有趣

感到有趣时,实现高效就容易得多。

2. 编程柔术

在编程过程中遇到麻烦时,要灵活变通。

3.原型设计:

原型指的是尝试性实现,即一个模型。它实现了程序的主要功能。

对程序的结构(如需要哪些类和函数)有一定想法后,先实现一个功能简单的版本,有了可运行的程序后,可再添加新功能。

4.配置:

1.提取常量

常量值内置的字面量值,如数、字符串和列表。

常量可直接存储在全局变量,不必重复输入。

要指出变量为常量,变量名使用大写字母,用下划线分隔单词。

2.配置文件

将配置变量放在独立的文件中,方便进行更改设置。

方法1.为配置创建一个模块。

方法2.使用标准库模块configparser,可在配置文件中使用标准格式。如:

greeting = 'Hello, world!'

或者

greeting: Hello, world!

必须使用[files]、 [colors]等标题将配置文件分成几部分。

标题名称可自定义,然后用[]括起。

例:

创建一个配置文件,名为area.ini

内容如下:

[numbers]

pi: 3.14159265335897931

[messages]

greeting: Welcome to the area calculation program!

question: Please enter the radius:

result_message: The area is

在程序中使用:

#使用配置文件中的常量,进行圆面积计算

from configparser import ConfigParser

CONFIGFILE = "area.ini"

config = ConfigParser()

config.read(CONFIGFILE)

print(config['messages'].get('greeting'))

radius = float(input(config['messages'].get('question')+ '' ))

print(config['messages'].get('result_message'), end=' ')

print(config['numbers'].getfloat('pi') * radius **2)

5.日志

日志就是收集与程序运行相关的数据的一个东西。

print语句是一种简单的日志形式。要使用它,只需在程序开头包含:

log = open('logfile.txt', 'w')

然后就可以将程序信息写入这个文件:

print('Downloading file from URL', url, file=log)

text = urllib.urlopen(url).read()

print('File successfully downloaded', file = log)更好的做法是使用标准库中的模块logging

例:

import logging

logging.basicConfig(level=logging.INFO, filename='mylog.log')

logging.info('Starting program')

logging.info('Trying to divide 1 by 0')

print(1/0)

logging.info('The division succeed')

logging.info('ending program')

将在包含程序的文件夹找到一个'mylog.log'的文件

打开后看到程序运行的信息

INFO:root:Starting program

INFO:root:Trying to divide 1 by 0

6.如果你已不胜其烦

7.如果你想深入学习

 Andrew Hunt和David Thomas的著作《程序员修炼之道》。

 Martin Fowler等的著作《重构》①。

 四人组Erich Gamma、Richard Helm、Ralph Johnson和John Vlissides的著作《设计模式》。

 Kent Beck的著作《测试驱动开发》。

 Eric S. Raymond的著作《UNIX编程艺术》②。

 Thomas H. Cormen等的著作《算法导论》。

 高德纳的著作《计算机程序设计艺术》(卷1~卷3)③。

 Peter Van Roy和Seif Haridi的著作Concepts, Techniques, and Models of Computer Programming。


相关文章
|
3天前
|
存储 人工智能 数据挖掘
从零起步,揭秘Python编程如何带你从新手村迈向高手殿堂
【10月更文挑战第32天】Python,诞生于1991年的高级编程语言,以其简洁明了的语法成为众多程序员的入门首选。从基础的变量类型、控制流到列表、字典等数据结构,再到函数定义与调用及面向对象编程,Python提供了丰富的功能和强大的库支持,适用于Web开发、数据分析、人工智能等多个领域。学习Python不仅是掌握一门语言,更是加入一个充满活力的技术社区,开启探索未知世界的旅程。
12 5
|
2天前
|
Python
SciPy 教程 之 SciPy 图结构 7
《SciPy 教程 之 SciPy 图结构 7》介绍了 SciPy 中处理图结构的方法。图是由节点和边组成的集合,用于表示对象及其之间的关系。scipy.sparse.csgraph 模块提供了多种图处理功能,如 `breadth_first_order()` 方法可按广度优先顺序遍历图。示例代码展示了如何使用该方法从给定的邻接矩阵中获取广度优先遍历的顺序。
11 2
|
3天前
|
算法 Python
SciPy 教程 之 SciPy 图结构 5
SciPy 图结构教程,介绍图的基本概念和SciPy中处理图结构的模块scipy.sparse.csgraph。重点讲解贝尔曼-福特算法,用于求解任意两点间最短路径,支持有向图和负权边。通过示例演示如何使用bellman_ford()方法计算最短路径。
13 3
|
3天前
|
人工智能 数据挖掘 开发者
探索Python编程:从基础到进阶
【10月更文挑战第32天】本文旨在通过浅显易懂的语言,带领读者从零开始学习Python编程。我们将一起探索Python的基础语法,了解如何编写简单的程序,并逐步深入到更复杂的编程概念。文章将通过实际的代码示例,帮助读者加深理解,并在结尾处提供练习题以巩固所学知识。无论你是编程新手还是希望提升编程技能的开发者,这篇文章都将为你的学习之旅提供宝贵的指导和启发。
|
3天前
|
缓存 测试技术 Apache
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
告别卡顿!Python性能测试实战教程,JMeter&Locust带你秒懂性能优化💡
11 1
|
1天前
|
SQL 数据挖掘 Python
数据分析编程:SQL,Python or SPL?
数据分析编程用什么,SQL、python or SPL?话不多说,直接上代码,对比明显,明眼人一看就明了:本案例涵盖五个数据分析任务:1) 计算用户会话次数;2) 球员连续得分分析;3) 连续三天活跃用户数统计;4) 新用户次日留存率计算;5) 股价涨跌幅分析。每个任务基于相应数据表进行处理和计算。
|
2天前
|
机器学习/深度学习 人工智能 数据可视化
探索Python编程:从基础到高级
【10月更文挑战第33天】本文是一篇深入浅出的Python编程入门教程,适合初学者阅读。文章首先介绍了Python的基本概念和语法,然后通过实例讲解了如何使用Python进行数据处理和分析,最后介绍了一些高级特性和库,帮助读者更好地掌握Python编程。无论你是编程新手还是有一定经验的开发者,这篇文章都能给你带来新的启示和收获。
|
3天前
|
存储 人工智能 数据挖掘
探索Python编程的奥秘
【10月更文挑战第32天】在这篇文章中,我们将一起踏上一段奇妙的Python编程之旅。从基础语法到高级特性,我们将通过一系列简单而直观的代码示例,逐步揭开Python语言背后的神秘面纱。无论你是初学者还是有一定经验的开发者,这篇文章都将为你提供新的视角和深入的理解。让我们一起开始这段旅程吧!
|
3天前
|
存储 机器学习/深度学习 搜索推荐
Python编程入门:从零开始构建你的第一个程序
【10月更文挑战第32天】本文旨在通过浅显易懂的方式引导编程新手进入Python的世界。我们将一起探索Python的基础语法,并通过实例学习如何构建一个简单的程序。文章将不直接展示代码,而是鼓励读者在阅读过程中自行尝试编写,以加深理解和记忆。无论你是编程初学者还是希望巩固基础知识的开发者,这篇文章都将是你的良师益友。让我们开始吧!
|
4天前
|
算法 索引 Python
SciPy 教程 之 SciPy 图结构 3
SciPy 图结构教程:介绍图的基本概念、节点和边的定义,以及如何使用 SciPy 的 `scipy.sparse.csgraph` 模块处理图结构。重点讲解 Dijkstra 最短路径算法及其在 SciPy 中的应用,包括 `dijkstra()` 方法的参数设置和使用示例。
10 0

热门文章

最新文章