当前位置: 首页 > news >正文

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

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 基础(一):入门必备知识

相关文章:

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

Python基础知识&#xff1a; 1 标识符&#xff08;Identifier&#xff09;2 关键字/保留字&#xff08;Keyword&#xff09;3 引号4 编码5 输入输出6 行与缩进7 多行语句8 注释9 数据类型9.1 数字(Number)类型9.2 变量&#xff08;variate&#xff09;9.3 字符串&#xff08;St…...

听听ChatGPT对IT行业的发展和就业前景的看法

&#x1f308;个人主页: Aileen_0v0&#x1f525;系列专栏:PYTHON学习系列专栏&#x1f4ab;"没有罗马,那就自己创造罗马~" 目录 (1)判断素数 写法1: 写法2: (2)计算1-100的偶数之和 写法1: 写法2: (3)计算1-100的奇数之和 (4)多层循环 IT行业哪个方向比较…...

〖程序员的自我修养 - 认知剖析篇⑤〗- 选择前端还是后端?

人之所以会觉得迷茫,本质上是欠缺对自己的一个控制力、识别庞杂信息、去伪存真的独立思考与认知能力。 说明:该文属于 程序员的自我修养 专栏,购买任意白宝书体系化专栏可加入易编程社区,早鸟价订阅模式除外。福利:加入社区的小伙伴们,除了可以获取博主所有付费专栏的阅读…...

Rust语言初步

文章目录 安装与测试变量条件语句和函数数组和元组循环 安装与测试 可以从官网直接下载。下载rustup-init并运行之后&#xff0c;会打开命令行&#xff0c;选1默认安装&#xff0c;然后不出意外就安装完了。 安装完成后按照惯例查看一下版本&#xff0c;如不报错就算成功。 …...

BIMILLC算法源码解析

论文链接&#xff1a;https://arxiv.org/abs/1607.02533 源码出处&#xff1a;https://github.com/Harry24k/adversarial-attacks-pytorch/tree/master 源码 import torch import torch.nn as nnfrom ..attack import Attackclass BIM(Attack):r"""BIM or iter…...

Android STR研究之五

前言&#xff1a; 在前四篇中初步介绍了开机流程&#xff0c;STR流程&#xff0c;唤醒流程&#xff0c;这里讲下STR的问题点 Android STR研究之一-CSDN博客 Android STR研究之二-CSDN博客 Android STR研究之三-CSDN博客 Android STR研究之四-CSDN博客 问题1&#xff1a;进入STR…...

python3+requests接口自动化测试实例详细操作

前段时间由于公司测试方向的转型&#xff0c;由原来的web页面功能测试转变成接口测试&#xff0c;之前大多都是手工进行&#xff0c;利用postman和jmeter进行的接口测试&#xff0c;后来&#xff0c;组内有人讲原先web自动化的测试框架移驾成接口的自动化框架&#xff0c;使用的…...

在Node.js中,什么是中间件(middleware)?它们的作用是什么?

聚沙成塔每天进步一点点 ⭐ 专栏简介 前端入门之旅&#xff1a;探索Web开发的奇妙世界 欢迎来到前端入门之旅&#xff01;感兴趣的可以订阅本专栏哦&#xff01;这个专栏是为那些对Web开发感兴趣、刚刚踏入前端领域的朋友们量身打造的。无论你是完全的新手还是有一些基础的开发…...

当函数参数为一级指针,二级指针

当函数参数为一级指针&#xff0c;二级指针 在讲述内容之前&#xff0c;先讲四点重要知识 1.当传入参数时&#xff0c;函数形参会立即申请形参的内存空间&#xff0c;函数执行完毕后&#xff0c;形参的内存空间立即释放掉。 1.指针是存放其他变量地址的变量。指针有自己的内…...

Hydra post登录框爆破

文章目录 无token时的Hydra post登录框爆破带Token时的Hydra post登录框爆破 无token时的Hydra post登录框爆破 登录一个无验证码和token的页面&#xff0c;同时抓包拦截 取出发送数据包&#xff1a;usernameadb&password133&submitLogin 将用户名和密码替换 userna…...

阿里云推出AI编程工具“通义灵码“;生成式 AI 入门教程 2

&#x1f989; AI新闻 &#x1f680; 阿里云推出AI编程工具"通义灵码"&#xff0c;支持多种语言及实时续写功能 摘要&#xff1a;阿里云推出了一款名为"通义灵码"的AI编程工具&#xff0c;支持多种主流编程语言&#xff0c;包括Java、Python、Go等。该工…...

使用Qt Installer Framework将自己的程序打包成安装包程序

使用Qt Installer Framework将自己的程序打包成安装包程序 制作安装包程序就是将自己的程序打包成一个可执行的exe&#xff0c;双击之后进行安装。 1. 在制作安装包程序之前需要安装qt官方提供的安装包制作工具Qt Installer Framework 去qt官方网址&#xff0c;下载对应的 Q…...

逆袭Flutter? Facebook 发布全新跨平台引擎 Hermes!

Facebook 于前日发布了新的 JavaScript 引擎&#xff1a;Hermes&#xff0c;专注于提高 React Native 应用的性能&#xff0c;并且在市面上那些内存较少、存储速度较慢且计算能力低下的移动设备上都有良好的表现。但是不是为了追赶Flutter&#xff1f;这块作者没有说明。 移动应…...

c++ 互斥锁使用详解 lock_guard

c 互斥锁使用详解 std::mutex 用于保护共享资源&#xff0c;防止多个线程同时修改共享资源而引发竞争条件。 成员函数 lock&#xff1a;锁定互斥&#xff0c;若互斥不可用则阻塞。try_lock&#xff1a;尝试锁定互斥&#xff0c;若互斥不可用则返回。unlock&#xff1a;解锁…...

【快速解决】Android Button页面跳转功能

目录 让我们直接开始 第一步&#xff1a;先建立一个新的activity ​编辑 第二步&#xff1a;打开第一个页面的Java文件MainActivity 方法一&#xff1a;直接跳转功能如下&#xff1a; 方法二&#xff1a;输入密码才能进行跳转功能如下&#xff1a; 需要注意的地方 结语 让…...

C语言 pthread_create

备注void *&#xff0c;最好添加返回值 原因&#xff1a;在实践中&#xff0c;虽然你的函数可能不需要返回任何值&#xff0c;但为了与 pthread_create 函数的预期函数指针格式相匹配&#xff0c;最好遵守函数指针所需的返回类型。这是一种良好的编程实践&#xff0c;确保你的代…...

前端uniapp提交表单调用接口方法最新

目录 源码1源码2最后 源码1 <template><view class"my-add-bank-card"><!-- name"bank_name" form表单提交的input里面一定要加name绑定要传的参数 name"bank_name" type"text" v-model"address.bank_name"…...

OpenFeign的简单介绍和功能实操

前言 本文主要做一下OpenFeign的简单介绍和功能实操&#xff0c;实操主要是OpenFeign的超时和重试&#xff0c;在阅读本文章前&#xff0c;请完成《Nacos 注册中心介绍与实操》内的Nacos多模块生产消费者项目 什么是OpenFeign OpenFeign全名Spring Cloud OpenFeign&#xff…...

webpack 高级

高级配置就是要进行 webpack 优化&#xff0c;让代码在编译、运行时性能更好 主要从以下角度去优化&#xff1a; 1、提升开发体验 2、提升打包构建速度 3、减少代码体积 4、优化代码运行性能 一、提升体验 1、SourceMap 为什么 打包出来的所有css和js合并成了一个文件&#…...

OLE DB 访问接口所需的(最大)数据长度为 18,但返回的数据长度为 6。

sqlserver查询oracle链接服务器视图,报错 给最终返回的字符串进行类型转换,字符串大小按返回值最大的那个oracle源本字段类型长度 aaaaaa AS yljgbmcast(aaaaaa AS varchar(10)) AS yljgbm...

oracle (9)Storage Relationship Strut

目录 一、基础知识 1、数据库逻辑结构图 2、Types of Segments 段的类型 3、Storage Clause Precedence 存储条款的优先顺序 4、Extent Alloc & Dealloc 区的范围分配和取消分配 5、 Used and Free Extents 使用和自由区 6、Database Block 数据库块 7、Multiple B…...

React 项目结构小结

React 项目结构小结 简单的记录一下目前 React 项目用的依赖和实现 摸索了大半年了大概构建一套用起来还算轻松的体系……&#xff1f;基本上应该是说可以应对大部分的项目了 使用的依赖 目前项目还在 refactoring 的阶段&#xff0c;所以乱得很&#xff0c;这里是新建一个…...

4.网络之TCP

TCP协议(传输层) 文章目录 TCP协议(传输层)1. TCP报文格式2. TCP相关机制2.1 确认应答机制2.2 超时重传机制2.3 连接管理机制&#xff08;重点&#xff09;2.3.1 三次握手2.3.2 四次挥手 2.4 滑动窗口机制2.5 流量控制机制2.6 拥塞控制机制2.7 延迟应答机制2.8 捎带应答机制 3.…...

电池原理与分类

1 电池基础知识 电池目前大量应用于我们的生活中&#xff0c;主要包括3C消费类、动力类、储能类。 图1 电池应用方向 备注&#xff1a;3C指的是计算机(Computer )、通讯&#xff08;Communication&#xff09;消费类电子产品&#xff08;Consumer Electronic&#xff09;三类…...

Mongoose 开源库--Filesystem(文件系统)使用笔记

一、相关API Mongoose 开源库中也包含 文件系统 相关的 API&#xff0c;如下&#xff1a; 文件虚拟层&#xff1a; struct mg_fs {int (*st)(const char *path, size_t *size, time_t *mtime); // stat filevoid (*ls)(const char *path, void (*fn)(const char *, void *), v…...

新兴初创企业参展招募

一般来说&#xff0c;创业公司的生存率较低&#xff0c;失败率较高。根据不同的数据来源&#xff0c;创业公司的失败率高达 80%-90%。据统计&#xff0c;在中国每年新注册的企业数量超过 100 万家&#xff0c;但能够存活到 5 年以上的企业不足 7%&#xff0c;10 年以上不足 2%。…...

【Linux】Nginx安装使用负载均衡及动静分离(前后端项目部署),前端项目打包

一、Nginx导言 1、引言 Nginx 是一款高性能的 Web 服务器和反向代理服务器&#xff0c;也可以充当负载均衡器、HTTP 缓存和安全防护设备。它的特点是内存占用小、稳定性高、并发性强、易于扩展&#xff0c;因此在互联网领域得到了广泛的使用。 总结出以下三点: 负载均衡&#…...

银行和金融企业为何青睐这8款项目管理工具

银行、金融行业中主流的8款项目管理系统&#xff1a;1.PingCode&#xff1b;2.Worktile&#xff1b;3.Microsoft Project&#xff1b;4.Jira by Atlassian&#xff1b;5.Asana&#xff1b;6.Trello&#xff1b;7.Wrike&#xff1b;8.Teambition。 银行和金融性质的公司在项目管…...

一分钟理解npm run dev 和 npm run serve

前端开发过程中运行Vue项目的时候&#xff0c;有时候使用npm run serve命令可以启动项目&#xff0c;有时候却会报错&#xff1b;有时候使用npm run dev命令可以启动项目&#xff0c;有时候却也会报错。是什么原因造成这种情况呢&#xff0c;原因在于Vue脚手架版本的问题&#…...

HTTP 协议请求头 If-Match、If-None-Match 和 ETag

概述 在 HTTP 协议中&#xff0c;请求头 If-Match、If-None-Match、If-Modified-Since、If-Unmodified-Since、If-Range 主要是为了解决浏览器缓存数据而定义的请求头标准&#xff0c;按照协议规范正确的判断和使用这几个请求头&#xff0c;可以更精准的处理浏览器缓存&#x…...