【Python】7_元组与综合训练

简介: ​三、元组my_list = [18, 3.14, True, 'isaac'] # 列表my_tuple = (18, 3.14, True, 'isaac') # 元组print(my_tuple, type(my_tuple )) # (18, 3.14, True, 'isaac') <class 'tuple'># 元组支持下标和切片print(my_tuple[1]) # 3.14# 定义空元组,没有意义my_tuple1 = ()print(my_tuple1, type(my_tuple1 )) # () <class 'tup


三、元组

my_list = [18, 3.14, True, 'isaac'] # 列表

my_tuple = (18, 3.14, True, 'isaac') # 元组
print(my_tuple, type(my_tuple )) # (18, 3.14, True, 'isaac')

元组支持下标和切片

print(my_tuple[1]) # 3.14

定义空元组,没有意义

my_tuple1 = ()
print(my_tuple1, type(my_tuple1 )) # ()
my_tuple2 = tuple()
print(my_tuple2, type(my_tuple2 )) # ()

定义一个数据类型的元组,数据元素后边,必须有一个逗号!!!

my_tuple3 = (3)
my_tuple4 = (3,)
print(my_tuple3, type(my_tuple3 )) # 3
print(my_tuple4, type(my_tuple4 )) # (3,)

四、综合案例
1、字符串训练
(1)使用变量保存字符串

'''
如果需要使用变量保存以下字符串,我们该如何书写代码
鲁迅说:"我没有说过这句话"
'''
word = '鲁迅说:"我没有说过这话!"'
print(word) # 鲁迅说:"我没有说过这话!"

words = '''鲁迅说:"我没有说过这话!"'''
print(words) # 鲁迅说:"我没有说过这话!"

(2)简单的用户管理系统
'''
做一个简单的用户信息管理系统:
提示用户依次输入姓名,年龄和爱好
并且在输入完成之后,一次性将用户输入的数据展示出来
'''
name = input("请输入姓名:")
age = input("请输入年龄:")
hobby = input("请输入爱好:")

格式化输出数据

print("您的姓名是%s, 您的年龄是%s, 您的爱好是%s" % (name, age, hobby))

使用 f-string

print(f'用户的名字是:{name},年龄是:{age},爱好是:{hobby}')

'''
请输入姓名:名之以父
请输入年龄:18
请输入爱好:编程
用户的名字是:名之以父,年龄是:18,爱好是:编程
'''

'''

  1. 在python中,通过 "" 或者 '' 声明一个字符串类型的变量
  2. 使用input()函数从键盘获取数据
  3. 通过%s 的格式化操作符来输出字符串类型

'''

(3)切片练习
'''
现有字符串如下,请使用切片提取出ceg
words = "abcdefghi"
'''

words = "abcdefghi"
word = words[2:7:2]

word = words[-7:-1:2]

print(word) # ceg

'''
1, 切片的语法:[起始:结束:步长]
2, 选取的区间从"起始"位开始,到"结束"位的前一位结束(不包含结束位本身),
3, 步长表示选取间隔,默认步长是正值,即从左到右选取,如果步长为负值,则从右向左选取

'''

(4)理解find函数和index函数
'''
题目要求:
james有一个关于爬虫的项目,他需要在一个字符串中查找python这个关键字,
当前他通过index()函数进行查找,虽然可以实现查找的需求,但是总会在
没有查找到关键字的时候报错,为什么会报错,如何优化?
'''

'''
提示:

  1. find函数如果查找到则返回索引值,如果查不到,则返回-1
  2. index函数如果查找到则返回索引值,如果查不到,则报错

通过使用find函数的方式替换掉index
'''

'''
答案:
只需要使用find函数替换掉index函数即可,
在功能上, find函数index函数完全一致,
不同的是index函数在没有查找到关键字的情况下会报ValueError的异常,
因此在一般开发环境下通常都会使用find函数
'''

(5)综合运用函数
'''
1.判断单词great是否在字符串words中,如果在,则将每一个great后面加一个s, 如果不在则输出 great不在该字符串中
2.将整个字符串的每一个单词都变成小写,并使每一个单词的首字母变成大写
3.去除首尾的空白,并输出处理过后的字符串
words = " great craTes Create great craters, But great craters Create great craters "
'''

'''
方法:

  1. 使用in判断某一个子字符串是否在母字符串中
  2. 使用replace函数替换子字符串
  3. 使用lower函数将字符串变为小写
  4. 使用title函数将单词的首字母大写
  5. 使用strip函数去除字符串首尾的空白

'''
words = " great craTes Create great craters, But great craters Create great craters "

判断单词great是否在这个字符串中

if 'great' in words:

# 将每一个great替换成greats
words = words.replace("great", "greats")

# 将单词变成小写
words = words.lower()

# 将每一个单词的首字母都大写
words = words.title()

# 去除首尾的空白
words = words.strip()

# 最后进行输出
print(words)

else:

print("great不在该字符串中")

2、列表训练
(1)判断元素
'''
有一个列表,判断列表中的每一个元素是否以s或e结尾,
如果是,则将其放入一个新的列表中,最后输出这个新的列表
'''
my_list = ["red", "apples", "orange", "pink", "bananas", "blue", "black", "white"]

用来存放以e或者s结尾的字符串

new_list = []

for i in my_list:

# 判断列表中每一个元素是否以s或e结尾
if i[-1] == 's' or i[-1] == 'e':
    new_list.append(i)
# # 判断列表中每一个元素是否以s或e结尾
# if i.endswith('s') or i.endswith('e'):
#     new_list.append(i)

打印出这个新的列表

print(new_list) # ['apples', 'orange', 'bananas', 'blue', 'white']

(2)元素删除(两种办法)
'''
给定一个列表,首先删除以s开头的元素,删除后,修改第一个元素为"joke",并且把最后一个元素复制一份,放在joke的后边
'''

my_list = ["spring", "look", "strange", "curious", "black", "hope"]

for i in my_list[::-1]: # 这个是 逆序遍历,避免漏删,因为每删除一个,后面的都要前移的

# 删除以s开头的元素,
if i[0] == 's':
    my_list.remove(i)

修改第一个元素为"joke"

my_list[0] = "joker"

获取最后一个元素

last_one = my_list[-1]

将最后一个元素放在joke的后面

my_list.insert(1, last_one)

print(my_list)

['joker', 'hope', 'curious', 'black', 'hope']

'''
for i in my_list[:]: # 两种遍历方式,这个是直接复制一份,避免删除后漏删下一个

# 删除以s开头的元素,
if i[0] == 's':
    my_list.remove(i)

# 修改第一个元素为"joke"

my_list[0] = "joker"

获取最后一个元素

last_one = my_list[-1]

将最后一个元素放在joke的后面

my_list.insert(1, last_one)

print(my_list)

['joker', 'hope', 'curious', 'black', 'hope']

'''

(3)列表合并(两种办法)
'''
将下列两个列表合并,将合并后的列表去重,之后降序并输出
list1 = [11, 4, 45, 34, 51, 90]
list2 = [4, 16, 23, 51, 0]
'''

list1 = [11, 4, 45, 34, 51, 90]
list2 = [4, 16, 23, 51, 0]
'''

  1. 合并列表可以使用 extend()方法或者两个列表相加。
  2. 列表去重有两种方案
  3. 自己实现方法实现,借助一个新的列表,循环遍历原列表,判断元素是否在新的列表中,如果在,遍历下一个元素,如果不在,添加到新的列表中。
  4. 使用 set() 集合去重
  5. sort 函数可以实现排序,参数reverse=True对列表进行倒序排序

'''

1. 使用 + 合并两个列表

my_list = list1 + list2

2. 列表去重

2.1 定义新的空列表保存去重后的数据

my_list1 = []

2.2 遍历合并后的列表

for i in my_list:

# 2.3 判断i 是否在my_list1 中
if i in my_list1:
    # 2.3.1 如果存在,直接下一次循环
    continue
else:
    # 2.3.2 将i添加到my_list1 中.
    my_list1.append(i)

3. 循环结束,得到去重后的列表 my_list1,进行排序

my_list1.sort(reverse=True)

4. 输出最后的结果

print(my_list1)

'''
方法二、利用set集合,去重特性

列表拼接

list3 = list1 + list2

列表去重

list4 = set(list3)
list5 = list(list4) # 转化为list列表

列表降序输出

list5.sort(reverse=True)

print(list5)
'''

3、元组训练
(1)比较不同
'''
有如下两行代码:
tuple1 = (2)
tuple2 = (2,)
请问tuple1与tuple2有什么不同
'''

'''
tuple1 = (2)
tuple2 = (2,)
print(type(tuple1))
print(type(tuple2))

对于tuple1 = (2),python解释器会将小括号理解成一个运算符号,那么这时候 返回的值是一个int类型

所以对于只有一个元素的元组来说,要创建一个元组,那么就必须要加逗号

'''

(2)回答问题
'''
有如下代码,请回答问题?
my_tuple = ("itcast", "python", "CPP", 18, 3.14, True)

  1. 使用下标的方法,输出元组中的元素 "CPP"
  2. 使用 for 循环遍历元组
  3. 使用 while 循环遍历元组

'''

my_tuple = ("itcast", "python", "CPP", 18, 3.14, True)

1. 使用下标的方法,输出元组中的元素 "CPP"使用下标的方法,

result = my_tuple[2]
print(result)

2. 使用 for 循环遍历元组

for i in my_tuple:

print(i)

print("-" * 20)

3. 使用 while 循环遍历元组

i = 0
while i < len(my_tuple):

print(my_tuple[i])
i += 1




相关文章
|
2月前
|
存储 Java 索引
(Python基础)新时代语言!一起学习Python吧!(二):字符编码由来;Python字符串、字符串格式化;list集合和tuple元组区别
字符编码 我们要清楚,计算机最开始的表达都是由二进制而来 我们要想通过二进制来表示我们熟知的字符看看以下的变化 例如: 1 的二进制编码为 0000 0001 我们通过A这个字符,让其在计算机内部存储(现如今,A 字符在地址通常表示为65) 现在拿A举例: 在计算机内部 A字符,它本身表示为 65这个数,在计算机底层会转为二进制码 也意味着A字符在底层表示为 1000001 通过这样的字符表示进行转换,逐步发展为拥有127个字符的编码存储到计算机中,这个编码表也被称为ASCII编码。 但随时代变迁,ASCII编码逐渐暴露短板,全球有上百种语言,光是ASCII编码并不能够满足需求
157 4
|
6月前
|
人工智能 前端开发 数据处理
如何将Python元组转换为列表
本文介绍了在Python中将元组转换为列表的方法。通过内置的`list()`函数,可以轻松地将一个元组转换为列表。此外,文章还提供了如何使用列表推导式和`itertools.chain()`方法将包含多个元组的列表展平为单一列表的示例。这些方法对于数据处理和转换非常实用,能够帮助开发者高效操作序列类型数据。文中附有代码实例及输出结果,便于理解与实践。
158 0
|
Python
蓝桥杯练习题(一):Python组之入门训练题
这篇文章是关于蓝桥杯Python组的入门训练题,包括Fibonacci数列、圆的面积、序列求和和A+B问题的具体代码实现和样例输出。
340 0
|
12月前
|
机器学习/深度学习 数据可视化 TensorFlow
使用Python实现深度学习模型的分布式训练
使用Python实现深度学习模型的分布式训练
474 73
|
9月前
|
存储 人工智能 索引
Python数据结构:列表、元组、字典、集合
Python 中的列表、元组、字典和集合是常用数据结构。列表(List)是有序可变集合,支持增删改查操作;元组(Tuple)与列表类似但不可变,适合存储固定数据;字典(Dictionary)以键值对形式存储,无序可变,便于快速查找和修改;集合(Set)为无序不重复集合,支持高效集合运算如并集、交集等。根据需求选择合适的数据结构,可提升代码效率与可读性。
|
10月前
|
安全 数据处理 索引
深入探讨 Python 列表与元组:操作技巧、性能特性与适用场景
Python 列表和元组是两种强大且常用的数据结构,各自具有独特的特性和适用场景。通过对它们的深入理解和熟练应用,可以显著提高编程效率和代码质量。无论是在数据处理、函数参数传递还是多线程环境中,合理选择和使用列表与元组都能够使得代码更加简洁、高效和安全。
255 9
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
429 8
|
存储 机器学习/深度学习 算法
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
蓝桥杯Python编程练习题的集合,涵盖了从基础到提高的多个算法题目及其解答。
664 3
蓝桥杯练习题(三):Python组之算法训练提高综合五十题
WK
|
Python
python元组与列表的转换
在 Python 中,元组(tuple)和列表(list)是两种常用的数据结构,它们之间可以相互转换
WK
460 9
WK
|
Python
Python创建元组
必须在这个元素后面加上一个逗号,否则 Python 会把它当作一个普通的带圆括号的表达式而不是元组
WK
201 4

推荐镜像

更多