目录
7.4 Day1——b站学习+动手实践
7.5 Day2——b站学习+动手实践
7.6 Day3——b站学习+动手实践
7.7 Day4——看教材+动手实践
7.8 Day5——看教材+动手实践
7.9 Day6——看教材+动手实践
7.10 小结1
学习资料:Python课程天花板,Python入门+Python爬虫+Python数据分析5天项目实操/Python基础.Python教程_哔哩哔哩_bilibili
《Python编程 从入门到实践》(第二版)
学习时间:9:00——11:30 14:30——18:00 19:00——21:00
学习内容:
1.认识python
1.1python的诞生和发展
1.2python的应用
2.安装python及pycharm
3.python基本语法
3.1注释
单行注释 :以#开头,#右边的所有东西当做说明,而不是真正要执行的程序,起辅助说明作用
多行注释 :以三个单引号’’‘开头,三个单引号’’'结尾,注释内容放在中间
3.2变量及类型
变量可以是任意的数据类型
,在程序中用一个变量名表示
变量名必须是大小写英文、数字、下划线组成,且不能以数字开头
3.3格式化输出
3.4输入
input()的小括号中放入的是,提示信息,用来在获取数据之前给用户的一个简单提示
input()在从键盘获取了数据以后,会存放到等号左边的变量中
3.5判断变量名类型
type()函数中的小括号中放入变量名,返回变量名的类型
3.6运算符
3.7.1条件判断语句
3.7.2循环语句
3.8break、continue及pass语句
3.9python的核心数据类型
3.9.1字符串
学习时间:9:00——12:00 14:30——18:00
单引号与双引号的区别
3.9.2列表
3.9.3元组
3.9.4字典
字典是无序的对象集合,使用键值对(key-value)存储,具有极快的查找速度
补充:
3.10函数
3.10.1概念
由若干语句组成的语句块、函数名称、参数列表构成,具有独立功能的代码块称为函数
3.10.2作用
在结构化编程中,函数是对代码的最基本的封装,一般都是按照功能来封装,封装是为了可以开发程序可以重复使用,减少相同功能代码的冗余,提高编写代码的效率,代码更加简洁,可读读强。
3.10.3格式
def 函数名(参数可有可无):
代码块
3.10.4调用
定义了函数之后,就相当于有了一个具有某些功能的代码,想要让这些代码能够执行,需要调用它,调用函数很简单的,通过 函数名() 即可完成调用
3.10.5返回值
解决了如何将值传入函数中,但如何获得函数计算出来的结果呢,想要在函数把结果返回给调用者,需要在函数中使用return
3.10.7全局变量
如果一个变量,既能在一个函数中使用,也能在其他的函数中使用,这样的变量就是 全局变量
就近原则
**学习时间:9:00——11:30 14:40——18:00
3.11文件操作
3.11.1打开文件
在Python,使用open()函数,可以打开一个已经存在的文件或者创建一个新文件
语法格式:open(文件名,访问模式)
什么是访问模式,其实就是对文件的权限,是否可读,是否可写
3.11.2关闭文件
在Python,使用close()函数,可以关闭一个已经打开的文件
3.11.3写文件
在python中,使用write()可以完成向文件写入数据
注意:如果文件不存在那么创建,如果存在那么就先清空,然后写入数据
3.11.4读文件
在python中,使用read(number)函数以完成从文件中读取数据number表示要从文件中读取的数据的长度(单位是字节),如果没有传入number,那么就表示读取文件中所有的数据
注意:
1.如果open是打开一个文件,那么可以不用写打开的模式,即只写 open(‘test.txt’),默认是只读
2.如果使用读了多次,那么后面读取的数据是从上次读完后的位置开始的
3.11.5重命名文件
os模块中的rename()可以完成对文件的重命名操作
rename(需要修改的文件名, 新的文件名)
3.11.6异常处理
当Python检测到一个错误时,解释器就无法继续执行了,反而出现了一些错误的提示,这就是所谓的"异常",;例如当打开一个不存在的文件时一定会报错,这就是IOError类型的异常
这时,就需要进行异常捕获,其目的是为了检测可能异常的代码块,防止因局部代码异常而使得整个代码报错无法运行
try…except…语句
try…except…finally…语句
在程序中,如果一个段代码必须要执行,即无论异常是否产生都要执行,那么此时就需要使用finally。 比如文件关闭,释放锁,把数据库连接返还给连接池等
今天正好b站视频刷完,买的教材到了,所以开始细抠概念、复习总结
学习时间:9:00——11:30 15:00——17:30
1.变量
1.1 在程序中可以随时修改变量的值,而python将始终记录变量的最新值
1.2 变量名只能包含字母、数字和下划线,只能以字母或下划线开头,不能包含空格(用下划线代替间隔),不能将关键字和函数名作为变量名,慎用小写字母l和大写字母O,变量名应既简短又具有描述性·
1.3 变量是可以赋给值的标签,描述为储存值的盒子不准确(至于为什么,初学者的我还搞不太清楚)
2.字符串
2.1 字符串就是一系列字符,在python中用引号括起来的都是字符串,引号可以是单、双、三引号
2.2 title()方法可以将每个单词的首字母都改为大写、upper()方法将字符串全部改为大写、lower()方法将字符串全部改为小写
2.3 f字符串(在字符串中使用变量)
xing = "fan"
ming = "chenyang"
name = f"{xing} {ming}"
print(name)
将定义过的变量名放在花括号内,f放在引号外
xing = "fan"
ming = "chenyang"
name = f"{xing} {ming}"
print(f"hello,{name.title()}!")
2.4空白
空白泛指任何非打印字符,入空格、制表符(\t)和换行符(\n),目的是为了让读者阅读起来更容易
空白很重要,因为经常需要比较两个字符串是否相同
rstrip()方法可以删除字符串末尾的空格
favorite_language="python "
print(favorite_language)
print(len(favorite_language))
print(favorite_language.rstrip())
print(len(favorite_language.rstrip()))
这种删除仅是暂时删除,如果想要永久删除,必须对删除结果关联到变量,删除开头或同时删除两边的空白可以分别使用lstrip()、strip()
2.5数
加(+)减(-)乘(*)除(/)乘方(**)可以用()修改运算顺序
任意两个数相除时,结果总是浮点数,即便这两个数都是整数且能整除
再其他运算中如果运算的一方是整数,另一方是浮点数,其结果都是浮点数
当打印很大的数时,可以使用下划线将其中的数字分组,python不会打印下划线
profit=140000_0000000_0000
print(profit)
一行代码可以同时给多个变量赋值,用逗号将变量名分开,对要赋的值也同样处理。
常量类似于变量,但它的值在程序的整个个生命周期内保持不变,通常将它的变量名全部大写
2.6注释
可以用#号标识单行注释,用''' 代码块 '''标识多行注释
3.列表简介
列表是由一些按特定顺序排列的元素组成,其中元素之间没有任何关系
3.1访问列表元素
列表名[索引] 索引是该元素的位置,从0开始
最后一个元素的索引客为-1,倒数第二个元素为-2,以此类推。这种情况适用于你不知道列表的长度
3.2添加元素
末尾添加:append() 列表名.append(新元素)
插入元素:insert() 列表名.insert(索引,新元素)
3.3删除元素
del语句:可删除任意位置的元素,条件是知道索引,当删除后无法访问
del 列表名[索引]
pop语句:将元素删除,并接着使用它的值,列表就像一个栈,而删除列表末尾的元素相当于弹出栈顶的元素
列表名.pop() 括号中可以填想到弹出元素的索引,不填默认弹出最后一个元素
remove语句:将元素删除,并接着使用它的值,条件是知道元素的值
列表名.remove(元素的值)
remove()只能一次删除一个指定的值,如果要删除的值出现多次,就需要用到循环来将每个值都删除
3.4组织列表
sort语句:对列表按字母顺序永久排序
列表名.sort() 若按字母相反顺序排序则括号内填参数(reverse=True)
sorted语句:对列表按字母顺序临时排序,保留原来的排列顺序
列表名.sorted()
reverse语句:永久反转列表元素的排列顺序
列表名.reverse()
len语句:确定列表长度
len(列表名)
学习时间:9:00——11:30 15:00——17:00
4.操作列表
4.1遍历整个列表
对列表中的每个元素都执行相同操作时,可以使用for循环
for 临时变量 in 列表名:
执行的操作1,例如:print(临时变量) 本行需要缩进4个字符
执行的操作2
执行的操作3
......
注意:给列表中每个值相关联的临时变量指定名称时,名称应该具有实际意义
想要在for循环结束后执行一些操作,只需将语句不再缩进,与for同列
想要同时循环多条语句,注意缩进,for语句末尾有冒号不要遗漏,更不要写成封号
4.2创建数值列表
使用函数range() 可以打印一系列数
for 临时变量 in range(开始数,停止数,步长)
PS:停止数的意思是到这个数停止,不包括这个数,因此打印范围是[开始数,停止数),步长可以理解为等差数列的公差,不写默认为1
要创建数字列表,可以使用函数list()将range()的结果直接转换成列表,即将range()作为list()的参数
numbers=list(range(1,6))
print(numbers)
那么,要想打印一定规律的数集呢?例如,打印前10个整数的平方
squares=[]
for num in range(1,11):
squares.append(num**2)
print(squares)
min()、max()、sum()函数可以轻松求出列表中的最小值、最大值和总和
列表解析:将for循环和创建新元素的代码合并成一行,并自动附加新元素
squares=[num**2 for num in range(1,11)]
print(squares)
注意for语句末尾没有冒号
4.3使用列表的一部分
切片:指定要使用的第一个元素和最后一个元素的索引,范围同样是左闭右开
列表名[开始元素索引:停止元素索引:步进值] 步进值不写默认1
列表名[:停止元素索引] 如果没有第一个元素的索引,默认从列表开头开始
列表名[开始元素索引:] 如果没有第二个元素的索引,默认到列表结尾终止
列表名[:] 如果两个索引均没有,默认从列表开头开始到列表结尾终止
当你不知道列表长度时,负数索引可以返回列表末尾的元素,因此可以输出列表末尾的任意切片
例如要输出列表最后三个元素:
list=['a','b','c','d','e']
print(list[-3:])
PS:如果要遍历列表的部分元素,可以在for循环中使用切片,只需将列表名更换为想使用的切片
复制列表
要复制列表可以创建一个包含整个列表的切片,但不能将旧列表直接赋值给新列表即(新列表=旧列表)
list1=['1','3','5','7']
list2=list1[:]
list1.append('9')
list2.append('11')
print(list1)
print(list2)
list1=['1','3','5','7']
list2=list1
list1.append('9')
list2.append('11')
print(list1)
print(list2)
4.4 元组
列表非常适合用于存储在程序期间可能变化的数据集,然而有时又需要一些不可修改的元素,这就是元组
元组名=(元素1,元素2...) PS:列表为中括号,元组为圆括号
注意:严格的说,元组是由逗号标识的,圆括号只是让元组看起来更整洁,清晰。如果要定义包括一个元素的元组,必须在这个元素后面加上逗号
元组内的元素虽然不可修改,但可以重新定义整个元组
5.if语句
5.1条件测试
每条if语句的核心都是一个值为True或False的表达式,这种表达式称为条件测试,True则执行;False则忽略
最简单的条件测试是检查变量的值是否与特定值(不)相等
a=1 #=为赋值
print(a==2) #==为相等运算符
当同时检查多个条件时,可以使用关键字 and 和 or 将多个条件合并起来
and:当条件都成立时整个表达式为True,反之为False,为了改善可读性,可以将每个条件分别放在一对圆括号内
or:当条件至少一个成立时整个表达式为True,每个条件都不成立时为False
当判断特定的值是否包含在列表内,可使用关键字in;是否不在列表内,可使用关键字not in
list1=[1,2,3,4,5]
if 1 in list1:
print("the number is in this list.")
5.2if语句
上述代码也是最简单的一个if语句,在if语句中缩进的作用和在for循环中相同
但是,通常需要在条件测试通过时执行一个操作,未通过时执行另一个操作,就用到了if-else语句
if condition:
do something
else:
do something
当然,我们经常会遇到多个条件的情况,这时就用到了if-elif-else结构,其中elif可以有多个,而末尾的else也可以被elif代替,它会依次检查每个条件测试,直到遇到通过了的条件测试
当要检查的条件可能同时多个成立时,就应当避免使用if-elif结构,而使用多个简单的if语句(也可以使用for循环)
list1=[1,2,3,4,5]
if 1 in list1:
num=1
elif 2 in list1:
num=2
print(f"the {num} is in this list.")
list1=[1,2,3,4,5]
if 1 in list1:
num=1
print(f"the {num} is in this list.")
if 2 in list1:
num=2
print(f"the {num} is in this list.")
5.3使用if语句处理列表
current_users = ['eric', 'willie', 'admin', 'erin', 'Ever']
new_users = ['sarah', 'Willie', 'PHIL', 'ever', 'Iona']
current_users_lower = [user.lower() for user in current_users]
for new_user in new_users:
if new_user.lower() in current_users_lower:
print(f"Sorry {new_user}, that name is taken.")
else:
print(f"Great, {new_user} is still available.")
学习时间:15:30——17:10
6.字典
6.1定义
在python中,字典是一系列的键值对,每个键和一个值相关联,可以通过使用键来访问相关联的值,值的范围可以是数、字符串、列表乃至字典
格式:字典名={键:值} 键和值之间用冒号分隔,而键值对之间用逗号分隔
6.2访问字典中的值
要想访问与键相关联的值,可以指定字典名和放在方括号内的键,字典中可以包含任意数量的键值对
6.3添加键值对
info={'name':'Fancy','age':19}
print(info)
info['gender']='man'
print(info)
再添加键值对时,也可以新建一个空的字典
当需要使用多行定义字典时,要在输入左花括号后按回车键,在下一行缩进四个空格,指定第一个键值对,并在他后面加上一个逗号,之后重复操作,定义完字典后,在最后一个键值对的下一行添加一个右花括号,并缩进四个空格
favorite_language={
'fancy':'python',
'jian':'c',
'hang':'java',
}
print(favorite_language)
6.4修改字典中的值
要修改值,可以依次指定字典名、用方括号括起来的值和与键相关联的新值
info={'name':'Fancy','age':19}
info['age']=18
print(info)
6.5删除键值对
可以使用del语句,将相应的键和对应的值一起删除
格式:del 字典名{键}
6.6访问值
如果用print语句输出字典中没有的键,那么python会报错,但是为了避免报错,可以使用get()方法在键不存在时返回一个默认值
info={'name':'Fancy','age':19}
print(info.get('id','no assigned'))
get()方法括号里的第二个参数也可以不填,返回时默认为None
6.7遍历字典
遍历所有键值对:for key,value in 字典名.items() (key和value分别为两个参数,储存键和值)
遍历所有的键:for x in 字典名.keys() (如果不加keys.()python默认遍历键)
遍历所有的值:for x in 字典名.values()
字典中键是独一无二的,但值可能是相同的,此时如果想输出不重复的值,可以使用集合set
set(字典名.values())
可以使用一对花括号直接创建集合,并在其中用逗号分隔元素,集合中的元素是无序的
6.8嵌套
有时候,需要将一系列字典存储在列表中,或将列表,作为值存储在字典中,这就称为嵌套
字典列表:
可以创建多个字典,然后将创建的字典存储在一个列表中;也可以创建一个字典,将列表作为值存储在字典内,也就是一个键关联多个值;还可以创建一个字典,将其他字典作为值存储
因为之前学过c++,python学起来比较轻松,不需要对变量申明,非常简洁,但是也更容易出错。经过一周的学习,已经掌握了一些基本的语法,可以看懂较复杂的程序,但是不够熟练,没有培养出编写程序的思维方式,所以让自己写还是没有什么头绪,接下来的一周会注重思维培养,实操一些项目。
.