Bootstrap

python元组

任务:

  1. 学习元组的定义
  2. 如何遍历元组
  3. 修改元组变量
  4. 学习if语句的使用
  5. 条件表达式

元组

列表非常适合用于存储在程序运行期间可能变化的数据集。然而,有时候你需要创建一 系列不可修改的元素,元组可以满足这种需求。Python将不能修改的值称为 不可变 的 ,而不可变的列表被称为 元组

元组的定义–不可修改的列表

元组看起来很像列表,但使用圆括号而非中括号来标识。定义元组后,就可使用索 引来访问其元素,就像访问列表元素一样

dimensions = (200, 50) 
print(dimensions[0]) 
print(dimensions[1]) 
  • 在Python中,元组(tuple)是一种不可变的序列类型,意味着你不能更改元组中的元素。因此,当你尝试对元组的某个元素赋值时,就会触发 TypeError 错误,提示 'tuple' object does not support item assignment,意味着你不能给元组对象分配项。

    解决方法:

    如果你需要修改元组中的数据,你需要创建一个新的元组。一种常见的方法是将元组转换成列表,修改列表后再将其转换回元组。

TypeError: 'tuple' object does not support item assignment
#由于试图修改元组的操作是被禁止的,因此Python指出不能给元组的元素赋值的错误提醒
  • 注意

    严格地说,元组是由逗号标识的,圆括号只是让元组看起来更整洁、更 清晰。如果你要定义只包含一个元素的元组,必须在这个元素后面加上逗号逗号就是他的本体。

tuple = 1,2,3,2,     #正确  圆括号没啥作用
print(tuple[3])   #输出2

tuple = 1			#识别为int类型的数
print(tuple[0])     #错误

tuple = (1)			#识别为int类型的数
print(tuple[0])     #错误

tuple = 1,			#识别为元组,注意单个元素如何成为元组
print(tuple[0])		#正确 输出1

#当然最好加上():给元组穿上衣服
tuple = (1,2,3,2,)		#正确
tuple = (1,)			#正确

遍历元组

​ 方法同遍历列表 ——使用for循环来遍历元组中的所有值

tuples = (1,2,3,4,5,6)
for tuple in tuples:
    print(tuple)   #依次输出1 2 3 4 5 6

修改元组变量

元组不可修改,但是存储元组的变量可以修改

因为给元组变量重新赋值是合法的

tuples = (1,2,3,4,5,6)
tuples = (3,4,5)
  • 相比于列表,元组是更简单的数据结构。如果需要存储的一组值在程序的整个生命周期内都不变,就可以使用元组。

if语句–用于条件判断

在Python中,if 语句让你能够检查程序的当前状态,并采取相应的措施

格式如下:

if  条件测试 :
    操作(条件测试为Ture执行)#小技巧:按住shift+tab结束缩进
else:					#else以及后面的操作可以不要
    操作(条件测试为False执行)

示例:

tuples = (1,2,3)
for tuple in tuples:
    if tuple == 1:    #python中“==”才是判断是否相等,“=”为赋值
        print(tuple)
    else:
        print(f"{tuple}不是1")
#1
#2不是1
#3不是1

条件测试

每条if 语句的核心都是一个值为True 或False 的表达式,即条件测试

据条件测试的值为True 还是False 来决定是否执行if 语句中的代码

大多数条件测试将一个变量的当前值同特定值进行比较

测试相等“==”——相等运算符

检查变 量的值是否与特定值相等

car == "BWM"	#检查字符串是否相等,真为True 假为Flase

tuple[1] == 1	#检查数值是否相等	
  • 注意 python中是严格区分大小写的,即两个大小写不同的值被视为不相 等
car = "BWM"
car == "bwm"   #值为False

#当需要不区分大小写时
car = "BWM"
print(car.title() == "bWm".title())
#甚至
car = "    BWm   "
print(car.strip().title() == "bWm    ".strip().title())
#True
测试不相等“!=”——不等运算符

编写的大多数条件表达式检查两个值是否相等,但有时候检查两个值是否不等的 效率更高。

car = "BWM"
car != "bwm"   #True
car != 1	   #True
小于(<)、小于等于(<=)、大于(>)、大于等于(>=)

检查多个条件

关键字and 和or

同时检查多个条件

  • and 且 : 在两个条件都为True 时才执行相应的操作,

    or 或者: 只要求其中一个条件为True 则为True

关键字in-包含

检查列表是否包含特定的值,即某个值是否在列表中

格式:

XXX  in  列表名/元组名/range(X,X)

print(6 in range(5,8))  #True

tuple = 1,2,3,2,
print(2 in tuple)     #判断2是否在元组中True

list =[1,2,3,4,5]
print(2 in list)	  #判断2是否在列表中True

使用:

  • 结束用户的注册过程 前,可能需要检查他提供的用户名是否已包含在用户名列表中。
  • 在地图程序中,可能需要检查用户提交的位置是否包含在已知位置列表中

关键字not in-不包含

还时候,确定特定的值未包含在列表中很重要。

在这种情况下,可使用关键字 not in 。

布尔表达式

本质上就是条件测试

与条件表达式一样,布尔表达式的结果要么为True ,要么为False 。

布尔值: True False

if语句的三种结构

if单独使用:conditional_test为真则执行,否则忽略

if conditional_test: 
    do something 

if - else:条件测试通过时执行一个操作,在没有通过时执行另一个操作。

if conditional_test: 
    do something 
else:
    do something 

if-elif-else:检查超过两个的情形。

它依次检查每个条件测 试,直到遇到通过了的条件测试.

测试通过后,Python将执行紧跟在它后面的代 码,并跳过余下的测试

if conditional_test: 
    do something 
elif:				#可根据需要使用多个elif代码块
    do something 
else:				#可根据需要不使用else代码块
    do something
  • if-elif-else最后只能得到一种结果,有时需要多个结果时可重复使用独立的if语句

总之,如果只想执行一个代码块,就使用if-elif-else 结构;如果要执行多个代 码块,就使用一系列独立的if 语句。

列表的遍历与if语句灵活运用

对于列表中的元素,可以使用if进行条件判断,来达到程序设计要求

判断列表不为空

在运行for 循环前确定列表是否为空很重 要

if 列表名:
    列表不为空时执行的操作

对于两个列表进行操作

判断列表一与列表二共有元素组成列表三 , 不共有元素组成列表四

list1 =[1,2,3,4,5]
list2 = [2,4,6,7,1]
list3 = []
list4 = []
for list in list1:
    if list in list2:
        list3.append(list)
    else:
        list4.append(list)

for list in list2:
    if list not in list4 and list not in list3 :
        list4.append(list)

print(f"{list3}为两个列表共有元素")
print(f"{list4}为两个列表独有的元素")

扩展知识-元组和列表之间的转换

如何将元组转化成列表进行增删换?

方法:

#利用list()方法,将元组作为参数返回列表
tuple = ("apple","banana","book")
list  = list(tuple)
#即可实现list的append(),pop(),list[0]="love"等

tuple = tuple(list)
#将list转回元组
  • 值得注意的是:

    转换后的对象是独立的,修改其中一个不会影响到另一个。

;