一.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 python",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)
print(1 and 0)
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"))
#使用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'
3.系统功能
3.1数学功能
1>基本用法
abs(x):求x的绝对值
max(x1,x2,x3.....):求最大值
min(x1,x2,x3......):求最小值
pow(n,m):求n的m次方
round(x,n):求浮点数x的四舍五入的值,如果给出n值,则表示舍入到小数点后几位
代码演示:
#1>基本用法
print(abs(-10))#10
print(max(10,20,30,40,50))#50
print(min(10,20,30,40,50))#10
print(pow(3,5)) #243
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模块
import 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
#g格式:random.功能名()
#random.choice(列表);从指定列表中随机选择一个元素出来
#生成一个列表
num1=random.choice(range(10))
#从一个指定列表中获取
list1=[43,54,45,65,54,23]
num11=random.choice(list1)
num2=random.choice("hello")
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.random() 获取的是0-1之间的随机数,结果为浮点型
n=random.random()
print(round(n,2))
3.3python还有三角函数功能,作为了解,需要用的时候查询即可
四.tuple元组
1.概念
列表:是一种有序的集合
元组和列表的区别:
a.列表:[] 元组:()
b.列表中的元素可以进行增加和删除操作,但是元组中的元素不能进行修改
c.相同点:都是一种容器,都可以同时存储不同类型的数据
2.创建元组
创建列表
创建空列表:list1=[]
创建有元素的列表:list1=[元素1,元素2,元素3......]
创建元组
创建空元组:tuple=()
创建有元素的元组:tuple1=[元素1,元素2,元素3......]
代码演示:
#1.创建空元组
tuple1=()
#2.创建带有元素的元组
tuple2=(10,20,30)
#3.和列表类似,在元组中可以存储重复元素
tuple3=(10,20,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])
#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)
#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,67,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,65),(5,6,46,56),(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,key3:value3......}
代码演示:
#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不存在则会直接报错
#如果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()
print(list2)
#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)