Python 教程(二):语法与数据结构

目录

    • 前言
    • 专栏列表
    • 语法特点
    • 实例代码
    • 基本数据类型
    • 变量
      • 命名规则
      • 赋值
      • 动态类型
      • 作用域
      • 示例代码
    • 运算符
    • `list`、`set`和`dict` 数据结构 区别
      • 1. list(列表)
      • 2. set(集合)
      • 3. dict(字典)
    • 总结

前言

Python 是一种计算机编程语言。每种编程语言都有自己的语法规则。在本教程中,我们将学习 Python 的基本语法。

专栏列表

  • Python教程(一):环境搭建及PyCharm安装
  • Python 教程(二):语法与数据结构

在这里插入图片描述

正文开始如果觉得文章对您有帮助,请帮我三连+订阅,谢谢💖💖💖


语法特点

  • 简单性:Python 的语法设计简单,易于阅读和编写。
  • 缩进:Python 使用缩进来区分代码块,增强了代码的可读性。
  • 注释:以 # 开头的语句是注释,解释器会忽略这些内容。
  • 代码块:语句以冒号 : 结尾时,后续的缩进语句被视为代码块。
  • 大小写敏感:Python 是大小写敏感的语言,变量名的大小写会影响其含义。
  • 动态类型:Python 是动态类型语言,变量在声明时不需要指定类型。

实例代码

# 打印变量实例
a = 100  # 变量 a 声明和赋值
if a >= 0:  # 下面是代码块print(a)  # 使用 print 函数打印变量值
else:print(-a)

基本数据类型

Python 提供了多种基本数据类型,每种类型都有其特定的用途和特性。

  1. 整数(int):表示没有小数点的数字。

    a = 10
    b = -20
    print(a + b)
    
  2. 浮点数(float):表示有小数点的数字。

    a = 3.14
    b = -0.001
    print(a * b)
    
  3. 字符串(str):表示文本数据。

    name = "ziyu"
    print("Hello, " + name)
    
  4. 布尔值(bool):表示逻辑值,只有 True 或 False。

    is_active = True
    print(is_active)
    
  5. 列表(list):有序的集合,可以包含不同类型的元素。取值下标从0开始。

    fruits = ["apple", "banana", 123]
    print(fruits[2])  # 输出 123
    
  6. 元组(tuple):类似于列表,通过 () 定义,但定义后不可变。

    point = (10, 20)
    point = (10,)  # 只有1个元素的tuple定义时必须加一个逗号
    print(point[0])
    
  7. 字典(dict):无序的键值对集合。

    person = {"name": "ziyu", "age": 25}
    print(person["name"])
    
  8. 集合(set):无序的不重复元素集合。

    numbers = {1, 2, 3}
    print(numbers)
    
  9. 空值(None):Python 中的特殊值,用 None 表示。

    d = {}d.get('name')  # 返回 None,控制台不输出任何东西
    
  10. 常量:通常用全部大写的变量名表示常量。

    PI = 3.14159265359PI = 4.13  # 不推荐这样做
    

变量

变量是存储数据值的容器。在 Python 中,变量在使用前不需要声明数据类型。

命名规则

  • 变量名必须以字母或下划线开头。
  • 变量名只能包含字母、数字和下划线。
  • 变量名是区分大小写的。

赋值

使用 = 操作符将值赋给变量。

x = 5
message = "Hello, World!"

动态类型

Python 是一种动态类型语言,变量的类型在运行时自动确定。

x = 10         # x 是 int 类型
x = "hello"    # x 现在是 str 类型

作用域

变量的作用域决定了变量在程序中的可见性和生命周期。

  • 局部变量:在函数内部定义,只能在该函数内部访问。
  • 全局变量:在函数外部定义,可以在程序的任何地方访问。

示例代码

# 定义变量
name = "ziyu"
age = 25
height = 175.5# 打印变量
print("Name:", name)
print("Age:", age)
print("Height:", height)# 定义列表
fruits = ["apple", "banana", "cherry"]# 访问列表中的元素
print("Fruit at index 1:", fruits[1])# 定义字典
person = {"name": "ziyu", "age": 25}# 访问字典中的元素
print("Person's name:", person["name"])# 定义集合
numbers = {1, 2, 3}# 打印集合
print("Numbers:", numbers)

运算符

Python 中的运算符用于执行数学和逻辑运算。

  • /:除法,计算结果是浮点数,即使是两个整数恰好整除,结果也是浮点数。
  • //:地板除,两个整数的除法结果仍然是整数。
  • %:取余数,结果永远是整数,整数运算结果永远是精确的。
10 / 3  # 3.3333333333333335
9 / 3   # 3.010 // 3 # 310 % 3  # 1

listsetdict 数据结构 区别

我们将对每个结构的增(增加)、删(删除)、查(查询)、改(修改)进行练习。

1. list(列表)

  • 有序:元素的插入顺序会被保留。
  • 可重复:元素可以重复。
  • 可索引:可以通过索引访问元素。
  • 可变:可以修改内容。
  • 语法:使用方括号 [] 定义。

示例

my_list = [1, 2, 3, 4]
print(my_list[0])  # 获取: 输出 1my_list.append(5)  # 添加元素,在列表尾部添加 5
print(my_list)     # 输出 [1, 2, 3, 4, 5]my_list.pop(0)  # 删除索引下标元素,这里就是在0这个位置上删除1
print(my_list)     # 输出 [2, 3, 4, 5]my_list.insert(0, 1)  # 添加索引下标元素,这里就是在0这个位置上增加1
print(my_list)     # 输出 [1, 2, 3, 4, 5]my_list[0] = 6  # 修改:这里就是在0这个位置上修改成6
print(my_list)     # 输出 [6, 2, 3, 4, 5]

2. set(集合)

  • 无序:元素的插入顺序不会被保留。
  • 不重复:元素是唯一的。
  • 不可索引:不能通过索引访问元素。
  • 可变:可以修改内容。
  • 语法:使用花括号 {} 定义,或使用 set() 函数转换。

示例

my_set = {1, 2, 3, 4}
my_set.add(5)  # 添加元素 5
print(my_set)  # 输出 {1, 2, 3, 4, 5},但元素顺序可能不同my_set.remove(3)  # 删除元素 3
print(my_set)  # 输出 {1, 2, 4, 5}# 获取集合的长度
len(my_set)  # 4# 清空集合
my_set.clear()# 判断元素是否在集合中存在
'x' in my_set  # False

3. dict(字典)

  • 无序:元素的插入顺序不会被保留。
  • 键值对:由键值对组成,键是唯一的。
  • 可索引:可以通过键访问值。
  • 可变:可以修改内容。
  • 语法:使用花括号 {} 定义,键和值之间用冒号 : 分隔。

示例

my_dict = {"name": "ziyu", "age": 25}
print(my_dict["name"])  # 输出 ziyu
my_dict["age"] = 26  # 修改键 "age" 对应的值
print(my_dict)  # 输出 {"name": "ziyu",
"age": 26}
my_dict["gender"] = "Male"  # 添加新的键值对
print(my_dict)  # 输出 {"name": "ziyu", "age": 26, "gender": "Male"}my_dict.pop('name')  # 删除键 "name"
print(my_dict)

总结

  • 有序性:list 是有序的,set 和 dict 是无序的。
  • 重复性:list 可以包含重复元素,set 不能包含重复元素,dict 的键不能重复,但值可以。
  • 索引:list 和 dict 可以通过索引访问元素,set 不能。
  • 元素组成:list 由元素组成,set 由元素组成,dict 由键值对组成。

这些特性使得这三种数据结构在不同的场景下有不同的应用。例如,当你需要保持元素顺序并可能需要索引时,可以使用 list;当你需要一个不包含重复元素的集合时,可以使用 set;当你需要通过键来快速访问数据时,可以使用 dict。

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

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

虚拟机OP的LAN网口设置

问题:unraid通过虚拟机安装OP,然而一个网口连接路由器,总是无法为其他设备提供DHCP,导致无法使用。 一、虚拟机OP配置 二、OP内部配置 对于Lan网口,启用强制,这样可以防止OP被网口接的路由器产生冲突 三、…

第八讲 视觉里程计2

不提取特征点计算VO: 一是通过其他方式寻找配对点(光流法,跟踪特征点的运动),仍然使用特征点,只是把匹配描述子替换成了光流跟踪,估计相机运动仍使用对极几何、PnP或ICP算法。依然要求提取到的关…

CefSharp音视频编译与免费下载

注:Cefharp 音频和视频播放编译,生成相应的dll文件,从而支持项目开发。 建议编译至少 16G 的 RAM和至少 250G 的 SSD。该脚本以 E 盘为例,您需要在 E 盘上手动创建 cef 文件夹。禁止在转载后通过发布其他平台向用户收取下载费用。…

TypeScript中Interface接口的深度探索与实践

定义接口 在TypeScript中,interface是一个强有力的概念,它用于定义类型签名,特别是对象的结构。接口可以用来描述对象应该有哪些属性、方法,以及这些成员的类型。它们是实现类型系统中“鸭子类型”(duck typing&#…

vue3实现在新标签中打开指定的网址

有一个文件列表,如下图: 我希望点击查看按钮的时候,能够在新的标签页面打开这个文件的地址进行预览,该如何实现呢? 比如: 实际上要实现这个并不难,参考demo如下: 首先&#x…

网络安全等级保护解决方案的主打产品

网络安全等级保护解决方案的主打产品: HiSec Insight安全态势感知系统、 FireHunter6000沙箱、 SecoManager安全控制器、 HiSecEngine USG系列防火墙和HiSecEngine AntiDDoS防御系统。 华为HiSec Insight安全态势感知系统是基于商用大数据平台FusionInsight的A…

浅谈C语言整型类数据在内存中的存储

1、整型类数据 C语言中的整型类数据都归类在整型家族中,其中包括:char、short、int、long、long long这5个大类,而每个大类中又分为两类signed和unsigned,这些都是C语言中的内置类型。以下重点基于char和int这两种类型的数据进行阐述&#x…

dsa加训

refs: OI Wiki - OI Wiki (oi-wiki.org) 1. 枚举 POJ 2811 熄灯问题 refs : OpenJudge - 2811:熄灯问题 如果要枚举每个灯开或者不开的情况,总计2^30种情况,显然T。 不过我们可以发现:若第i行的某个灯亮了,那么有且仅有第i行和第…

springcloud接入skywalking作为应用监控

下载安装包 需要下载SkyWalking APM 和 Java Agent 链接: skywalking 安装 下载JDK17(可不配置环境变量) 目前skywalking 9.0及以上版本基本都不支持JDK8,需要JDK11-21,具体版本要求在官网查看。 我这里使用的是skywalking9.…

德国云手机:企业移动办公解决方案

在现代商业环境中,移动办公已经成为一种趋势。德国云手机作为一种高效的解决方案,为企业提供了强大的支持。本文将探讨德国云手机如何优化企业的移动办公环境。 一、德国云手机的主要优势 高灵活性 德国云手机具有高度的灵活性,能够根据用户需…

链式法则和自动求导

向量链式法则 说明: 1.第一个式子, y是标量,u是标量,x是n维向量 2.第二个式子,y是标量,u是k维向量,x是n维向量,所以y对u求导是k维的行向量,u对x求导是k行n列的矩阵&…

Spark实时(三):Structured Streaming入门案例

文章目录 Structured Streaming入门案例 一、Scala代码如下 二、Java 代码如下 三、以上代码注意点如下 Structured Streaming入门案例 我们使用Structured Streaming来监控socket数据统计WordCount。这里我们使用Spark版本为3.4.3版本,首先在Maven pom文件中导…

Android中Service学习记录

目录 一 概述二 生命周期2.1 启动服务startService()2.2 绑定服务bindService()2.3 先启动后绑定2.4 先绑定后启动 三 使用3.1 本地服务(启动式)3.2 可通信的服务(绑定式)3.3 前台服务3.4 IntentService 总结参考 一 概述 Servic…

【北京迅为】《i.MX8MM嵌入式Linux开发指南》-第三篇 嵌入式Linux驱动开发篇-第五十章 Linux设备树

i.MX8MM处理器采用了先进的14LPCFinFET工艺,提供更快的速度和更高的电源效率;四核Cortex-A53,单核Cortex-M4,多达五个内核 ,主频高达1.8GHz,2G DDR4内存、8G EMMC存储。千兆工业级以太网、MIPI-DSI、USB HOST、WIFI/BT…

Springboot 开发之 RestTemplate 简介

一、什么是RestTemplate RestTemplate 是Spring框架提供的一个用于应用中调用REST服务的类。它简化了与HTTP服务的通信,统一了RESTFul的标准,并封装了HTTP连接,我们只需要传入URL及其返回值类型即可。RestTemplate的设计原则与许多其他Sprin…

spring boot(学习笔记第十四课)

spring boot(学习笔记第十四课) Spring Security的密码加密,基于数据库认证 学习内容: Spring Security的密码加密基于数据库认证 1. Spring Security的密码加密 如果用户的密码保存在数据库中是以明文保存,对于公司的安全将是灾难性的&…

【PyTorch】图像多分类项目部署

【PyTorch】图像多分类项目 【PyTorch】图像多分类项目部署 如果需要在独立于训练脚本的新脚本中部署模型,这种情况模型和权重在内存中不存在,因此需要构造一个模型类的对象,然后将存储的权重加载到模型中。 加载模型参数,验证模型…

NFTScan 浏览器现已支持 .mint 域名搜索功能!

近日,NFT 数据基础设施 NFTScan 浏览器现已支持用户输入 .mint 域名进行 Mint Blockchain 网络钱包地址的搜索查询, NFTScan 用户能够轻松地使用域名追踪 NFT 交易,为 NFT 钱包地址相关的搜索查询功能增加透明度和便利性。 NFTScan explorer…

goenv丝滑控制多版本go

安装 先装下goenv brew install goenv去 ~/.bash_profile 添加一下 export GOENV_ROOT"$HOME/.goenv" export PATH"$GOENV_ROOT/bin:$PATH" eval "$(goenv init -)"执行一下让配置生效 source ~/.bash_profile插一嘴,如果之前是在…

VScode 批量操作

VScode 批量操作 批量修改 按住 alt/option 键, 选择需要批量操作的位置 如果是多行,则按住 altshift 键 可以直接操作 但是有时候比如变量命名,可能需要递增操作的命名 需要下载插件 Increment Selection 按照1的方法多选光标之后&am…