目录

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 安装开发环境

2019黑马程序员python 2020黑马程序员python版本_字符串

  1. IDLE自带简单开发环境
  2. 交互式命令行程序
  3. manuals官方技术文档
  4. module已安装模块文档

05 输出函数print

2019黑马程序员python 2020黑马程序员python版本_2019黑马程序员python_02

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 转义字符与原字符

2019黑马程序员python 2020黑马程序员python版本_2019黑马程序员python_03

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')

2019黑马程序员python 2020黑马程序员python版本_字符串_04

08 标识符和保留字

2019黑马程序员python 2020黑马程序员python版本_赋值_05

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 变量的定义和使用

2019黑马程序员python 2020黑马程序员python版本_赋值_06

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 浮点类型

2019黑马程序员python 2020黑马程序员python版本_python_07

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 字符串类型

2019黑马程序员python 2020黑马程序员python版本_字符串_08

16 类型转换

2019黑马程序员python 2020黑马程序员python版本_字符串_09

18 注释

2019黑马程序员python 2020黑马程序员python版本_赋值_10

19 输入函数input

2019黑马程序员python 2020黑马程序员python版本_python_11

a=input('input a:')
b=input('input b:')
print(int(a)+int(b))

21 算术运算符

2019黑马程序员python 2020黑马程序员python版本_赋值_12

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 位运算符

运算:将数据转成二进制进行计算

2019黑马程序员python 2020黑马程序员python版本_赋值_13

左移位相当于乘以2,右移位相当于除以2 

26 运算符的优先级

2019黑马程序员python 2020黑马程序员python版本_2019黑马程序员python_14

28 对象的布尔值

2019黑马程序员python 2020黑马程序员python版本_python_15

#以下对象的布尔值均是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 多分支结构

2019黑马程序员python 2020黑马程序员python版本_字符串_16

32 嵌套if的使用

2019黑马程序员python 2020黑马程序员python版本_字符串_17

33 条件表达式

2019黑马程序员python 2020黑马程序员python版本_字符串_18

34 PASS语句

2019黑马程序员python 2020黑马程序员python版本_python_19

35 range()函数的使用

2019黑马程序员python 2020黑马程序员python版本_2019黑马程序员python_20

 通常用作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循环

2019黑马程序员python 2020黑马程序员python版本_字符串_21

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

2019黑马程序员python 2020黑马程序员python版本_字符串_22

三次输入密码机会,判断正误:

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

2019黑马程序员python 2020黑马程序员python版本_python_23

输出1-50之间所有5的倍数:

for i in range(1,51):
    if i%5!=0:
        continue
    print(i,'是5的倍数')

42 else语句

2019黑马程序员python 2020黑马程序员python版本_python_24

 输入密码三次均不正确时提醒:

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

2019黑马程序员python 2020黑马程序员python版本_2019黑马程序员python_25

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 列表

2019黑马程序员python 2020黑马程序员python版本_赋值_26

46 列表对象的创建

2019黑马程序员python 2020黑马程序员python版本_赋值_27

lst=['hello','world',98]
lst2=list(['hello','world',98])

2019黑马程序员python 2020黑马程序员python版本_2019黑马程序员python_28

47 列表的特点

2019黑马程序员python 2020黑马程序员python版本_运算符_29

48 获取列表指定元素的索引、获取指定的元素

2019黑马程序员python 2020黑马程序员python版本_字符串_30

获取索引: 

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 获取多个元素

2019黑马程序员python 2020黑马程序员python版本_字符串_31

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 列表的判断和遍历

2019黑马程序员python 2020黑马程序员python版本_赋值_32

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 列表元素的添加

2019黑马程序员python 2020黑马程序员python版本_python_33

增加后没有创建新的列表对象,标识没有发生更改

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 列表元素的删除

2019黑马程序员python 2020黑马程序员python版本_赋值_34

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 列表元素的修改

2019黑马程序员python 2020黑马程序员python版本_赋值_35

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 列表元素的排序

2019黑马程序员python 2020黑马程序员python版本_赋值_36

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 列表生成式

2019黑马程序员python 2020黑马程序员python版本_字符串_37

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]

2019黑马程序员python 2020黑马程序员python版本_赋值_38