目录
02 Python的自述
03 安装开发环境
05 输出函数print
06 转义字符与原字符
08 标识符和保留字
09 变量的定义和使用
10 变量的多次赋值
12 整数类型
13 浮点类型
14 布尔类型
15 字符串类型
16 类型转换
18 注释
19 输入函数input
21 算术运算符
22 赋值运算符
23 比较运算符
24 布尔运算符
25 位运算符
26 运算符的优先级
28 对象的布尔值
31 多分支结构
32 嵌套if的使用
33 条件表达式
34 PASS语句
35 range()函数的使用
36 while循环
38 for_in循环
40 流程控制语句break
41 流程控制语句continue
42 else语句
43 嵌套循环
44 二重循环中的break和continue
45 列表
46 列表对象的创建
47 列表的特点
48 获取列表指定元素的索引、获取指定的元素
50 获取多个元素
51 列表的判断和遍历
52 列表元素的添加
53 列表元素的删除
54 列表元素的修改
55 列表元素的排序
56 列表生成式
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]