Python编程:从入门到实践 学习笔记(CHAP1-CHAP5)

本文档总结了Python编程的基础知识,包括环境配置、数据类型操作、列表管理及条件判断等内容,适合初学者快速掌握Python核心概念。

学习python的过程中整理出来的一些笔记,把书上知识点和一些代码精简出来了,由于书是外文翻译过来的,有些语句重新用自己的话组织了一下,更符合国人的阅读习惯,看起来更清晰明白,无偿分享给大家一起交流学习。

CHAP 1 配置环境

配置开发环境,按照书上安装即可。编辑器我用的和书上不太一样,用的是Pycharm,代码清晰,用着也很顺手。各个编辑器基本大同小异,挑自己用的顺手的就行。

CHAP 2 变量和简单数据类型

字符串:用引号括起的都是字符串,其中的引号可以是单引号,也可以是双引号

以首字母大写的方式显示每个单词:title()
字符串改为全部大写:upper()
字符串改为全部小写:lower()
如:

name = "Ada Lovelace"
print(name.title())
print(name.upper())
print(name.lower())

合并(拼接)字符串:"+"

删除空白
剔除字符串开头的空白:lstrip()
剔除字符串末尾的空白:rstrip()
同时剔除字符串两端的空白:strip()

注:这种删除只是暂时的,接下来再次询问favorite_language 的值时,你会发现这个字符串与输入时一样,依然包含多余的空白。
要永久删除这个字符串中的空白,必须将删除操作的结果存回到变量。

>>> favorite_language = 'python '>>> favorite_language = favorite_language.rstrip()
>>> favorite_language
'python'

使用函数str() 避免类型错误:可调用函数str() ,它让Python将非字符串值表示为字符串

注释:在Python中,注释用井号(# )标识

CHAP 3 列表

列表:在Python中,用方括号([] )来表示列表,并用逗号来分隔其中的元素。
如:

bicycles = ['trek', 'cannondale', 'redline', 'specialized']
print(bicycles)
输出:
['trek', 'cannondale', 'redline', 'specialized']

索引指定为-1 ,可让Python返回最后一个列表元素,索引-2 返回倒数第二个列表元素,索引-3 返回倒数第三个列表元素,以此类推。
bicycle[-1]…

添加元素:
在列表末尾添加元素:方法append() 如:motorcycles.append('ducati')
在列表的任何位置添加新元素:insert() 如:motorcycles.insert(0, 'ducati')

删除元素:
1.使用del 可删除任何位置处的列表元素: 如:
del motorcycles[0]
2.使用pop() 来删除列表中任何位置的元素,并返回被删除的元素的值:popped_motorcycle = motorcycles.pop() 【( )内为空默认删除最后一个元素】
3.根据值删除元素 使用方法remove() 如:motorcycles.remove(‘ducati’)
注意:方法remove() 只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要使用循环来判断是否删除了所有这样的值。

组织列表(排序)
使用方法sort() 对列表进行永久性排序:

1.永久性地修改了列表元素的排列顺序,按字母顺序排列:方法sort() 如:cars.sort()

2.按与字母顺序相反的顺序排列:向sort() 方法传递参数reverse=True 如:cars.sort(reverse=True)

使用函数sorted() 对列表进行临时排序:

按特定顺序显示列表元素,但不影响它们在列表中的原始排列顺序:可使用函数sorted() 如:print(sorted(cars))

按与字母顺序相反的顺序显示列表:向函数sorted() 传递参数reverse=True 如:print(sorted(cars,reverse=True))

反转列表元素的排列顺序:方法reverse() 如:cars.reverse()
确定列表的长度:函数len() 如:len(cars)

注意:Python计算列表元素数时从1开始,因此确定列表长度时,一般不会遇到差一错误。

CHAP 4 对列表进行操作

1、遍历整个列表:可使用Python中的for循环
如:

magicians = ['alice', 'david', 'carolina'] 
for magician in magicians:    # 注意不要遗漏冒号
    print(magician)

注:每个缩进的代码行都是循环的一部分,在for循环后面,没有缩进的代码都只执行一次

2、函数range() :能够轻松地生成一系列的数字
如:

for value in range(1,5):
    print(value)
输出:
1
2
3
4

注意:python从你指定的第一个值开始数,并在到达你指定的第二个值后停止,因此输出不包含第二个值

3、使用range() 创建数字列表:
可使用函数list() 将range() 的结果直接转换为列表,如果将range() 作为list() 的参数,输出将为一个数字列表。
如:

numbers = list(range(1,6))
print(numbers)
输出:
[1, 2, 3, 4, 5]

使用函数range() 时,还可指定步长。

even_numbers = list(range(2,11,2))
print(even_numbers)
输出:[2, 4, 6, 8, 10]

4、创建一个列表,其中包含前10个整数(即1~10)的平方:

squares = []
for value in range(1,11): 
    squares.append(value**2)
print(squares)
输出:
[1, 4, 9, 16, 25, 36, 49, 64, 81, 100]

列表解析:

squares = [value**2 for value in range(1,11)]
print(squares)         
#以上两段代码结果相同

首先指定一个描述性的列表名【squares】,并定义一个表达式【value2】,用于生成要存储到列表中的值,
接下来,编写一个for 循环【for value in range(1,11) 】,用于给表达式提供值。
在这个示例中,for循环为for value in range(1,11),它将值1~10提供给表达式value
2 。
请注意,这里的for 语句末尾没有冒号。

5、找出数字列表的最大值、最小值和总和:

>>> digits = [1, 2, 3, 4, 5, 6, 7, 8, 9, 0]
>>> min(digits):   最大值
0
>>> max(digits):   最小值
9
>>> sum(digits):   求总和
45

6、切片:处理列表的部分元素
可指定要使用的第一个元素和最后一个元素的索引
如:

players = ['charles', 'martina', 'michael', 'florence', 'eli'] 
print(players[0:3])    //指定索引0~3,这将输出分别为012 的元素。 
输出:  
['charles', 'martina', 'michael'] 

注意:与函数range() 一样,Python在到达指定的第二个索引前面的元素后停止。

若没有指定第一个索引,Python将自动从列表开头开始
如:print(players[:4])

要让切片终止于列表末尾,可省略终止索引
如:print(players[2:])

负数索引返回离列表末尾相应距离的元素,因此可以输出列表末尾的任何切片。
如:print(players[-3:])

7、遍历列表的部分元素:可在for 循环中使用切片
如:

players = ['charles', 'martina', 'michael', 'florence', 'eli']
for player in players[:3]:
    print(player.title())
输出:
Charles
Martina
Michael

8、复制列表:同时省略起始索引和终止索引([:])
如:

my_foods = ['pizza', 'falafel', 'carrot cake']
friend_foods = my_foods[:]

9、元组:不可变的列表 //使用圆括号来标识,定义元组后,就可以使用索引来访问其元素,就像访问列表元素一样。
如:

dimensions = (200, 50)
print(dimensions[0])
print(dimensions[1])

注:如果要修改元组中元素的值,需重新定义整个元组。

格式设置指南:
1.PEP 8建议每级缩进都使用四个空格
2.在编写代码时应该使用制表符键,但一定要对编辑器进行设置,使其在文档中插入空格而不是制表符。
2.建议使用79字符的标准行长,PEP 8还建议注释的行长都不超过72字符

CHAP 5 If语句

1、If 语句

cars = ['audi', 'bmw', 'subaru', 'toyota']
for car in cars: 
	if car == 'bmw':
		print(car.upper())
	else:
		print(car.title())
注:if语句中也用缩进量来表示段间逻辑。

2、同时检查多个条件:关键字and和or

>>> age_0 >= 21 and age_1 >= 21
>>> (age_0 >= 21) and (age_1 >= 21)     
#为改善可读性,可将每个测试都分别放在一对括号内

3、判断特定的值包含在列表中:可使用关键字in
如:

>>> requested_toppings = ['mushrooms', 'onions', 'pineapple'] 
>>> 'mushrooms' in requested_toppings
True 
>>> 'pepperoni' in requested_toppings
False

判断特定值不包含在列表中:not in

4、if-elif-else 结构 //可根据需要使用任意数量的elif 代码块
如:

age = 12
if age < 4:
	print("Your admission cost is $0.")
elif age < 18:
	print("Your admission cost is $5.")
else:
	print("Your admission cost is $10.")

注:Python并不要求if-elif 结构后面必须有else 代码块,如果知道最终要测试的条件,应考虑使用一个elif 代码块来代替else 代码块。
如:

age = 12
if age < 4:
	price = 0
elif age < 18:
	price = 5
elif age < 65:
	price = 10 
elif age >= 65:
	price = 5
print("Your admission cost is $" + str(price) + ".")

注:如果只想执行一个代码块,就使用if-elif-else 结构;如果要运行多个代码块,就使用一系列独立的if 语句。

5、确定列表非空

requested_toppings = []
if requested_toppings:  //在运行for 循环前确定列表是否为空很重要
	for requested_topping in requested_toppings:
		print("Adding " + requested_topping + ".")
		print("\nFinished making your pizza!") 
else:
	print("Are you sure you want a plain pizza?")
<think>好的,我现在需要帮助用户生成《Python编程:从入门实践》这本书的思维导图,并且用户希望知道有哪些自动生成工具或模板可以使用。首先,我要回顾之前的对话历史,确保符合用户的需求和已有的信息。 用户之前询问了Python零基础入门的学习资料,我提供了分阶段的学习路线、资源推荐以及学习方法。现在用户提到了站内引用,这些引用主要关于Python学习路线和思维导图的资源。用户现在想要针对《Python编程:从入门实践》这本书生成思维导图,并询问工具或模板。 首先,我需要确定用户的具体需求。用户可能希望将书中的内容结构化,通过思维导图来帮助理解和记忆。因此,我需要推荐适合的工具,同时可能需要提供生成思维导图的步骤或方法,尤其是如何根据书籍内容来组织节点。 接下来,回顾用户提供的引用内容,引用1提到了Python学习路线的思维导图,包括基础语法、面向对象编程、数据处理等,这可能和这本书的章节结构相似。引用2和4提到了一些资源,包括技术点整理和全套思维导图,可能相关的模板或结构可以参考。引用3则列出了Python的不同方面,如数据库、多线程等,可能与书籍的高级章节相关。 现在需要思考哪些工具适合生成思维导图。常见的工具包括XMind、MindMaster、FreeMind等,这些工具通常支持手动创建,但用户可能希望自动生成,所以需要考虑是否有支持从文本或大纲自动生成思维导图的工具。例如,有些工具可以从Markdown文件或大纲文本导入生成结构。另外,是否有现成的模板可以直接使用,或者需要用户自己根据书籍录创建。 还需要考虑用户的技术水平,用户是零基础,所以工具需要易于使用,不需要复杂的配置。可能需要推荐一些在线工具,如ProcessOn、百度脑图,这些不需要安装,界面友好。 另外,用户提到的书籍《Python编程:从入门实践》的结构可能需要分析。通常这类书籍分为基础部分和项部分,例如第一部分讲语法,第二部分做项。思维导图需要涵盖这些部分,可能需要分主要章节、关键概念、代码示例等。 然后,我需要确认是否有现成的模板或资源可以直接使用。根据引用中的信息,用户提供的站内引用可能有相关的思维导图资源,例如引用2提到的“最全python入门思维导图”可能包含基础部分,但需要结合具体书籍内容进行调整。如果没有现成的模板,用户可能需要手动创建,但可以借鉴这些资源的结构。 最后,总结工具推荐和步骤,可能需要分步骤说明如何根据书籍录创建思维导图,推荐合适的工具,并提供学习建议,比如结合实践来巩固知识。同时,确保回答结构清晰,符合用户之前的问题格式,并添加相关问题以引导用户进一步探索。</think>根据《Python编程:从入门实践》的体系结构,结合思维导图生成需求,为你整理以下专业解决方案: --- ### 一、专用工具推荐 1. **XMind(首推)** - 内置「技术文档」模板库 - 支持从Markdown大纲自动生成层级结构 ```python # 书籍录转Markdown示例(自动化脚本思路) import os with open(&#39;book_toc.txt&#39;) as f: chapters = [line.strip() for line in f] md_content = "\n".join([f"# {chap}" for chap in chapters]) ``` 2. **MindMaster(教育版)** - 提供「编程学习」主题模板 - 支持API批量导入知识节点[^2] 3. **在线工具** - **GitMind**:含「Python教材解析」模板 - **ProcessOn**:可直接复用「从入门实践」学习路线图[^4] --- ### 二、核心内容框架 基于原书知识体系,推荐三级结构设计: ``` 基础语法层 ├── 变量与简单数据类型 │ ├── 字符串操作(.title()/.format()) │ └── 数字类型转换(int()/float()) ├── 列表与字典 │ ├── 列表解析式 │ └── 嵌套字典存储 └── 用户输入 ├── input()函数 └── while循环验证 项实践层 ├── 数据可视化 │ ├── Matplotlib基础 │ └── Pygal交互图表 ├── Web应用 │ ├── Django模型设计 │ └── 用户认证系统 └── 游戏开发 ├── Pygame事件循环 └── 碰撞检测逻辑 ``` --- ### 三、自动化生成技巧 1. **文本转导图** - 使用Typora编辑章节概要后导出`.md`文件 - 通过XMind「文件→导入→Markdown」自动生成结构[^3] 2. **代码关联** ```mermaid graph LR A[类/对象] --> B(继承机制) A --> C(属性封装) B --> D[[案例:游戏角色类]] ``` 3. **知识图谱扩展** - 在思维导图节点添加: - 对应书页标注(如:P.158) - 重点习题标记(★) - 扩展阅读链接[^1] --- ### 四、学习效果增强 1. **渐进式更新** - 每完成一章添加「掌握进度条」 - 用不同颜色标注难点(红色)、易错点(黄色) 2. **项驱动法** - 在「外星人入侵」节点附加: - 代码片段 - 调试记录 - 性能优化思路 ---
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值