学习<<Python编程从入门到实践第2版>>
Published: 2023-12-29 08:16:40

本书序者给与我的建议
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 访问字典中的值