Python基础入门(2)—— 什么是控制语句、列表、元组和序列?

news2024/11/18 5:30:52

文章目录

  • 01 | 🚄控制语句
  • 02 | 🚅列表
  • 03 | 🚈元组
  • 04 | 🚝序列
  • 05 | 🚞习题

A bold attempt is half success.
勇敢的尝试是成功的一半。

前面学习了Python的基本原则、变量、字符串、运算符和数据类型等知识,下面主要记录了Python基础中的控制语句、列表、元组、序列的相关知识

01 | 🚄控制语句

在这里插入图片描述

Python的控制语句可以帮助实现条件执行、循环迭代等功能。下面是三种最常用的Python控制语句:

  1. if语句:if语句用于执行特定的操作,当满足一个或多个条件时才会执行。if语句由if关键字、条件表达式和语句块组成。

    if 条件表达式:
    	代码块1
    else:
     代码块2
    

    如果条件表达式为真,则执行代码块1;否则,执行代码块2。

  2. for循环:for循环用于遍历任何序列中的每个元素,例如列表、字符串、元组等。for循环由for关键字、迭代变量、in关键字和序列组成。

    for 变量 in 序列:
      	循环体代码
    

    其中,变量用于存储当前迭代的值,而序列指定可迭代的对象。对于每个元素,都将执行循环体代码。

  3. while循环:while循环用于重复执行一段代码,直到满足退出条件为止。while循环由while关键字、条件表达式和循环块组成。

    while 条件表达式:
     	代码块
    

    只要条件表达式为True,代码块就会重复执行,直到条件表达式为False或者循环被break语句中断。
    另外,Python还支持其他控制语句,如try/except等异常处理语句,这些语句的使用能够使程序更健壮、更可靠并且容错性更强,在后面阶段会重点学习一下异常处理这块知识点

02 | 🚅列表

在这里插入图片描述

当你需要管理多个元素时,Python的列表(list)是一个非常有用的数据类型。一个列表是一种有序的、可变的、容纳任意数量的Python对象的集合。由于Python支持动态变量类型,一个列表可以包括不同类型的元素,例如数字、字符串和其他列表等。

下面是关于Python列表的一些重要特征和用法:

  1. 定义列表:使用方括号[]定义一个列表。它可以为空或包含一个或多个元素,并用逗号分隔。

    scores = [90, 80, 70, 60]
    names = ['John', 'Anna', 'Mike', 'Alice']
    empty_list = []
    
  2. 访问列表元素:列表中的元素在内部是按照0索引的顺序排列的,即第一个元素的索引为0,第二个元素的索引为1,以此类推。您可以通过方括号([])访问列表中的任何元素。

    grades = [85, 92, 78, 90]
    print(grades[0])   # 输出列表中的第一个元素
    print(grades[-1])  # 输出列表中的最后一个元素
    
  3. 列表切片:可以使用切片操作符(:)获取列表中的一段子集。切片操作符由起始位置、终止位置和步长组成。

    numbers = [1, 2, 3, 4, 5]
    print(numbers[1:3])     # 输出列表中索引为1和2的元素
    print(numbers[:3])      # 输出列表中前三个元素
    print(numbers[::2])     # 输出步长为2的所有元素
    
  4. 迭代列表:可以使用for循环语句迭代遍历列表中的每个元素。

    cities = ['Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen']
    for city in cities:
    	print(city)
    
  5. 修改列表元素:列表是可变(mutable)类型,意味着您可以修改列表中的元素。

    fruits = ['apple', 'banana', 'cherry']
    fruits[0] = 'orange'   # 将第一个元素由'apple'改为'orange'
    print(fruits)   # 输出更改后的列表['orange', 'banana', 'cherry']
    
  6. 列表方法:Python列表还提供了许多有用的方法来强化其功能。这些方法包括添加、删除、查找和排序等。

    numbers = [1, 2, 3, 4, 5]
    numbers.append(6)        # 在列表末尾追加一个元素
    numbers.insert(0, 0)    # 在列表开头插入一个元素
    numbers.remove(3)        # 移除指定元素
    numbers.sort()           # 对列表进行排序
    
  7. 列表长度:使用len()函数获取列表的长度。

    animals = ['cat', 'dog', 'fish']
    print(len(animals))   # 输出列表长度3
    

综上所述,Python的列表(list)是一种非常灵活和有用的数据类型。对于处理多个元素的情况,它们提供了许多实用的特性和功能。在日常编程中,适当的使用列表能够有效地减少代码复杂度并提高代码效率。

03 | 🚈元组

在这里插入图片描述

在Python中,元组(tuple)与列表(list)类似,也是存储多个项目的容器。但它们之间有一个重要的区别:元组是不可变(immutable)的,意味着在创建后无法对其进行更改。由于这个原因,元组通常用于表示静态数据,如某个对象的固定属性或坐标。

下面是关于Python元组的一些重要特征和用法:

  1. 定义元组:使用圆括号()定义一个元组。可以为空或包含一个或多个元素,并用逗号分隔。

    coordinates = (3, 5)
    fruits = ('apple', 'banana', 'cherry')
    empty_tuple = ()
    
  2. 访问元组元素:元组中的元素在内部是按照0索引的顺序排列的,即第一个元素的索引为0,第二个元素的索引为1,以此类推。可以通过方括号[]访问元组中的任何元素。

    coordinate = (3, 5)
    print(coordinate[0])    # 输出元组中第一个元素
    print(coordinate[-1])   # 输出元组中最后一个元素
    
  3. 元组切片:可以使用切片操作符:获取元组中的一段子集。

    numbers = (1, 2, 3, 4, 5)
    print(numbers[1:3])     # 输出元组中索引为1和2的元素
    print(numbers[:3])      # 输出元组中前三个元素
    print(numbers[::2])     # 输出步长为2的所有元素
    
  4. 迭代元组:可以使用for循环语句迭代遍历元组中的每个元素。

    cities = ('Beijing', 'Shanghai', 'Guangzhou', 'Shenzhen')
    for city in cities:
    	print(city)
    
  5. 解包元组:可以将元组解包,并将元素分配给变量,以便更方便地访问它们。

    coordinate = (3, 5)
    x, y = coordinate   # 分配元组中的第一个和第二个元素到变量x和y
    print(x)            # 输出3
    print(y)            # 输出5
    
  6. 元组方法:元组虽然不可变,但也提供了一些实用的内置方法来处理其内容。

    numbers = (1, 2, 3, 4, 5)
    print(numbers.index(3))   # 查找元组中首次出现3的位置
    print(numbers.count(2))   # 统计元组中值为2的元素个数
    
  7. 元组作为返回值:元组适合作为函数的返回值类型,因为它们可以容易地返回多个对象。

    def square_and_cube(x):
    	return x**2, x**3
    
    result = square_and_cube(2)
    print(result)          # 输出元组(4, 8)
    squared, cubed = result
    print(squared, cubed)  # 输出4, 8
    

综上所述,Python的元组(tuple)是一种不可变类型的数据容器。虽然它们与列表相比在灵活性和易用性方面受到了限制,但它们可以提供更好的安全性和性能优化等方面的保障。在处理静态数据和返回多个值时,元组通常是一种很好的选择。

04 | 🚝序列

在这里插入图片描述

在Python中,序列(sequence)是包含一组有序元素的数据类型。在这个概念下,Python提供了三种内置序列类型:字符串(str)、列表(list)和元组(tuple),它们都支持常见的序列操作。

以下是关于Python序列的一些重要特征和用法:

  1. 索引:序列中的元素按照从左到右的顺序排列,并被分配一个唯一的索引号(从0开始)。您可以通过方括号[]访问序列中的任何元素。

    str = 'Hello, World!'
    lst = [10, 20, 30, 40]
    tup = (3, 5, 7, 9)
    
    print(str[1])    # 输出'e'
    print(lst[2])    # 输出30
    print(tup[-1])   # 输出9
    
  2. 切片:可以使用切片操作符:获取序列中的一段子集。切片操作返回一个新的序列,而不改变原有的序列。

    str = 'Hello, World!'
    lst = [10, 20, 30, 40]
    tup = (3, 5, 7, 9)
    
    print(str[1:5])      # 输出'ello'
    print(lst[::2])      # 输出[10, 30]
    print(tup[:-2])      # 输出(3, 5)
    
  3. 求长度:可以使用函数len()来计算序列中元素的数量。

    str = 'Hello, World!'
    lst = [10, 20, 30, 40]
    tup = (3, 5, 7, 9)
    
    print(len(str))      # 输出13
    print(len(lst))      # 输出4
    print(len(tup))      # 输出4
    
  4. 迭代序列:可以使用for循环语句遍历序列中的每个元素。

    tr = 'Hello, World!'
    lst = [10, 20, 30, 40]
    tup = (3, 5, 7, 9)
    
    for char in str:
    	print(char)
    
    for num in lst:
    	print(num)
    
    for val in tup:
    	print(val)
    
  5. 拼接序列:可以使用加号+运算符将两个序列(相同类型)合并为一个新序列。

    str1 = 'Hello'
    str2 = ', World!'
    lst1 = [10, 20, 30]
    lst2 = [40, 50, 60]
    
    new_str = str1 + str2
    new_lst = lst1 + lst2
    
    print(new_str)     # 输出'Hello, World!'
    print(new_lst)     # 输出[10, 20, 30, 40, 50, 60]
    
  6. 乘法操作:可以使用乘法*运算符重复序列中的元素多次,并生成一个新序列。

    str1 = 'Hello'
    lst1 = [1, 2, 3]
    
    new_str = str1 * 3
    new_lst = lst1 * 2
    
    print(new_str)     # 输出'HelloHelloHello'
    print(new_lst)     # 输出[1, 2, 3, 1, 2, 3]
    
  7. 成员资格:可以使用运算符innot in来检查某个值是否为序列的元素。

    str = 'Hello, World!'
    lst = [10, 20, 30, 40]
    tup = (3, 5, 7, 9)
    
    print('H' in str)       # 输出True
    print(25 not in lst)    # 输出True
    print(7 in tup)         # 输出True
    

综上所述,Python的序列(sequence)是一种有序元素的数据类型。在Python中,字符串(str)、列表(list)和元组(tuple)都属于序列类型,它们支持常见的序列操作,如索引、切片、长度计算、迭代、拼接、重复、成员资格等。这些基本操作可以帮助轻松地处理和操作各种数据结构,从而提高生产效率。

05 | 🚞习题

在这里插入图片描述

辅导员要到学生宿舍走访,学生宿舍管理数据库中有一表如下,现将表中的姓名列删除形成新表,要求不能出现重复元组(行)。编写程序,用序列和集合实现这一过程,从而获得需要走访的宿舍地址(楼栋和宿舍号)。

姓名宿舍楼宿舍号
小右白虎楼201
小左青龙楼202
小北朱雀楼203
小南玄武楼204

下面是使用序列和集合实现的代码:

# 原始表格
data = [("小西", "1号楼", "201"), ("小东", "2号楼", "202")]

# 删除姓名列
new_data = [(x[1], x[2]) for x in data]

# 利用集合去重
deduped_data = set(new_data)

# 输出需要走访的宿舍地址
for item in deduped_data:
    print(item[0], item[1])

代码的实现流程如下:

  • 首先定义了一个原始表格,其中每行是一个三元组,分别表示姓名、楼栋和宿舍号。

  • 然后用一个列表推导式,将原始表格中的姓名列去除,形成一个新的二元组序列。

  • 接着利用 Python 的集合类型,将新的二元组序列转换成一个集合,从而去除了其中的重复元素。

  • 最后,遍历这个集合,输出需要走访的宿舍地址。
    在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/492731.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

树形结构——堆的构建

在学习完我们的树形结构之后我们再来使用树形结构的思想构建一个堆。使用堆可以对我们的数据进行排序,并且堆排序的效率要远优于我们之前学习过的冒泡排序。下面我们来逐步实现堆这个数据结构。 在构建堆之前我们需要先介绍以下我们树形结构构建的两种形式&#xff…

掌握这些GitHub搜索技巧,你的开发效率将翻倍!

作为开发it行业一员,学习借鉴他人项目是很有必要的,所以我们一般都会从github或者 Gitee 上面去参考借鉴他人的项目来学习增加自己的项目经验 但是一般我还是在github上看项目比较多,毕竟人家实力项目量摆在那里 ,但是国内访问gi…

Spring Cloud的那些组件和功能,get到了吗

Spring Cloud 是 Spring 技术栈生态很重要的一部分,面向大型网站服务端的开发和架构设计,它以 Spring/SpringBoot 为基础,提供的一系列组件规范和具体实现。 一、概述 Spring Cloud 提供了用于更快速构建分布式系统的基础规范(例…

“深入”理解字节对齐

文章目录 前言思考查阅资料[Byte alignment and ordering](https://www.eventhelix.com/embedded/byte-alignment-and-ordering/)Byte Alignment RestrictionsWhy Restrict Byte Alignment?Compiler Byte PaddingUser Defined StructureActual Structure Definition Used By t…

使用SaleSmartly自动化流程的 5 个原因

想象一下,如果您可以采用智能数字解决方案来减轻团队和公司的手动和重复业务流程负担。它可以帮助您节省时间、提高公司的底线、消除冗余并增强数据管理。SaleSmartly(ss客服)就是这样。 通过利用自动化的力量,SaleSmartly&#x…

牛客网专项练习Pytnon分析库(一)

1.提取出a和b两个数组中的公共项,可以使用numpy库中的哪个函数(A)。 A.np.intersect1d(a,b) B.np.setdiff1d(a,b) C.np.where(a b) D.np.lexsort((a,b)) 解析: A选项,np.intersect1d用来获取数组a和数组b之间的公共项&…

MySQL遇到过死锁问题吗,你是如何解决的?

MySQL遇到过死锁问题吗,你是如何解决的? 问题解析 死锁,就是两个或者两个以上的线程在执行过程中,去争夺同一个共享资源导致互相等待的现象。 在没有外部干预的情况下,线程会一直处于阻塞状态,无法往下执行…

理解FPGA的基础知识——逻辑电路

FPGA (Field Programmable Gate Aray,现场可编程门阵列)是一种可通过重新编程来实现用户所需逻辑电路的半导体器件。为了便于大家理解FPGA的设计和结构,我们先来简要介绍一些逻辑电路的基础知识。 1.逻辑代数 逻辑代数中的变量称为逻辑变量,用大写字母表…

Arduino ESP32 ESP-Rainmaker点灯示例

Arduino ESP32 ESP-Rainmaker点灯示例 📌基于ESP-IDF工程相关篇《ESP32 ESP-Rainmaker 本地点灯控制Demo测试》🎈原项目地址:https://github.com/espressif/esp-rainmaker🔖本次所测试的项目示例工程:\esp-rainmaker—…

backtrader的cs功能介绍

cs框架的优点和缺点 优点和ts一样,就是速度非常快缺点有好几个:必须使用根据过去一定天数计算因子值,持有一定天数之后再平衡的模式;必须使用连续的数据,如果是期货期权等需要合成连续数据。资金不足的时候不会拒单。cs框架使用方法 设计理念 计算因子由用户进行计算,因…

用科技创造未来!流辰信息技术助您实现高效办公

随着社会的迅猛发展,科技的力量无处不见。它正在悄悄地改变整个社会,让人类变得进步和文明,让生活变得便捷和高效。在办公自动化强劲发展的今天,流辰信息技术让通信业、电网、汽车、物流等领域的企业实现了高效办公,数…

工具及方法 - 安装播放器pot player

官网下载: potplayer.daum.net 可能国内访问有问题,还有一个网站: Global Potplayer 或者为了纯净安全些,找下国外可下载网站: PotPlayer 230407 / 230504 Beta Free Download - VideoHelp 下载后安装即可&#xff…

红蜻蜓利用档案数字化管理,实现业务管理降本增效

在数字化大背景下,红蜻蜓积极拥抱数字化档案,全面优化档案管理成本,保证组织档案安全可信,助力企业业务高质量发展。 关于红蜻蜓 红蜻蜓,创始于1995年,是一家多品牌、多品类的时尚鞋履品牌运营商&#xf…

欧科云链OKLink:2023年4月安全事件盘点

一、基本信息 2023年4月安全事件共造约6000万美金的损失,与上个月相比,损失金额有所降落,但安全事件数量依旧不减。其中,Yearn Finance因参数配置错误,导致了1000多万美金的损失。同时,有一些已经出现过的…

【剧前爆米花--爪哇岛寻宝】TCP/IP协议以及在网络传输过程中的封装与分用

作者:困了电视剧 专栏:《JavaEE初阶》 文章分布:这是一篇关于网络初识的文章,在这篇文章中讲解了TCP/IP协议的主要内容和砸在网络传输过程中的封装和分用,希望对你有所帮助! 目录 TCP/IP五层模型 应用层…

渲染和不渲染的区别是什么?

随着计算机技术日新月异不断发展,电脑合成技术图像技术也日益成熟。在三维制作中,经常会提到一个词“渲染”,很多没有接触三维制作的朋友可能不是太清楚它究竟是什么,图像制作后,渲染和不渲染的区别是什么,…

【Admin后台管理】Geodjango后台显示地图并加载空间字段

原文作者:我辈李想 版权声明:文章原创,转载时请务必加上原文超链接、作者信息和本声明。 文章目录 前言一、djangoadmin二、geodjangoadmin三、报错处理 前言 在前面的博客中,我们已经介绍了Geodjango的环境搭建和数据库操作&…

网易云音乐开发--前后端交互

前后端交互 首先启动服务器 1. 根目录下执行: npm start 2. 服务器地址: http://localhost:3000 3. 示例: http://localhost:3000/banner 测试接口能不能用 发起请求 看接口说明,在wx的load函数中发起请求 请求成功 封装请求功能函数 …

Django框架之ORM和模型属性

Django对很多数据库都有支持,为这些数据库提供了统一的调用API。可以根据不同的业务需求,选择配置不同的数据库。本篇文章主要介绍ORM和模型属性。 ORM ORM全称Object Relational Mapping,即对象关系映射,是在pymysq之上又进行了…

JAVAWeb11-服务器渲染技术 -JSP-01-JSP基础

1. 现状 1、JSP 使用情况 2、Thymeleaf 使用情况, 通常和 SpringBoot 结合(也会讲) 3、Vue 使用情况 2. 学 JSP 前,老师要说的几句话 目前主流的技术是 前后端分离 (比如: Spring Boot Vue/React), 我们会讲的.[看一下]JSP 技术使用在逐渐减少&#xff…