学习<<Python编程从入门到实践第2版>>
Published: 2022-12-08 07:51:31

本书序者给与我的建议
1.第一部分尽可能在42小时内快速浏览一遍,不用理解,先混个眼熟;
2.第二部分跟着项目实践精读,对应查阅第一部分的基础知识点,针对性地自我答疑.

练习1-2:输入错误   输入错误当然会发生错误了,能添加一个不会导致错误的输入
**********************************************
完成


练习1-3无穷技艺   1.可以将长城e采东西自动通过python完成到excel
                 2.通过颜色等来搞定第一项的任务
                 3.开发一个陪我学的女友工具
                 4.给hbomax做一个网页翻译
                 5.技术手段瘫痪骚扰电话   自动打电话给移动,不断回拨骚扰电话,然后转到人工智能
2.2.1变量的命名和使用
*   变量名只能包含字母,数字和下滑线.变量名非数打头非关键.例如,可将变量命名为message_1,但不能将其命名为1_message.
*   变量名不能包含空格,但能使用下划线来分隔其中的单词.例如,变量名greeting_message可行,但变量名greeting message会引发错误.
*  不要将Python关键字和函数名用作变量名,即不要使用Python保留用于特殊用途的单词,如print
*   变量名应既简短又具有描述性.例如,name比n好.
*   慎用小写字母l和大写字母O,因为它们可能被人错看成数字1和0. 

注意     就目前而言,应使用小写的Python变量名.虽然在变量名中使用大写字母不会导致错误,但是大写字母在变量名中有特殊含义,这将在本书后面讨论.

练习2.1:简单消息    将一条消息赋给变量,并将其打印出来.
完成


2.3字符串
"hahaha"
'hahaha'
字符串可以是双引号也可以是单引号
'i told"you are loser"'
单引号里也可以放双引号

2.3.1  使用方法修改字符串的大小写
.title()   方法使首字母大写
.upper()   方法使所有字母大写
.lower()   方法使所有字母小写
2.3.2 在字符串中使用变量
tips  .title方法让首字母都变成大写了
在字符串中加入变量的值,f 格式化符号,所以要使用f,再将要插入的变量放在花括号中.
**引号里面要用到变量则需在前面加上f
**
2.3.3 使用制表符或换行符来添加空白
* 1.\t是一个制表符
相当于一个单位的大空格
* 2.  \n 换行

2.3.4删除空白
删除末尾空白    变量.rstrip()
删除开头空白     变量.lstrip()
删除两边空白    变量.strip()
2.3.5使用字符串时避免语法错误
完成

2.4 数
2.4.1整数
加减乘除    +-*/
平方运算    **
改变运算次序    ()   ps:空格不影响运算顺序

2.4.2浮点数
实例    0.2

2.4.3整数和浮点数
4/2=2.0    任意两个数相除结果是浮点数
2*1.5=3.0    整数与浮点数运算是浮点数
2.4.4  数中的下划线
1_0000 类似于 1000           下划线不影响数据
2.4.5给多个变量赋值
x,y,z=0,0,0          多变量赋值
2.4.6 常量
YUI_YUI=100     常量的字符名应大写
练习:
2-8  完成
2-9  完成

2.5 注释
2.5.1如何编写注释
注释    #

2.6  Python的哲学
import this    出现Python的哲学


第三章  列表简介
列表  在一个地方存储成组的信息
3.1.2索引从0开始而不是从1开始
通过-1,可以将索引值定位到最后一个

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/u4yxq2ladicbhv726q0c.png)
3.13使用列表中的各个值
可以使用f字符串

动手试一试
3.1   3.2   3.3

3.2修改、添加和删除元素
3.2.1 修改列表元素
修改元素就是通过新增的方式修改值
3.2.2 在列表中添加元素
01. 在列表末尾添加元素
append方法
02. 在列表中插入元素
insert方法   .insert(0, 'bicycle')    在0位置添加bicycle元素
3.2.3 从列表中删除元素
01. 使用del 语句删除元素
注意:del删除是删除位置
注意:append insert 方法附加插入都是方法
而del则是删除语句
02. 使用方法pop() 删除元素
方法pop() 删除列表末尾的元素，并让你能够接着使用它。pop()弹出被删除的元素
03. 弹出列表中任何位置处的元素
pop(0)    就是删除第一个元素
del 和 pop()的区别
del语句  删除之后不再使用值
pop()   继续使用这个值
04. 根据值删除元素
如果只知道要删除的元素的值，可使用方法remove() 。

![Image description](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/izlzl008dndb9cen7b8x.png)
被remove的值并没有去除,在此案例中变量too_expensive还存在,但从列表中删除
注意:remove()方法只删除了第一个值,如果要删除其他重复值则需要循环

自我检验:
在末尾添加元素    append
在任意位置添加元素   insert(0,'yingzheng')
去除元素且不返回任何值    del
去除最后一个   pop()
去除任意位置的一个  pop(0)
remove("")    删除该种字符串(只能删除一个,不能删除其他重复值)
动手试一试:
练习3_4  完成    练习3_5  完成    练习3_6  完成    练习3_7  完成

3.3组织列表
3.3.1 使用方法sort()对列表永久排序
sort()  方法将数组元素按照首字母顺序排列
sort(reverse)    方法将数组元素按照首字母的逆序排列
3.3.2 使用函数sorted() 对列表临时排序
注意sorted()是函数,例子:sorted(days)
#使用参数reverse=True    在函数sorted()加入参数,
print("\nHere is the sorted list:")

print(sorted(cars,reverse=True))

 注意:大写字母时不适用此种规模

3.3.3   倒着打印列表
.reverse()    反转顺序,注意它不是按字母的顺序排列,只是反转序列.
.reverse()方法永久地反转顺序   再次使用.reverse()方法可以再次反转
3.3.4 确定列表的长度
函数len()      确定列表的长度
注意 　Python计算列表元素数时从1开始，因此确定列表长度时，你应该不会
遇到差一错误。
函数包含变量
凡是描述列表的用函数,凡是改变列表的用方法
动手试一试
3.8完成     3.9完成  3.10完成

3.4 使用列表时避免索引错误
1.当索引超出列表,会出现错误
2.可以通过索引-1来定位到最后一个值,当值为空时,索引-1会发生错误

动手试一试
练习3-11：有意引发错误

第四章,操作列表(遍历列表)
4.1遍历整个列表
4.1.2在for 循环中执行更多操作
完成
//格式:for 单个元素 in 元素集:
//   print()
moshushis=['小白','小红','小绿']
print(moshushis)
for moshushi in moshushis:
    print(f'{moshushi}太棒了')
    print(f'{moshushi},期待你的下一次表演\n')
4.1.3 在for 循环结束后执行一些操作
//缩进表示在循环内,没有缩进表示在循环外
magicians = ['alice', 'david', 'carolina']
for magician in magicians:
    print(f"{magician.title()}, that was a great trick!")
    print(f"I can't wait to see your next trick,{magician.title()}.\n")
print("Thank you, everyone. That was a great magic show!")

4.2 避免缩进错误
4.2.1忘记缩进
for循环后一定要有缩进
4.2.2 忘记缩进额外的代码行
注意缩进行
4.2.3 不必要的缩进
缩进是谨慎的,需要逻辑
4.2.4 循环后不必要的缩进(同上,不需要过于关注词义)
缩进需谨慎
4.2.5 遗漏了冒号
注意循环中的冒号
动手试一试
练习4-1 完成
练习4-2 完成


4.3 创建数值列表
4.3.1 使用函数range()


range 中文:范围
4.3.2 使用range() 创建数字列表
list()  中包含参数range()  可以创建列表
list(range(1,12,3))    1  指开始数   12  指终结数  3指每加3生成一个数字
2023/06/27    第94页
4.3.2 使用range() 创建数字列表
1.只是输出1-5的数字
nums=list(range(1,6))
print(nums)
2.可以在第三个参数设置步长,不如2-11中以2为起始,不断增加2
nums=list(range(2,11,2))
print(nums)

3.平方:  value**2
例子:
#目标:输出1-11每个数的平方.
#1.定义一个空数列
squers=[]
#2.从1-12分别输出
for value in  range(1,12):
	#计算平方
	squer=value**2
	#将squer分别依次列入到squers之中
	squers.append(squer)
#输出squers
print(squers)


4.3.3 对数字列表执行简单的统计计算
基本函数
min(digits)
max(digits)
sum(digits)
4.3.4 列表解析
一种更简略的做法
squers=[value**3 for value in range(1,11)]
print(squers)
数列=[公式 for 变量 in 范围]
练习:
1.完成
2.完成
3.完成
4.完成
5.完成
6.完成
7.完成

4.4 使用列表的一部分
4.4.1 切片
就是位置,指针:
plays[0:5]  指第一个到第四个
plays[-3:]  指倒数第三个到最后
注意 　可在表示切片的方括号内指定第三个值。这个值告诉Python在指定范围
内每隔多少元素提取一个
4.4.2 遍历切片
4.4.3 复制列表
myfr_foods=my_foods[,]
练习:
1.注意切片是[0:3]而不是[0,3]
完成
2.完成
3.完成

4.5元组
不可变的列表称为元组
元组区别与数组的是用()表示
4.5.3 修改元组变量
不能改变元组里的元素,但是能给元组重新赋值
元组总结:在整个生命周期,如果元组不变则可以使用元组

练习:
1.完成
2.完成

4.6 设置代码格式
和他人遵守同样的代码规范
4.6.1 格式设置指南
代码在易于编写与易于阅读两者之间选择易于阅读

4.6.2 缩进
缩进最好使用制表符
4.6.3 行长
很多Python程序员建议每行不超过80字符。
4.6.4 空行
空行不会影响代码的运行，但会影响代码的可读性。
不能滥用空行
4.6.5 其他格式设置指南
练习:完成

第 5 章 if 语句
5.1 一个简单示例
if....else
5.2 条件测试
==         是否相等
5.2.2 检查是否相等时忽略大小写
在Python中检查是否相等时区分大小写。
某些网站提交帐户名时不论大小写都会比较,通过.lower使小写化从而进行比较
比如输入James,而账户名是james,所以小写化James,使其进行比较
5.2.3 检查是否不相等
!=不相等
5.2.4 数值比较
>大于       <小于        <=小于等于        >=大于等于
5.2.5 检查多个条件
a.使用and 检查多个条件
b. 使用or检查多个条件
5.2.6 检查特定值是否包含在列表中
 'mushrooms' in requested_toppings
5.2.7 检查特定值是否不包含在列表中
not in
5.2.8 布尔表达式
类似于开关的两种状态
game_active = True
can_edit = False

练习
1.完成
2.完成

5.3 if 语句
5.3.1 简单的if 语句
5.3.2 if-else 语句
5.3.3 if-elif-else 结构
5.3.4 使用多个elif 代码块
5.3.5 省略else 代码块
5.3.6 测试多个条件
如果只想执行一个代码块，就使用if-elif-else 结构；如果要执行多个代
码块，就使用一系列独立的if 语句。
1.完成
2.完成
2023/6/27   94-124
3.    5-6
完成
5-7
完成

5.4 使用if 语句处理列表
2023/08/13   125页
5.4.1 检查特殊元素
for循环里嵌套if
例子
# 数组里有几个元素
requested_toppings = ['mushrooms', 'green peppers', 'extra cheese']
# 在循环输出食材
for requested_topping in requested_toppings:
    print(f"Adding {requested_topping}.")
# 最后完成
print("\nFinished making your pizza!")
# 完成示例
# 注意shicai是单个元素  所以不能是shicai==["胡萝卜"],而是直接shicai=="胡萝卜"
2023/06/28    124-126页

5.4.2 确定列表不是空的
2023/08/13    学习了1小时43分钟,,是在周日学习的
2023/8/14
完成
5.4.3 使用多个列表
就是两个或多个列表,比如顾客和厨师的列表

动手试一试
练习5-8：完成

练习5-9：处理没有用户的情形 　
在为完成练习5-8编写的程序中，添加一条
if 语句，检查用户名列表是否为空。
如果为空，就打印如下消息。
We need to find some users!

完成
删除列表中的所有用户名，确定将打印正确的消息。
1小时10分

练习5-10：检查用户名
完成
练习5-11：序数
完成

5.5 设置if 语句的格式
在诸如== 、>= 和<= 等比较运算符两边各添加一个空格。
简单会
动手试一试
1.完成
2.利用chatgpt引擎的全文翻译
                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                                         
第六章  字典

6.1 一个简单的字典
完成
6.2 使用字典
完成
6.2.1 访问字典中的值
完成
6.2.2 添加键值对
注意,键值对添加为{}
添加键值对方式    变量名[]=     
6.2.3 先创建一个空字典
完成
6.2.4　修改字典中的值
完成
6.2.5　删除键值对
del   删除语句,,删除的键值对将会永远消失
6.2.6　由类似对象组成的字典
完成
6.2.7　使用get()来访问值
Traceback 追溯
most recent call last 最近一次
get()可以用来指定一个字典中不存在的键,然后get()必须包含一个键,但是值可以选择有或没有,然后最好指定一个空值,因为不指定会发生编程错误,,如果有可能指定一个未指定的键,最好使用get()方法而不是方括号表示法,,如果键不存在而没有指定值,则返回none这个特殊值,第八章将介绍用途
动手试一试:
练习6-1:人

6.3　遍历字典

6.3.1　遍历所有键值对
6.3.2　遍历字典中的所有键
6.3.3　按特定顺序遍历字典中的所有键
6.3.4　遍历字典中的所有值
6.4　嵌套
6.4.1　字典列表
6.4.2　在字典中存储列表
6.4.3　在字典中存储字典
6.5　小结
第 7 章　用户输入和while循环   156--172
7.1　函数input()的工作原理
7.1.1　编写清晰的程序
7.1.2　使用int()来获取数值输入
7.1.3　求模运算符
7.2　while循环简介
7.2.1　使用while循环
7.2.2　让用户选择何时退出
7.2.3　使用标志
7.2.4　使用break退出循环
7.2.5　在循环中使用continue
7.2.6　避免无限循环
7.3　使用while循环处理列表和字典
7.3.1　在列表之间移动元素
7.3.2　删除为特定值的所有列表元素
7.3.3　使用用户输入来填充字典
7.4　小结
第八章函数