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

news2024/9/21 0:51:08

目录

    • 前言
    • 专栏列表
    • 语法特点
    • 实例代码
    • 基本数据类型
    • 变量
      • 命名规则
      • 赋值
      • 动态类型
      • 作用域
      • 示例代码
    • 运算符
    • `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.14159265359
    
    PI = 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.0

10 // 3 # 3

10 % 3  # 1

listsetdict 数据结构 区别

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

1. list(列表)

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

示例

my_list = [1, 2, 3, 4]
print(my_list[0])  # 获取: 输出 1

my_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.coloradmin.cn/o/1947429.html

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

相关文章

HarmonyOS实现跨语言交互(Node-API)

Node-API简介 通过Native接口,实现两种代码的交互。 是在Node.js提供的Node-API基础上扩展而来,但与Node.js中的Node-API不完全兼容。本质就是提供了对C/C代码的使用接口,使得两种代码共同工作。规范I/O、CPU密集型、OS底层等能力。 应用场景…

Python | Leetcode Python题解之第264题丑数II

题目: 题解: class Solution:def nthUglyNumber(self, n: int) -> int:dp [0] * (n 1)dp[1] 1p2 p3 p5 1for i in range(2, n 1):num2, num3, num5 dp[p2] * 2, dp[p3] * 3, dp[p5] * 5dp[i] min(num2, num3, num5)if dp[i] num2:p2 1if …

pytest的安装和介绍和 Exit Code 含义

pytest 准备工作(在cmd里): 1安装 pip install -U pytest2验证安装 pytest --version # 会展示当前已安装版本3其他的 显示可用的内置函数参数 pytest --fixtures通过命令行查看帮助信息及配置文件选项 pytest --help一、pytets框架中的…

Windows安装go语言开发环境

一、下载安装包 安装包下载地址 下载完毕后双击进行安装。 查看是否安装成功: go version #查看go版本 go env #查看go环境变量正常显示则安装完成。 二、安装vscode 一般开发go语言项目使用vscode工具: 下载地址 下载完毕后双击进行安装。 三…

FPGA开发——D触发器的设计

1、概述 锁存器和触发器有时组合在一起,因为它们都可以在其输出上存储一位(1或0)。与锁存器相比,触发器是需要时钟信号(Clk)的同步电路。D 触发器仅在时钟从0 到 1(上升沿)或 1 到 …

python—NumPy基础(3)

文章目录 算术函数算术函数的使用算术函数中out参数的使用mod()函数的使用 统计函数power()函数的使用median ()函数的使用mean ()函数的使用函数的使用 其他常用函数tile()和repeat()函数的使用roll()函数的使用resize()函数的使用replace()和put()函数的使savetxt()和loadtxt…

可视挖耳勺的正确使用方法:四款宝藏单品,等你来挑选!

现在很多人都关注自己的个护健康,越来越多人开始使用可视挖耳勺。传统挖耳勺很有可以清洁不干净,导致耳耵聍堆积在耳道深处,引起耳朵发炎甚至感染。可视挖耳勺可以在看见耳道内部的情况下精准挖出耳耵聍,一定程度上安全又有效。但…

git命令使用详细介绍

1 环境配置 设置的信息会保存在~/.gitconfig文件中 查看配置信息 git config --list git config user.name设置用户信息 git config --global user.name "有勇气的牛排" git config --global user.email “1809296387qq.com”2 获取Git仓库 2.1 本地初始化一个仓…

Apache压测工具ab(Apache Bench)工具的下载安装和使用示例

场景 Jmeter进行http接口压力测试: Jmeter进行http接口压力测试_接口压测两万量-CSDN博客 上面讲压测工具Jmeter的使用,下面介绍另外一个ab(Apache Bench)压测工具的使用。 apache bench apache bench是apache自带的压力测试工具。 ab不仅可以对ap…

HTML开发笔记:3.图形化开发软件与模版网站

一、Google Web Designer 下载网址:webdesigner.withgoogle.com(得挂梯子) 可以编辑文字 可以插入图片,快捷键是ctrlshiftI 右侧“大纲”属性中可以调节大小 可以点击右上角在浏览器中预览效果: 二、模版网站 https://…

前端学习3——自学习梳理

1.学习一下盒子模型(盒子就是元素&#xff0c;标签) 盒子模型又分为4种&#xff1a;块级&#xff0c;内联级&#xff0c;内联块级&#xff0c;弹性盒子 (弹性盒子续在下一节) 2.元素的结构 1.盒子模型 <!DOCTYPE html> <html lang"en"> <head>&l…

《Java初阶数据结构》----5.<二叉树的概念及使用>

前言 大家好&#xff0c;我目前在学习java。之前也学了一段时间&#xff0c;但是没有发布博客。时间过的真的很快。我会利用好这个暑假&#xff0c;来复习之前学过的内容&#xff0c;并整理好之前写过的博客进行发布。如果博客中有错误或者没有读懂的地方。热烈欢迎大家在评论区…

mysql定时备份

为什么写这篇文章 最近项目里面需要定时备份mysql的数据&#xff0c;网上找了下&#xff0c;找到了一些比较好的解决方案。但是发现有几个地方与自己不匹配&#xff0c;我期望有如下 备份过程不能锁表&#xff0c;网上很多都是会锁表备份定时任务无法执行&#xff0c;但是手动…

CTF ssrf 基础入门 (一)

0x01 引言 我发现我其实并不是很明白这个东西&#xff0c;有些微妙&#xff0c;而且记忆中也就记得Gopherus这个工具了&#xff0c;所以重新学习了一下&#xff0c;顺便记录一下吧 0x02 辨别 我们拿到一个题目&#xff0c;他的名字可能就是题目类型&#xff0c;但是也有可能…

STM32H7的MDMA、DMA2D和通用DMA性能比较

STM32H7的MDMA、DMA2D和通用DMA性能比较 MDMA测试初始化MDMA数据传输&#xff08;DWT单位2.5n&#xff09; DMA2DDMA2D初始化数据传输 DMA最终结论&#xff08;参考armfly&#xff09; MDMA&#xff0c;DMA2D 和每个都测试了四种情况&#xff1a; ◆ 64 位带宽的 AXI SRAM 内部…

STM32F401VET6 PROTEUS8 ILI9341 驱动显示及仿真

stm32cubemx新建工程代码&#xff0c;并生成工程 设置gpio 设置SPI 其他的参考stm32默认设置 然后编辑驱动代码 ili9341.h #ifndef ILI9341_H #define ILI9341_H#include <stdbool.h> #include <stdint.h>#include "glcdfont.h" #include "stm32…

rv1126物体检测 rkmedia、opencv……

整体码流流向&#xff1a; 因此代码也分为这几部分&#xff1a; VI&#xff1a;采集视频 配置视频采集信息 模型推理线程&#xff1a;获取VI码流、载入模型、进行模型推理、保存推理结果 画框线程&#xff1a;获取VI码流、获取推理结果、显示推理结果、输出码流到VENC VENC…

w30-python02-pytest入门

代码如下&#xff1a; import pytest class Test_Obj:"""测试类"""#用例级别前后置def setup(self):print(用例级别------的前置处理)def teardown(self):print("用例级别--------的后置处理")# 用例def test_case1(self):print(&quo…

Photoshop(PS) 抠图简单教程

目录 快速选择 魔棒 钢笔 橡皮擦 蒙版 通道 小结 可以发现&#xff0c;ps逐渐成为必备基础的办公软件。本文让ps新手轻松学会抠图。 快速选择 在抠图之前&#xff0c;先了解下选区的概念。ps中大多数的抠图操作都是基于选区的&#xff0c;先选区再Ctrl J提取选区。而快…

android13 Settings动态显示隐藏某一项

总纲 android13 rom 开发总纲说明 目录 1.前言 2.确定目标设置项 3.修改参考 3.1 方法1 3.2 方法2 4.编译测试 5.彩蛋 1.前言 在Android 13系统中,动态显示或隐藏Settings应用中的某一项通常涉及到对Settings应用的内部逻辑进行修改。由于Settings应用是一个系统应用…