主要记录在看网课过程中的ppt重点内容和实例代码
目录
02 Python的自述
- 跨平台的计算机程序设计语言
- 解释型语言,开发过程中没有编译环节
- 交互式语言
- 一切皆对象,面向对象的语言
03 安装开发环境
- IDLE自带简单开发环境
- 交互式命令行程序
- manuals官方技术文档
- module已安装模块文档
05 输出函数print
print(520)
print('helloworld')
print(3+2)
#将数据输出到文件中,1.路径存在2.使用file=
fp=open('D:/text.txt','a+') #a+:如果文件不存在就创建,存在就在文件内容的后面继续追加
print('helloworld',file=fp)
fp.close()
#不进行换行输出(输出内容在一行当中)
print('hello','world','pyhton')
06 转义字符与原字符
print('hello\nworld')
print('hello\tworld')#四个字符一组
print('hello000\tworld')
print('hello\rworld\rfhd')#进行覆盖
print('hello\bworld')#退格,o没了
print('http:\\\www.com')
print('老师说:\'大家好\'')
#原字符,不希望字符串中的转义字符起作用,在字符串前加上r或者R
#注意事项,最后一个字符不能是反斜杠
print(r'hello\nworld')
08 标识符和保留字
import keyword
print(keyword.kwlist)#查看保留字
['False', 'None', 'True', '__peg_parser__', 'and', 'as', 'assert', 'async', 'await', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']
09 变量的定义和使用
10 变量的多次赋值
变量多次赋值之后,变量名会指向新的空间
name='skye';
print(name); #skye
print(id(name)); #2732414190384
print(type(name)); #<class 'str'>
name='sun';
print(name); #sun
print(id(name)); #1530637925104
print(type(name)); #<class 'str'>
12 整数类型
- 二进制0b开头
- 八进制0o开头
- 十六进制0x开头
注释快捷键ctrl+/
13 浮点类型
print(1.1+2.2)
# 3.3000000000000003
from decimal import Decimal
print(Decimal('1.1')+Decimal('2.2'))
# 3.3
14 布尔类型
True —— 真 —— 1
False —— 假 —— 0
f1=True
f2=False
print(f1,type(f1)) #True <class 'bool'>
print(f2,type(f2)) #False <class 'bool'>
print(f1+1) #2
print(f2+1) #1
15 字符串类型
16 类型转换
18 注释
19 输入函数input
a=input('input a:')
b=input('input b:')
print(int(a)+int(b))
21 算术运算符
print(1/3)#除法运算0.3333333333333333
print(1//3)#整除运算0
print(2**2)#幂运算符:2的2次方
print(2**3)#2的3次方
print(9%-4)#-3
22 赋值运算符
#支持解包赋值
a,b,c=20,30,40
print(a,b,c)
a=b=c=10#链式赋值,abc的id一样
print(a,id(a))#10 1627767990864
print(b,id(b)#10 1627767990864
print(c,id(c))#10 1627767990864
#交换两个变量的值
a,b=10,20
print('before:',a,b)
a,b=b,a
print('after:',a,b)
23 比较运算符
一个变量由三部分组成:标识,类型,值
== 比较的是值
is/is not 比较的是对象的标识id
a=10
b=10
print(a==b)#true
print(a is b)#true
24 布尔运算符
布尔运算符 in / not in
s='helloworld'
print('w' in s)#true
print('k' in s)#false
print('o' not in s)#false
print('p' not in s )#true
25 位运算符
位运算:将数据转成二进制进行计算
左移位相当于乘以2,右移位相当于除以2
26 运算符的优先级
28 对象的布尔值
#以下对象的布尔值均是False
print(bool(False))
print(bool(0))
print(bool(0.0))
print(bool(None))
print(bool(''))#空字符串
print(bool(""))
print(bool([]))#空列表
print(bool(list()))
print(bool(()))#空元祖
print(bool(tuple()))
print(bool({}))#空字典
print(bool(dict()))
print(bool(set()))#空集合
其他对象的布尔值均为True
31 多分支结构
32 嵌套if的使用
33 条件表达式
34 PASS语句
35 range()函数的使用
通常用作for循环遍历的对象
r=range(10)
print(list(r))#[0, 1, 2, 3, 4, 5, 6, 7, 8, 9]
r=range(2,10)
print(list(r))#[2, 3, 4, 5, 6, 7, 8, 9]
r=range(2,10,3)
print(list(r))#[2, 5, 8]
print(10 in r)#False
print(8 in r)#True
36 while循环
#4步循环法
#1.初始化变量
#2.条件判断
#3.条件执行体(循环体)
#4.改变变量
#初始化变量、条件判断的变量、改变的变量为同一个
#累加和
a=0
sum=0
while a<5:
sum+=a
a+=1
print('sum=',sum)
计算1-100之间的偶数和:
a=1
sum=0
while a<=100:
if not bool(a%2):
sum+=a
a+=1
print('sum=',sum)
38 for_in循环
for item in 'PYTHON':
print(item)
sum=0
for i in range(10):
sum+=i
print('sum=',sum)
#如果在循环体中不需要使用到自定义变量,可将自定义变量写为"_"
for _ in range(5):
print('人生苦短')
使用for循环计算1-100的偶数和:
sum=0
for i in range(0,101,2):
sum+=i
print('sum=',sum)
//输出100-999之间的水仙花数:
for i in range(100,1000):
if ((i//100%10)**3+(i//10%10)**3+(i%10)**3)==i:
print(i,'为水仙花数')
40 流程控制语句break
三次输入密码机会,判断正误:
for item in range(3):
pwd=input('请输入密码:')
if pwd=='9999':
print('right!')
break
else:
print('wrong!')
#或者
a=0
while a<3:
pwd=input('请输入密码:')
if pwd=='9999':
print('right')
break
else:
print('wrong')
a+=1
41 流程控制语句continue
输出1-50之间所有5的倍数:
for i in range(1,51):
if i%5!=0:
continue
print(i,'是5的倍数')
42 else语句
输入密码三次均不正确时提醒:
for item in range(3):
pwd=input('请输入密码:')
if pwd=='8888':
print('密码正确')
break
else:
print('密码不正确')
else:
print('对不起,三次密码均输入错误')
a=0
while a<3:
pwd=input('请输入密码:')
if pwd =='8888':
print('密码正确')
break
else:
print('密码不正确')
a+=1
else:
print('对不起,三次密码均输入错误')
43 嵌套循环
嵌套循环:循环结构中有嵌套了另外的完整的循环结构体,其中内层循环作为外层循环的循环体执行
打印乘法表:
for i in range(1,10):
for j in range(1,i+1):
print(i,'*',j,'=',i*j,end='\t')#不换行输出
print()
44 二重循环中的break和continue
break和continue只控制本层循环
for i in range(5):
for j in range(1,11):
if j%2==0:
break
print(j,end='\t')
#输出结果:1 1 1 1 1
for i in range(5):
for j in range(1,11):
if j%2==0:
continue
print(j,end='\t')
#输出结果:
1 3 5 7 9
1 3 5 7 9
1 3 5 7 9
1 3 5 7 9
1 3 5 7 9
45 列表
46 列表对象的创建
lst=['hello','world',98]
lst2=list(['hello','world',98])
47 列表的特点
48 获取列表指定元素的索引、获取指定的元素
获取索引:
lst=['hello','world',98,'hello']
print(lst.index('hello'))
#print(lst.index('sdj'))
#ValueError: 'sdj' is not in list
print(lst.index('world',1,3))
获取单个元素:
lst=['hello','world',98,'hello','world',847]
print(lst[2])
print(lst[-4])
# print(lst[10]) IndexError: list index out of range
50 获取多个元素
lst=[10,20,30,40,50,60,70,80]
#start=1,stop=6,step=1
print(lst[1:6:1])#[20, 30, 40, 50, 60]
print('原列表:',id(lst))
lst2=lst[1:6:1]
print('切片后列表:',id(lst2))
# 原列表: 1854183981504
# 切片后列表: 1854183978304
print(lst[1:6:])
print(lst[1:6])
# [20, 30, 40, 50, 60]
# [20, 30, 40, 50, 60]
print(lst[1:6:2])
# [20, 40, 60]
print(lst[:6:2])
# [10, 30, 50]
print(lst[1::2])
# [20, 40, 60, 80]
print(lst[::-1])
# [80, 70, 60, 50, 40, 30, 20, 10]
print(lst[7::-1])
# [80, 70, 60, 50, 40, 30, 20, 10]
print(lst[6:0:-2])
# [70, 50, 30]
51 列表的判断和遍历
lst=[10,20,'python','hello']
print(10 in lst)
print(100 in lst)
print(10 not in lst)
print(100 not in lst)
print('python' in lst)
print('Python' in lst)
for item in lst:
print(item)
52 列表元素的添加
增加后没有创建新的列表对象,标识没有发生更改
lst=[10,20,30]
print('添加元素之前',lst)
print('添加元素之前',id(lst))
lst.append(100)
print('添加元素之后',lst)
print('添加元素之后',id(lst))
# 添加元素之前 [10, 20, 30]
# 添加元素之前 2826758993216
# 添加元素之后 [10, 20, 30, 100]
# 添加元素之后 2826758993216
lst2=['hello','world']
lst.append(lst2)
print('添加元素之后',lst)
lst.extend(lst2)
print('添加元素之后',lst)
# 添加元素之后 [10, 20, 30, 100, ['hello', 'world']]将lst2作为一个元素添加到列表的末尾
# 添加元素之后 [10, 20, 30, 100, ['hello', 'world'], 'hello', 'world']
lst.insert(1,90)
print('添加元素之后',lst)
#添加元素之后 [10, 90, 20, 30, 100, ['hello', 'world'], 'hello', 'world']
lst3=[True,False,'hello']
#在任意位置添加多个,切掉之前的
lst=[1,2,3]
print('添加元素之前',lst)
print('添加元素之前',id(lst))
lst[1:]=lst3
print('添加元素之后',lst)
print('添加元素之后',id(lst))
# 添加元素之前 [1, 2, 3]
# 添加元素之前 2514633176384
# 添加元素之后 [1, True, False, 'hello']
# 添加元素之后 2514633176384
53 列表元素的删除
lst=[0,1,2,3,4,5,6]
new_list=lst[1:3]
print('原列表',lst)
print('原列表id',id(lst))
print('切片赋值后列表',new_list)
print('切片赋值后列表id',id(new_list))
# 原列表 [0, 1, 2, 3, 4, 5, 6]
# 原列表id 2609581603008
# 切片赋值后列表 [1, 2]
# 切片赋值后列表id 2609581603072
print('原列表',lst)
print('原列表id',id(lst))
lst[1:3]=[]#不产生新的列表对象,而是删除原列表中的内容
print('切片后列表',lst)
print('切片后列表id',id(lst))
# 原列表 [0, 1, 2, 3, 4, 5, 6]
# 原列表id 2609581603008
# 切片后列表 [0, 3, 4, 5, 6]
# 切片后列表id 2609581603008
#清楚列表中的所有元素
lst.clear()
print(lst)
#[]
#del语句将列表对象删除
del lst
#print(lst) NameError: name 'lst' is not defined
54 列表元素的修改
lst=[10,20,30,40,50]
print(lst)
lst[2]=100
print(lst)
# [10, 20, 30, 40, 50]
# [10, 20, 100, 40, 50]
lst[1:3]=[100,200,300,400,500]
print(lst)
#[10, 100, 200, 300, 400, 500, 40, 50]
55 列表元素的排序
lst=[10,46,90,20,60,30,50]
print(lst)
print(id(lst))
lst.sort()
print(lst)
print(id(lst))
# [10, 46, 90, 20, 60, 30, 50]
# 2519940612544
# [10, 20, 30, 46, 50, 60, 90]
# 2519940612544
#排序是在原列表上进行的
lst.sort(reverse=True)
print(lst)
lst.sort(reverse=False)
print(lst)
# [90, 60, 50, 46, 30, 20, 10]
# [10, 20, 30, 46, 50, 60, 90]
#使用内置函数sorted()对列表进行排序,将产生一个新的列表对象
lst=[10,46,90,20,60,30,50]
new_list=sorted(lst)
print(lst)
print(id(lst))
print(new_list)
print(id(new_list))
# [10, 46, 90, 20, 60, 30, 50]
# 2305728912192
# [10, 20, 30, 46, 50, 60, 90]
# 2305726038464
new_list=sorted(lst,reverse=True)
print(lst)
print(id(lst))
print(new_list)
print(id(new_list))
# [10, 46, 90, 20, 60, 30, 50]
# 1649469892160
# [90, 60, 50, 46, 30, 20, 10]
# 1649468728128
56 列表生成式
lst=[i for i in range(1,10)]
print(lst)
# [1, 2, 3, 4, 5, 6, 7, 8, 9]
lst=[i*i for i in range(1,10)]
print(lst)
# [1, 4, 9, 16, 25, 36, 49, 64, 81]
lst2=[i for i in range(2,11,2)]
lst3=[i*2 for i in range(1,6)]
print(lst2)
print(lst3)
# [2, 4, 6, 8, 10]
# [2, 4, 6, 8, 10]