python学习笔记05

一、上堂回顾

1.默写题目

1.使用while和for分别实现1~100之间能被3整除的数的和

2.定义一个元素为数字的列表,将元素为偶数的输出

list1 = [4,76,768,878]
#遍历列表的方式一
for element in list1:
  if element % 2 == 0:
    print(element)
    
#遍历列表的方式二
for i in range(len(list1)):
  num = list1[i]
  if num % 2 == 0:
    print(num)
    
#遍历列表的方式三
for i,element in enumerate(list1):
  if element % 2 == 0:
    print(element)

3.使用三种方式遍历列表

2.知识点回顾

1.list列表

​ a.创建列表

​ b.列表的功能【增删改查】

​ 增:append extend insert

​ 删:pop 【索引】 remove【元素】 clear

​ 改:reverse【反转】 sort【排序】 sorted

​ 查:index len max min count

2.for-in循环

​ a.工作原理

​ b.列表生成器:range()

​ c.列表的三种遍历方式

二、break、continue和pass

1.break

作用:跳出循环【直接跳出整个循环,继续执行后面的代码】

代码演示:

#1.while
n = 0
while n < 5:
    print("n = %d"%(n))
    #if语句只是充当了一个条件判断
    if n == 3:
        break
    n += 1
​
print("over")
​
​
#2.for
list1 = [1,2,3,4,5]
for x in list1:
    print(x)
    if x == 3:
        break
​
#注意:break表示跳出整个循环【结束循环】
​
#3.特殊情况一
#当break使用在嵌套循环中的时候,结束的是当前循环【就近原则】
x = 0
y = 0
while x < 10:
    print("hello Python",x)
    x += 1
    while y < 5:
        print("hello wolrd",y)
        if y == 2:
            break
        y += 1
​
#4.特殊情况二【面试题】
#不管while中的条件是否成立,else分支都会被执行
#问题;while的条件成立,在while循环中出现了break,else分支还会执行吗?------>不会
m = 0
while m < 3:
    print(m)
    if m == 1:
        break
    m += 1
else:
    print("else")
​
#注意:break是一个关键字,在使用的过程中,可以充当一条单独的语句,后面不能跟任何的变量或者常量
​
#练习:判断一个数是否是质数
num = int(input("请输入一个数:"))
#思路:假设法【假设num是一个质数,寻找推翻假设的条件,发现在2~num-1的范围内有数可以被整除,则说明假设是不成立的,则重置变量】
isPrime = True
for i in range(2,num):
    #大数对小的数求余
    if num % i == 0:
        isPrime = False
        break
​
if isPrime == True and num != 1:
    print("质数")
else:
    print("不是质数")

2.continue

作用:跳出当前正在执行的循环,继续下一次循环

代码演示:

#1.for
for i in range(10):
    print(i)
    if i == 3:
        continue
    print("*")
​
for i in range(10):
    print(i)
    if i == 3:
        break
    print("$")
​
#2.while
#注意:在while中使用continue的时候,容易造成死循环,需要想办法在continue之前num += 1
num = 0
while num < 10:
    if num == 3:
        num += 1
        continue
    print(num)
    num += 1

3.pass

作用:只是一条空语句,为了保证代码的完整性,pass不做任何操作,只是充当了一个占位语句

应用场景:if,while,for,函数中,可以在代码块中不添加任何内容,可以保证代码正常运行

代码演示:

if True:
    pass
​
while True:
    pass
​
print("over")

三、布尔值和空值

1.布尔值

一个布尔类型的变量一般有两个值:True和False

作用:用于分支和循环语句中作为条件判断

注意:条件表达式一般用比较运算符和逻辑运算符充当

 

b1 = True
b2 = False
print(b1,b2)
​
print(4 > 5)  #False
print(1 and 0)   #False

2.空值

Python中的一种特殊的数据类型,使用None表示

注意:区别0,0是数字类型,None本身属于一种数据类型

使用场景:如果一个函数没有返回值,打印函数得到的结果为None

代码演示:

n = None
print(n)   #None

四、数字类型Number

1.分类

1.1整数

在Python中,整型可以处理任意大小的数字

代码演示:

#1.
num1 = 10
num2 = num1
print(num2)
print(num1 == num2)
print(id(num1) == id(num2))
​
​
#2.可以连续定义多个同种类型的变量,初始值相同
num3 = num4 = num5 = 100
​
#3.同时定义多个变量,初始值不同【一一对应】
num6,num7 = 60,70
print(num6)
print(num7)
​
#需求;交换两个变量的值
#方式一
a = 10
b = 20
print(a,b)
a,b = b,a
print(a,b)
​
#方式二
a1 = 10
b1 = 20
print(a1,b1)
temp = a1
a1 = b1
b1 = temp
print(a1,b1)
​
#其他方式:加法,异或【面试题】

1.2浮点型

注意:在计算机的底层存储的时候使用的科学计数法,运算的时候会出现四舍五入

1.3复数

由实部和虚部组成

表示形式:a + bj或者complex(a,b)

2.数字类型转换

int(x):将x转换为整数

float(x):将x转换为浮点数

代码演示:

print(int(1.9))   #取整
print(float(1))   #1.0
print(int("123"))
print(float("12.3"))
​
​
#使用int或者float进行转换的时候,特殊和字符串之间的转换,只要其中出现除了0~9和.之外的字符,则全部转换失败
#print(int("abc123"))  #ValueError: invalid literal for int() with base 10: 'abc123'
​
#特殊情况
#注意:如果在字符串的前面出现+或者-,则被识别为正负号,如果出现在中间或者后面,则转换失败
print(int("+123"))    #123
#print(int("12+3"))   ValueError: invalid literal for int() with base 10: '12+3'
print(int("-123"))   #-123
#print(int("12-3"))  ValueError: invalid literal for int() with base 10: '12-3'

3.系统功能

3.1数学功能

1>基本用法

abs(x);求x的绝对值

max(x1,x2。。。。);求最大值

min():求最小值

pow(n,m):求n的m次方

round(x,n):求浮点数x的四舍五入的值,如果给出n值,则表示舍入到小数点后几位

代码演示:

#1>基本用法
print(abs(-10))
​
print(max(23,54,54,52,123,1))
print(min(23,54,54,52,123,1))
​
print(pow(3,5))
​
print(round(3.456))   #3
print(round(3.656))  #4
print(round(3.456,2))  #3.46
print(round(3.656,1))  #3.7

2>导入math模块,格式:math.功能名()

代码演示:

#2>导入math模块
#a.向上取整:ceil
print(math.ceil(18.1))   #19
print(math.ceil(18.9))
​
#b.向下取整:floor
print(math.floor(18.1))   #18
print(math.floor(18.9))
​
#c.
# 求平方
print(pow(3,2))
#开平方
print(math.sqrt(9))  #注意:sqrt得到的结果为正数,为浮点型
​
#d.
#分别获取一个浮点型的整数部分和小数部分,以元组的形式返回
print(math.modf(22.3))

3.2随机数功能【掌握】

代码演示:

import random
​
#格式:random.功能名()
​
#random.choice(列表):从指定列表中随机选择一个元素出来
#生成一个 列表
num1 = random.choice(range(10))
​
#从一个指定列表中获取
list1 = [43,54,54,65,54,54,23]
num11 = random.choice(list1)
​
num2 = random.choice("hello")   #等价于['h','e','l','l','o']
print(num2)
​
#需求:产生一个4~10之内的整数随机数
print(random.choice([4,5,6,7,8,9,10]))
print(random.choice(range(4,11)))
​
#2.random.randrange(start,end,step)  工作原理类似于range的使用
#需求;从1~100之间选取一个奇数随机数
print(random.choice(range(1,100,2)))
print(random.randrange(1,100,2))
#需求;生成一个0~99之间的随机数
print(random.randrange(100))
​
#总结:random.choice【使用range的情况下】和random.randrange生成的都是一个整数随机数
​
#3.random.random()  获取的是0~1之间的随机数,结果为浮点型
n = random.random()
print(round(n,2))
​
#需求:产生一个4~10之内的随机数
"""
[0,1] * 6 ----》[0,6]
[0,6] + 4 ---->[4,10]
"""
n1 = random.random() * 6 + 4
​
#4.将列表中的元素进行随机排序:shuffle【了解】
list2 = [23,54,5,46,6]
print(list2)
random.shuffle(list2)
print(list2)
​
#5.随机生成一个实数,结果为浮点型:uniform【了解】
print(random.uniform(3,9))

3.3三角函数功能【了解】

五、tuple元组

1.概念

列表:是一种有序的集合

元组和列表的区别:

​ a.列表:[] 元组:()

​ b.列表中的元素可以进行增加和删除操作,但是,元组中的元素不能进行修改

​ c.相同点:都是一种容器,都可以同时存储 不同类型的数据

2.创建元组

创建列表:

​ 创建空列表:list1 = []

​ 创建有元素的列表:list1 = [元素1,元素2.....]

创建元组:

​ 创建空元组:tuple = ()

​ 创建有元素的元组:tuple1 = [元素1,元素2.....]

代码演示:

#1.创建空元组
tuple1 = ()
​
#2.创建带有元素的元组
tuple2 = (10,20,30)
​
#3.和列表类似,在元组中可以存储重复元素
tuple3 = (10,20,10,30,10)
print(tuple3)
​
#4.和列表类似,在同一个元组中国可以同时存储不同类型的数据
tuple4 = ("hello",True,10)
​
#5.特殊情况:如果创建的元组中只有一个元素,使用逗号消除歧义
tuple5 = (10)
print(tuple5)
tuple5 = 10
print(tuple5)
#为了消除歧义,修改
tuple5 = (10,)
print(tuple5)

3.元组元素的访问

获取值:

语法:元组名[索引]

代码演示:

tuple1 = (10,20,30,40,50)
#1.获取元素值
print(tuple1[1])
#获取元组中的最后一个元素
print(tuple1[4])
​
#注意:索引为正数表示从前往后获取,负数表示从后往前获取,-1表示元组中的最后一个元素
print(tuple1[-1])
print(tuple1[-2])
​
#索引越界
#print(tuple1[5])   #IndexError: tuple index out of range
#print(tuple1[-6])  #IndexError: tuple index out of range
​
#2.修改元素值
#和列表不同的地方:元组中的元素不能进行随意的更改
#tuple1[2] = 100
print(tuple1)  #TypeError: 'tuple' object does not support item assignment
​
#特殊情况:元组中的元素不能随意更改,本质指的是不能更改地址
tuple2 = (1,3,43,5,[54,54,5])
print(tuple2)
list1 = tuple2[4]
list1[1] = 100   #可以更改,因为列表的地址没变
print(tuple2)
"""
(1, 3, 43, 5, [54, 54, 5])
(1, 3, 43, 5, [54, 100, 5])
"""
​
#3.删除元组
del tuple2

4.元组操作

代码演示:

#1.组合:+
tuple1 = (43,54,54,5)
tuple2 = (4,546,56)
print(tuple1 + tuple2)
​
#2.重复:*
print(tuple1 * 3)
​
#注意:组合和重复都是生成了一个新的元组,原来的元组并没有发生任何改变
​
#3.判断元素是否在元组中:成员运算符:int     not in
print(54 in tuple1)
print(54 not in tuple1)
​
#4.元组截取【切片】:类列表,包头不包尾
tuple3 = (54,654,65,6,76,8,9809)
print(tuple3[2:4])
print(tuple3[2:])
print(tuple3[:4])

5.元组功能

代码演示:

#1.获取元组中元素的个数
tuple1 = (3,54,5,45)
print(len(tuple1))
​
#2.获取元组中元素的最大值和最小值
print(max(tuple1))
print(min(tuple1))
​
#3.元组和列表之间的相互转换:取长补短
#3.1元组-----》列表
#list()
list1 = list(tuple1)
​
#3.2列表------》元组
#tuple()
list2 = [54,4,6,56]
tuple2 = tuple(list2)
​
#4.遍历元组
#4.1直接遍历元素
for element in tuple1:
    print(element)
​
#4.2遍历索引:本质上遍历的是列表
for i in range(len(tuple1)):
    print(tuple1[i])
​
#4.3同时遍历索引和元素
for i,element in enumerate(tuple1):
    print(i,element)

6.二维元组

代码演示:

#当做一维元组处理
tuple1 = ((4,54,5,45),(5,6,46,56),(6,6,6,5))
print(tuple1[1][1])
​
#二维元祖的遍历
#遍历外层元组
for subTuple  in tuple1:
    #遍历内层元组
    for element in subTuple:
        print(element)

六、dict字典

1.概念

思考问题:保存多个学生的成绩

list1 = [67,89,60,99,100]

tuple1 = (67,89,60,99,100)

存在的问题;无法完成成绩和学生的匹配

解决方案:字典,将学生作为key,将成绩作为value,进行存储,方便查找【一一对应】

本质:也是一种存储数据的容器

特点:数据以键值对的形式存储的,具有快速查找的优势

注意:字典是无序的

key的特点:

​ a.字典中的key必须是唯一的

​ b.字典中的key必须是不可变的

​ list是可变的,不能充当key

​ tuple是不可变的,可以充当key,数字型和字符串都可以充当key

2.字典的创建

语法:字典名称 = {key1:value1,key2:value2.....}

代码演示:

#1.创建字典
#创建一个空字典
dict1 = {}
​
#创建有键值对的字典
dict2 = {"zhangsan":60,"jack":90}
print(dict2)

3.元素访问

代码演示:

2.元素访问
#2.1.获取
#语法:字典名[key]
dict3 = {"zhangsan":60,"jack":90,"tom":80}
#通过key获取对应的value
score  = dict3["jack"]
print(score)
​
#如果key不存在,则直接报错
#错误演示
#print(dict3["lisi"])   #KeyError: 'lisi'
​
#如果key不存在,则get功能返回None
result = dict3.get("lisi")
print(result)
if result == None:
    print("lisi不存在的")
else:
    print("存在")
​
#2.2添加
print(dict3)
#如果key存在,则字典名[key]  = 值相当于修改键值对
dict3["jack"] = 100
print(dict3)
#如果key不存在,则字典名[key]  = 值相当于添加一个键值对
dict3["bob"] = 75
print(dict3)
​
#2.3删除
#注意:删除指定的key,则对应的value也会随着被删除
dict3.pop("tom")
print(dict3)

4.字典的遍历

代码演示:

#遍历字典
​
dict1 = {"zhangsan":60,"jack":90,"tom":80}
​
#1.只获取key
for key in dict1:
    value = dict1[key]
    print("%s = %d"%(key,value))
​
#2.只获取value
#注意;将所有的value重新生成了一个列表
list1 = dict1.values()
for value in list1:
    print(value)
#获取所有的key
list2 = dict1.keys()
​
#3.
for i,key in enumerate(dict1):
    print(i,key)
    print(dict1[key])
​
#4.同时获取value和key
for key,value in dict1.items():
    print(key,value)

5.练习

代码演示:

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值