【Python基础知识一】基本语法、常用数据类型等

news2024/11/28 8:37:43

Python基础知识:

  • 1 标识符(Identifier)
  • 2 关键字/保留字(Keyword)
  • 3 引号
  • 4 编码
  • 5 输入输出
  • 6 行与缩进
  • 7 多行语句
  • 8 注释
  • 9 数据类型
    • 9.1 数字(Number)类型
    • 9.2 变量(variate)
    • 9.3 字符串(String)
    • 9.4 列表(List)
    • 9.5 元组(tuple)
    • 9.5 Set(集合)
    • 9.6 字典(dictionary)
    • 9.6 其他类型
  • 10 空行
  • 11 运算符
    • 11.1 常用运算符
      • 11.1.1 算数运算符
      • 11.1.2 比较(关系)运算符
      • 11.1.3 赋值运算符
      • 11.1.4 逻辑运算符
      • 11.1.5 位运算符
      • 11.1.6 成员运算符
      • 11.1.7 身份运算符
    • 11.2 运算符优先级
  • 参考

1 标识符(Identifier)

标识符是编程时使用的名字,用于给变量、函数、语句块等命名。

Python标识符命名规则:

  • 内容限定 : 只能包含 英文 , 中文 , 数字 , 下划线 , 其它字符不允许在标识符中出现 ;
  • 标识符的 开头不能是数字 ;
    不推荐使用中文标识符 , 可能出现未知隐藏问题 , 如与其它程序交互问题等 ;
  • 大小写敏感 : 大小写不同的两个标识符是不同的标识符 ;
  • 非关键字 : 每个关键字都有特定的用途 , 不能使用关键字作为标识符 ;
    关键字大小写敏感 , 如果关键字是大写 , 如 : False , True , None , 那么使用 false , true , none 作为标识符是允许的

以下划线开头的标识符有特殊含义:

  • 单下划线开头的标识符,如:_xxx ,表示不能直接访问的类属性,需通过类- 提供的接口进行访问,不能用 from xxx import * 导入
  • 双下划线开头的标识符,如:__xx,表示私有成员
  • 双下划线开头和结尾的标识符,如:xx,表示 Python 中内置标识,如:init() 表示类的构造函数。

2 关键字/保留字(Keyword)

以下是 Python 中的关键字(保留字),在自定义标识符时不能使用关键字。

---------------------------------
andexecnotassertfinallyor
breakforpassclassfromprint
continueglobalraisedefifreturn
delimporttryelifinwhile
elseiswithexceptlambdayield

Python 的标准库提供了一个 keyword 模块,可以输出当前版本的所有关键字:

>>> import keyword
>>> keyword.kwlist
['False', 'None', 'True', 'and', 'as', 'assert', 'break', 'class', 'continue', 'def', 'del', 'elif', 'else', 'except', 'finally', 'for', 'from', 'global', 'if', 'import', 'in', 'is', 'lambda', 'nonlocal', 'not', 'or', 'pass', 'raise', 'return', 'try', 'while', 'with', 'yield']

3 引号

Python 可以使用引号(‘)、双引号(")、三引号(’‘’ 或 “”")来表示字符串,引号的开始与结束须类型相同,三引号可以由多行组成。

4 编码

Python2 中默认编码为 ASCII,假如内容为汉字,不指定编码便不能正确的输出及读取,比如我们想要指定编码为 UTF-8,Python 中通过在开头加入 # -- coding: UTF-8 -- 进行指定。

Python3 中默认编码为 UTF-8,因此在使用 Python3 时,我们通常不需指定编码。

5 输入输出

Python 输出使用 print(),内容加在括号中即可。如下所示:

print('Hello Python')

Python 提供了一个 input(),可以让用户输入字符串,并存放到一个变量里。如下所示:

name = input()
print('Hi',name)

6 行与缩进

Python 不使用 {} 来控制类、函数、逻辑判断等,而是使用缩进。
缩进的空格数是可变的,但是同一个代码块的语句必须包含相同的缩进空格数。

7 多行语句

Python 通常是一行写完一条语句,但如果语句很长,我们可以使用反斜杠 \ 来实现多行语句。如下所示:

如果包含在 []、{}、() 括号中,则不需要使用 \。如下所示:

8 注释

Python 中的注释有单行注释和多行注释。
Python 中单行注释使用 #,多行注释使用三个单引号(‘’')或三个双引号(“”")。如下所示:

# 单行注释

'''
多行注释
多行注释
'''

"""
多行注释
多行注释
"""

注意: 多行注释可以嵌套使用,但是单行注释不能嵌套使用。

9 数据类型

常用的数据类型包括整型(int)、浮点型(float)、字符串(str)、布尔型(bool)、列表(list)、元组(tuple)、字典(dict)等。

Python3 的六个标准数据类型中:

  • 不可变数据(3 个):Number(数字)、String(字符串)、Tuple(元组);
  • 可变数据(3 个):List(列表)、Dictionary(字典)、Set(集合)。

在这里插入图片描述

9.1 数字(Number)类型

Python中数字有四种类型:整数、布尔型、浮点数和复数。

  • 整数(Integer):可以为任意大小、包含负数
    表示整数,可以进行加、减、乘、除等运算。可以使用type函数查看变量的数据类型。
  • 布尔型(Boolean):只有 True、False 两种值
    表示真(True)或假(False)的值,用于进行逻辑判断。可以进行与、或、非等逻辑运算。
    在 Python 中,True 和 False 都是关键字,表示布尔值。
  • 浮点数(Float):就是小数
    表示带有小数部分的数值,可以进行加、减、乘、除等运算。在进行浮点数运算时应注意精度问题。

9.2 变量(variate)

Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
在 Python 中,变量就是变量,它没有类型,我们所说的"类型"是变量所指的内存中对象的类型。
等号(=)用来给变量赋值。
等号(=)运算符左边是一个变量名,等号(=)运算符右边是存储在变量中的值。

多个变量赋值
Python允许同时为多个变量赋值。例如:

a = b = c = 1

以上实例,创建一个整型对象,值为 1,从后向前赋值,三个变量被赋予相同的数值。

9.3 字符串(String)

  • 字符串(String):以单引号 ‘、双引号"、三引号 ‘’’ 或 “”"括起来的文本
    常用于存储文本,在Python中使用单引号或双引号括起来。字符串可以进行拼接、切片、替换等操作。可以使用len函数获取字符串的长度。
    Python 中的字符串有两种索引方式,从左往右以 0 开始,从右往左以 -1 开始。
    在这里插入图片描述

9.4 列表(List)

列表可以完成大多数集合类的数据结构实现。用于存储一组有序的元素,可以包含不同的数据类型。列表可进行索引、切片、追加、插入、删除等操作。可以使用len函数获取列表的长度。

列表是写在方括号 [] 之间、用逗号分隔开的元素列表。

和字符串一样,列表同样可以被索引和截取,列表被截取后返回一个包含所需元素的新列表。

列表截取的语法格式如下:

变量[头下标:尾下标]

在这里插入图片描述

9.5 元组(tuple)

元组(tuple)与列表类似,用于存储一组有序的元素。不同之处在于元组的元素不能修改。元组写在小括号 () 里,元素之间用逗号隔开。

元组中的元素类型也可以不相同:

9.5 Set(集合)

Python 中的集合(Set)是一种无序、可变的数据类型,用于存储唯一的元素。
集合中的元素不会重复,并且可以进行交集、并集、差集等常见的集合操作。
在 Python 中,集合使用大括号 {} 表示,元素之间用逗号 , 分隔。
另外,也可以使用 set() 函数创建集合。

注意:创建一个空集合必须用 set() 而不是 { },因为 { } 是用来创建一个空字典。

9.6 字典(dictionary)

字典(dictionary)是Python中另一个非常有用的内置数据类型。
列表是有序的对象集合,字典是无序的对象集合。两者之间的区别在于:字典当中的元素是通过键来存取的,而不是通过偏移存取。
字典是一种映射类型,字典用 { } 标识,它是一个无序的 键(key) : 值(value) 的集合。
键(key)必须使用不可变类型。
在同一个字典中,键(key)必须是唯一的。

9.6 其他类型

  • 空值(Null):用 None 表示
  • 常量(Constant):不可变

10 空行

函数之间或类的方法之间用空行分隔,表示一段新的代码的开始。类和函数入口之间也用一行空行分隔,以突出函数入口的开始。

空行与代码缩进不同,空行并不是 Python 语法的一部分。书写时不插入空行,Python 解释器运行也不会出错。但是空行的作用在于分隔两段不同功能或含义的代码,便于日后代码的维护或重构。

记住:空行也是程序代码的一部分。

11 运算符

Python 语言支持以下类型的运算符:

  • 算术运算符
  • 比较(关系)运算符
  • 赋值运算符
  • 逻辑运算符
  • 位运算符
  • 成员运算符
  • 身份运算符
  • 运算符优先级

11.1 常用运算符

11.1.1 算数运算符

运算符描述示例
“+”相加a + b
" - "相减a - b
“*”相乘a * b
/相除a / b
%取模a % b
**a**b 表示 a 的 b 次幂
//取整除9 // 4 结果为 2

11.1.2 比较(关系)运算符

运算符描述示例
==是否相等a == b
!=是否不等于a != b
“>”是否大于a > b
“>=”是否大于等于a >= b
<=是否小于等于a <= b

11.1.3 赋值运算符

运算符描述示例
=简单的赋值运算符a = b + c
+=加法赋值运算符a += b 等效于 a = a + b
-=减法赋值运算符a -= b 等效于 a = a - b
*=乘法赋值运算符a *= b 等效于 a = a * b
/=除法赋值运算符a /= b 等效于 a = a / b
%=取模赋值运算符a %= b 等效于 a = a % b
**=幂赋值运算符a **= b 等效于 a = a ** b
//=取整除赋值运算符a //= b 等效于 a = a // b

11.1.4 逻辑运算符

运算符描述示例
and布尔类型与a and b
or布尔类型或a or b
not布尔类型非not a

11.1.5 位运算符

运算符描述示例
&a & b
a
^异或a ^ b
~取反~a
<<左移动a << 3
“>>”右移动a >> 3

11.1.6 成员运算符

运算符描述示例
in判断两个标识符是否引用同一个对象a in b
not in判断两个标识符是否引用不同对象a not in b

11.1.7 身份运算符

运算符描述示例
is判断两个标识符是否引用同一个对象a is b
is not判断两个标识符是否引用不同对象a is not b

注意: 数值的除法包含两个运算符:/ 返回一个浮点数,// 返回一个整数。

11.2 运算符优先级

以下表格列出了从最高到最低优先级的所有运算符, 相同单元格内的运算符具有相同优先级。 运算符均指二元运算,除非特别指出。
相同单元格内的运算符从左至右分组(除了幂运算是从右至左分组):

运算符描述(由上至下对应优先级由高到低)
**幂运算
~ + -取反、正号、负号
*/ % //乘、除、取模、取整除
±加法、减法
<< >>左移、右移
&
^异或、或
<= < > >=比较运算符
== !=是否等于、是否不等于
= %= /= //= -= += *= **=赋值运算符
is is not身份运算符
in not in成员运算符
not and or逻辑运算符

参考

1、CSDN博客-Python 基础(一):入门必备知识

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

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

相关文章

【漏洞复现】Apache_HTTPD_多后缀解析漏洞

感谢互联网提供分享知识与智慧&#xff0c;在法治的社会里&#xff0c;请遵守有关法律法规 文章目录 1.1、漏洞描述1.2、漏洞复现1、基础环境2、漏洞验证 1.3、深度利用GetShell 1.4、修复建议 1.1、漏洞描述 Apache HTTPD 支持一个文件拥有多个后缀&#xff0c;并为不同后缀执…

你了解SonarQube 吗

你了解SonarQube 吗 文章目录 你了解SonarQube 吗一、介绍二、idea代码检测工具SonarLint安装方法使用方法 三、常见的Sonar解决方法Unused "private" fields should be removedSections of code should not be "commented out"Useless imports should be …

异星工场入门笔记-02-一个重要地学习方法

编程学习地整个过程&#xff0c;最重要的工具就是电脑&#xff0c;其中有一个重点就是可以无成本的重复测试&#xff0c;这大大降低了难度&#xff0c;节约了时间。真正难以学习的不是技术本身&#xff0c;而是材料成本和时间成本&#xff0c;降低这两个因素平地起高楼根本不是…

go语言 | grpc原理介绍(二)

gRPC gRPC 是一个高性能、通用的开源 RPC 框架&#xff0c;其由 Google 2015 年主要面向移动应用开发并基于 HTTP/2 协议标准而设计&#xff0c;基于 ProtoBuf 序列化协议开发&#xff0c;且支持众多开发语言。 由于是开源框架&#xff0c;通信的双方可以进行二次开发&#x…

Canoe UDS诊断技术

Canoe UDS诊断 汽车诊断技术概述诊断术语OBD诊断CAN诊断协议诊断周期UDS诊断服务Diagnostic Request和Response诊断服务介绍 诊断文件CDD介绍诊断安全访问服务(security Access)介绍 如何在Canoe UDS诊断实战CANoe 开启诊断功能Canoe 诊断实战 汽车诊断技术概述 汽车诊断技术是…

让SOME/IP运转起来——SOME/IP系统设计(上)

什么是SOME/IP&#xff1f; SOME/IP&#xff08;Scalable service-Oriented MiddlewarE over IP&#xff09;是AUTOSAR应用层的协议&#xff0c;是基于IP协议的面向服务的可拓展性的中间件。 SOME/IP中主要定义了&#xff1a; 数据的序列化&#xff1a;SOME/IP支持的数据类型…

DirectX3D 虚拟现实项目 三维物体的光照及着色(五个不同着色效果的旋转茶壶)

文章目录 任务要求原始代码CPP文件代码着色器文件代码 效果展示 任务要求 本篇文章是中国农业大学虚拟现实课程的一次作业内容&#xff0c;需要对五个茶壶模型使用不同的光照进行着色和渲染&#xff0c;然后旋转展示。 本人的代码也是在其他人的代码的基础上修改来的&#xf…

学习网络安全有哪些误区?学习之前要做哪些准备?如何系统的学习黑客技术/网络安全?

如果你想学习网络安全&#xff0c;首先你必须了解什么是网络安全&#xff01;什么是黑客&#xff01; 1.无论网络、Web、移动、桌面、云等哪个领域&#xff0c;都有攻与防两面性&#xff0c;例如 Web 安全技术&#xff0c;既有 Web 渗透2.也有 Web 防御技术&#xff08;WAF&am…

CVE-2023-34040 Kafka 反序列化RCE

漏洞描述 Spring Kafka 是 Spring Framework 生态系统中的一个模块&#xff0c;用于简化在 Spring 应用程序中集成 Apache Kafka 的过程&#xff0c;记录 (record) 指 Kafka 消息中的一条记录。 受影响版本中默认未对记录配置 ErrorHandlingDeserializer&#xff0c;当用户将容…

MATLAB 绘制 SISO 和 MIMO 线性系统的时间和频率响应图

系列文章目录 文章目录 系列文章目录前言一、时间响应二、频率响应三、极点/零点图和根节点四、响应特性五、分析 MIMO 系统六、系统比较七、修改时间轴或频率轴数值如果觉得内容不错&#xff0c;请点赞、收藏、关注 前言 本例演示如何绘制 SISO 和 MIMO 线性系统的时间和频率…

YOLOv8改进:检测头结构全新创新篇 | S_improve_Detect结构创新

🚀🚀🚀本文改进:S_improve_Detect 全新的结构头创新,适配各个YOLO 🚀🚀🚀S_improve_Detect 在各个场景都能够有效涨点 🚀🚀🚀YOLOv8改进专栏:http://t.csdnimg.cn/hGhVK 学姐带你学习YOLOv8,从入门到创新,轻轻松松搞定科研; 1. S_improve_Detect介

Gradle笔记 一 Gradle的安装与入门

文章目录 Gradle 入门Gradle 简介学习Gradle 的原因&#xff1a; 常见的项目构建工具Gradle 安装Gradle 安装说明安装JDK 下载并解压到指定目录配置环境变量检测是否安装成功 Gradle 项目目录结构Gradle 创建第一个项目Gradle 中的常用指令修改maven 下载源Wrapper 包装器使用教…

CleanMyMac2024破解版如何下载?

CleanMyMac作为一款专业的苹果电脑清理软件&#xff0c;它不仅仅能单纯的卸载不用、少用的应用&#xff0c;同时还支持&#xff1a;1、清理应用程序的数据文件&#xff0c;将应用重置回初始状态&#xff0c;减少空间占用&#xff1b;2、自动检查应用更新&#xff0c;保持应用的…

Android系统Launcher启动流程学习(二)launcher启动

Zygote&#xff08;孵化器&#xff09;进程启动 在init进程中有解析.rc文件&#xff0c;在这个rc文件中配置了一个重要的服务service–zygote&#xff0c;这是app程序的鼻祖 zygote进程主要负责创建Java虚拟机&#xff0c;加载系统资源&#xff0c;启动SystemServer进程&#…

C语言switch语句

文章目录 前言一、switch语句二、switch语句中的break三、switch语句中的defaultswitch语句中的case和default的顺序问题: 总结 前言 本文将详细介绍switch语句&#xff0c;break和defualt的用法 一、switch语句 switch语句的表达式&#xff1a; switch (expression){case va…

由于flutter_app依赖于flutter_swiper>=0.0.2,不支持零安全,版本解决失败。

参考 dart3.0使用flutter_swiper报错记录 flutter_swiper package - All Versions从官网的信息可以看到 Dart3版本不兼容 最小兼容的Dart SDK版本需要2.0 Flutter SDK 版本列表Flutter SDK 版本列表 - Flutter 中文文档 - Flutter 中文开发者网站 - Flutter 说明&#xff1a;因…

从物理磁盘到数据库 —— 存储IO链路访问图

原图来自&#xff1a;数据库IO链路访问图 – OracleBlog 由于很复杂&#xff0c;为了加深理解自己重新画了一次&#xff0c;另外参考其他文档补充了各部分的插图和介绍。 一、 存储服务器 1. 物理磁盘 外层的壳子称为硬盘笼 cage 2. chunklet Chunklet 是一个虚拟概念而不是实…

分布式锁在Redis集群中的实践与探讨

分布式锁的基本概念 分布式锁是在分布式计算环境下&#xff0c;用来确保多个进程或线程在访问某些共享资源时能够避免冲突的一种同步机制。其主要目的是为了保持数据的一致性和完整性。为了达到这个目的&#xff0c;分布式锁需要满足互斥性、无死锁和容错性三个基本条件。 互…

SystemC入门之测试平台编写完整示例:全加器

导读: 本文将完整演示基于systemC编写一个全加器的测试平台。具体内容包括&#xff1a;激励平台&#xff0c;监控平台&#xff0c;待测单元的编写&#xff0c;波形文件读取。 1&#xff0c;main函数模块 搭建一个测试平台主要由&#xff1a;Driver, Monitor, DUT(design under …

javaee实验:搭建maven+spring boot开发环境,开发“Hello,Spring Boot”应用

目录 mavenspringboot实验目的实验内容环境的搭建 在开发中&#xff0c;maven和spring都是非常常用、非常重要的管理工具和框架&#xff0c;今天就在这里使用idea进行环境的搭建和创建第一个spring程序 maven 1.1maven是一个跨平台的项目管理工具&#xff08;主要管理jar包&am…