当前位置: 首页 > 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...

【第二十一章 SDIO接口(SDIO)】

第二十一章 SDIO接口 目录 第二十一章 SDIO接口(SDIO) 1 SDIO 主要功能 2 SDIO 总线拓扑 3 SDIO 功能描述 3.1 SDIO 适配器 3.2 SDIOAHB 接口 4 卡功能描述 4.1 卡识别模式 4.2 卡复位 4.3 操作电压范围确认 4.4 卡识别过程 4.5 写数据块 4.6 读数据块 4.7 数据流…...

HTML 列表、表格、表单

1 列表标签 作用&#xff1a;布局内容排列整齐的区域 列表分类&#xff1a;无序列表、有序列表、定义列表。 例如&#xff1a; 1.1 无序列表 标签&#xff1a;ul 嵌套 li&#xff0c;ul是无序列表&#xff0c;li是列表条目。 注意事项&#xff1a; ul 标签里面只能包裹 li…...

srs linux

下载编译运行 git clone https:///ossrs/srs.git ./configure --h265on make 编译完成后即可启动SRS # 启动 ./objs/srs -c conf/srs.conf # 查看日志 tail -n 30 -f ./objs/srs.log 开放端口 默认RTMP接收推流端口是1935&#xff0c;SRS管理页面端口是8080&#xff0c;可…...

Cinnamon修改面板小工具图标

Cinnamon开始菜单-CSDN博客 设置模块都是做好的&#xff0c;比GNOME简单得多&#xff01; 在 applet.js 里增加 const Settings imports.ui.settings;this.settings new Settings.AppletSettings(this, HTYMenusonichy, instance_id); this.settings.bind(menu-icon, menu…...

Mobile ALOHA全身模仿学习

一、题目 Mobile ALOHA&#xff1a;通过低成本全身远程操作学习双手移动操作 传统模仿学习&#xff08;Imitation Learning&#xff09;缺点&#xff1a;聚焦与桌面操作&#xff0c;缺乏通用任务所需的移动性和灵活性 本论文优点&#xff1a;&#xff08;1&#xff09;在ALOHA…...

中医有效性探讨

文章目录 西医是如何发展到以生物化学为药理基础的现代医学&#xff1f;传统医学奠基期&#xff08;远古 - 17 世纪&#xff09;近代医学转型期&#xff08;17 世纪 - 19 世纪末&#xff09;​现代医学成熟期&#xff08;20世纪至今&#xff09; 中医的源远流长和一脉相承远古至…...

安宝特方案丨船舶智造的“AR+AI+作业标准化管理解决方案”(装配)

船舶制造装配管理现状&#xff1a;装配工作依赖人工经验&#xff0c;装配工人凭借长期实践积累的操作技巧完成零部件组装。企业通常制定了装配作业指导书&#xff0c;但在实际执行中&#xff0c;工人对指导书的理解和遵循程度参差不齐。 船舶装配过程中的挑战与需求 挑战 (1…...

接口自动化测试:HttpRunner基础

相关文档 HttpRunner V3.x中文文档 HttpRunner 用户指南 使用HttpRunner 3.x实现接口自动化测试 HttpRunner介绍 HttpRunner 是一个开源的 API 测试工具&#xff0c;支持 HTTP(S)/HTTP2/WebSocket/RPC 等网络协议&#xff0c;涵盖接口测试、性能测试、数字体验监测等测试类型…...

【SpringBoot自动化部署】

SpringBoot自动化部署方法 使用Jenkins进行持续集成与部署 Jenkins是最常用的自动化部署工具之一&#xff0c;能够实现代码拉取、构建、测试和部署的全流程自动化。 配置Jenkins任务时&#xff0c;需要添加Git仓库地址和凭证&#xff0c;设置构建触发器&#xff08;如GitHub…...

LCTF液晶可调谐滤波器在多光谱相机捕捉无人机目标检测中的作用

中达瑞和自2005年成立以来&#xff0c;一直在光谱成像领域深度钻研和发展&#xff0c;始终致力于研发高性能、高可靠性的光谱成像相机&#xff0c;为科研院校提供更优的产品和服务。在《低空背景下无人机目标的光谱特征研究及目标检测应用》这篇论文中提到中达瑞和 LCTF 作为多…...