Python基础(5)

1.知识点回顾

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.练习

代码演示:


#1.逐一显示指定字典中的所有的键,并在显示结束之后输出总键数

dict1 = {"x":1,"y":2,"z":3}
count1 = 0
for key in dict1:
    print(key)
    count1 += 1
print(count1)


for key in dict1.keys():
    print(key)
print(len(dict1))


#2.list1 = [0,1,2,3,4,5,6],list2 = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"],以list1中的元素作为key,


# list2中的元素作为value,生成一个新的字典dict2

list1 = [0,1,2,3,4,5,6]
list2 = ["Sun","Mon","Tue","Wed","Thu","Fri","Sat"]
dict2 = {}


#{0:"Sun"...}



#定义一个变量,作为list1和list2 的索引

i = 0


#前提条件:两个列表的长度是相等的

if len(list1) == len(list2):
    while i < len(list1):
        #当字典中不存在key-value时,赋值相当于是添加新的键值对
        dict2[list1[i]] = list2[i]
        i += 1

print(dict2)

猜你喜欢

转载自blog.csdn.net/Leesoar521yt/article/details/81384488