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.mzph.cn/pingmian/49695.shtml

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

相关文章

Linux调试器gdb

1.debug版本的文件才能调试 gcc默认编译生成的是release版本,在输入gcc编译指令时,要加-g,才会生成debug版本的可执行文件。 可以看到,code_dbug比code大,因为debug版本含有调试信息,往往比release版本的…

【BUG】已解决:SyntaxError:positional argument follows keyword argument

SyntaxError:positional argument follows keyword argument 目录 SyntaxError:positional argument follows keyword argument 【常见模块错误】 【解决方案】 欢迎来到英杰社区https://bbs.csdn.net/topics/617804998 欢迎来到我的主页,我是博主英杰&#xff0c…

【SOC 芯片设计 DFT 学习专栏 -- DFT OCC 与 ATPG的介绍】

请阅读【嵌入式及芯片开发学必备专栏】 请阅读【芯片设计 DFT 学习系列 】 如有侵权,请联系删除 转自: 简矽芯学堂 简矽芯学堂 2024年01月18日 09:00 陕西 文章目录 OCC 介绍Fast ScanFull chip ATPGPartition ATPGHierarchical ATPG OCC 介绍 OCC&am…

微信小程序实现聊天界面,发送功能

.wxml <scroll-view scroll-y"true" style"height: {{windowHeight}}px;"><view wx:for"{{chatList}}" wx:for-index"index" wx:for-item"item" style"padding-top:{{index0?30:0}}rpx"><!-- 左…

力扣高频SQL 50题(基础版)第十题

文章目录 力扣高频SQL 50题&#xff08;基础版&#xff09;第十题1661. 每台机器的进程平均运行时间题目说明思路分析实现过程准备数据实现方式结果截图总结 力扣高频SQL 50题&#xff08;基础版&#xff09;第十题 1661. 每台机器的进程平均运行时间 题目说明 表: Activity…

Git merge

Git merge 参考文档&#xff1a; https://marsishandsome.github.io/2019/07/Three_Way_Merge https://git-scm.com/docs/merge-strategies https://stackoverflow.com/questions/56889406/how-does-git-compare-two-files-while-merging Git merge的目标是合并changes&#x…

idea一键为实体类赋值

file -> settings -> plugins -> marketplace 把这个插件装上 找个实体&#xff0c;选中&#xff0c;altenter进入edit界面 我是选择只保留右边这种生成方法&#xff0c;然后选择ok 返回到那个实体&#xff0c;选择&#xff0c;altenter generate生成

创建线程的几种方式

严格来讲&#xff0c;创建线程只有一种方式&#xff0c;就是实现Runnable接口&#xff0c;其他创建线程的方式也是对其封装。 继承Thread方式 public class Thread extends java.lang.Thread {Overridepublic void run() {super.run();} } 进入Thread可以看到&#xff0c;也是…

Spark实时(四):Strctured Streaming简单应用

文章目录 Strctured Streaming简单应用 一、Output Modes输出模式 二、Streaming Table API 三、​​​​​​​​​​​​​​Triggers 1、​​​​​​​unspecified&#xff08;默认模式&#xff09; 2、​​​​​​​​​​​​​​Fixed interval micro-batches&am…

C语言刷题小记2

前言 本篇博客还是为大家分享一些C语言的OJ题目&#xff0c;如果你感兴趣&#xff0c;希望大佬一键三连。多多支持。下面进入正文部分。 题目1竞选社长 分析&#xff1a;本题要求我们输入一串字符&#xff0c;并且统计个数的多少&#xff0c;那么我们可以通过getchar函数来获…

软件开发者消除edge浏览器下载时“此应用不安全”的拦截方法

当Microsoft Edge浏览器显示“此应用不安全”或者“已阻止此不安全的下载”这类警告时&#xff0c;通常是因为Windows Defender SmartScreen或者其他安全功能认为下载的文件可能存在安全风险。对于软件开发者来说&#xff0c;大概率是由于软件没有进行数字签名&#xff0c;导致…

【React】useState:状态更新规则详解

文章目录 一、基本用法二、直接修改状态 vs 使用 setState 更新状态三、对象状态的更新四、深层次对象的更新五、函数式更新六、优化性能的建议 在 React 中&#xff0c;useState 是一个非常重要的 Hook&#xff0c;用于在函数组件中添加状态管理功能。正确理解和使用 useState…

未来的智能交通系统:智能合约在交通管理中的应用前景

随着城市化进程的加快和交通问题日益突出&#xff0c;智能交通系统成为了解决城市交通拥堵和安全问题的重要手段。本文将探讨智能合约在未来智能交通系统中的应用前景&#xff0c;分析其在交通管理中的潜力和优势。 什么是智能交通系统&#xff1f; 智能交通系统利用先进的信息…

MySQL之索引及简单运用

索引&#xff1a; 什么是索引 索引是数据库中一种非常重要的数据结构&#xff0c;用于帮助快速查询数据库表中的数据。它就像一本书的目录&#xff0c;能够让你快速定位到书中的某个具体章节或内容&#xff0c;而不需要一页一页地翻阅整本书。 在数据库管理系统中&#xff0c;…

设计模式 之 —— 单例模式

目录 什么是单例模式&#xff1f; 定义 单例模式的主要特点 单例模式的几种设计模式 1.懒汉式&#xff1a;线程不安全 2.懒汉式&#xff1a;线程安全 3.饿汉式 4.双重校验锁 单例模式的优缺点 优点&#xff1a; 缺点&#xff1a; 适用场景&#xff1a; 什么是单例模…

VBA实例-从Excel整理数据到Word

实现目录 功能需求数据结构复制数据到新sheet并分类数据添加序号、日期、时间三列数据添加序号列添加时间列 将名称和类别复制到word文件中将参数5和参数9中的一个复制到word文件中 实例 功能需求 1、将原始数据中不要的数据剔除 2、原始数据中增加序号、日期和时间三列数据&a…

图片上传成功却无法显示:静态资源路径配置问题解析

1、故事的背景 最近&#xff0c;有个学弟做了一个简单的后台管理页面。于是他开始巴拉巴拉撘框架&#xff0c;写代码&#xff0c;一顿操作猛如虎&#xff0c;终于将一个简单的壳子搭建完毕。但是在实现功能&#xff1a;点击头像弹出上传图片进行头像替换的时候&#xff0c;卡壳…

三星Unpacked发布会即将举行:有新款折叠屏手机,还有智能戒指

随着7月的脚步渐近&#xff0c;科技界的目光再次聚焦于三星&#xff0c;它即将在法国巴黎举办今年的第二场Unpacked发布会。这不仅是一场新品的展示&#xff0c;更是三星对创新科技的一次深刻诠释。 从Galaxy Z Fold 6的全新设计&#xff0c;到Galaxy Z Flip 6的显著升级&…

CSS实现表格无限轮播

<div className{styles.tableTh}><div className{styles.thItem} style{{ width: 40% }}>报警名称</div><div className{styles.thItem} style{{ width: 35% }}>开始时间</div><div className{styles.thItem} style{{ width: 25% }}>状态&…

《后端程序猿 · @Value 注释说明》

&#x1f4e2; 大家好&#xff0c;我是 【战神刘玉栋】&#xff0c;有10多年的研发经验&#xff0c;致力于前后端技术栈的知识沉淀和传播。 &#x1f497; &#x1f33b; CSDN入驻不久&#xff0c;希望大家多多支持&#xff0c;后续会继续提升文章质量&#xff0c;绝不滥竽充数…