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

【python】入门第一课:了解基本语法(数据类型)

目录

 一、介绍

1、什么是python?

2、python的几个特点

二、实例

1、注释

2、数据类型

2.1、字符串 str

2.2、整数 int

2.3、浮点数 float

2.4、布尔 bool

2.5、列表 list

2.6、元组 tuple

2.7、集合 set

2.8、字典 dict


 一、介绍

1、什么是python?

Python是一种通用的高级编程语言,由Guido van Rossum于1991年创建。它被设计为易读、易学以及具有清晰和简洁的语法结构。Python支持多种编程范式,包括面向对象、函数式和过程式编程。它拥有广泛的第三方库和模块,可以用于各种领域的应用开发,如网站开发、科学计算、人工智能等。这种语言被广泛应用于各个领域,并且在数据科学和机器学习领域非常受欢迎。

2、python的几个特点

  1. 简单易学:Python的语法简洁明了,具有很高的可读性,使得初学者能够快速上手编程。
  2. 面向对象:Python支持面向对象编程,可以使用类和对象来组织和管理代码,提供了封装、继承和多态等特性。
  3. 开发效率高:Python具有丰富的内置库和第三方库,大大加速了开发过程。同时,Python还有像文档化和调试工具等用于提高开发效率的功能。
  4. 跨平台性:Python是一种跨平台的编程语言,可以运行在几乎所有的操作系统上,如Windows、Mac和Linux等。
  5. 强大的生态系统:Python拥有庞大、活跃的社区,提供了各种各样的库和工具,如NumPy、Pandas、Scikit-learn和Django等,用于数据分析、机器学习、Web开发等不同领域的应用。

Python是一种简单、易学、功能强大的编程语言,适用于各种应用开发,并且在开发效率和生态系统方面拥有显著优势。

二、实例

1、注释

注释分为三种注释:

  1. #
  2. '''     '''
  3. """     """
# 注释1''' 注释2 '''
"""
注释3
"""

2、数据类型

Python是一门动态的(dynamic)且强类型(strong)语言。

动态/静态 在静态类型语言(statically typed languages)中,类型检查发生在编译阶段(compile time) 在动态类型语言(dynamically typed languages)中,类型检查发生在运行阶段(run time)。

  1. 静态类型(static): 所有的变量类型必须被显示地声明,因为这些信息在编译阶段就被需要。
  2. 动态(Dynamic): 显示声明不被要求,因为类型赋值发生在运行阶段。

强类型/弱类型 在强类型中,不管在编译时还是运行时,一旦某个类型赋值给某个变量,它会持有这个类型,并且 不能同其他类型在计算某个表达式时混合计算。 在弱类型中,它是很容易与其他类型混合计算的。

2.1、字符串 str

Python中,用引号括起的都是字符串,其中的引号可以是单引号, 也可以是双引号

name= 'hello world'
name = "hello world"

可以通过 + 来拼接字符串

print("hello" + " world")

也可以使用制表符 \t 和换行符 \n

2.2、整数 int

在Python中,可对整数执行加(+)减(-)乘(*)除(/)运算。

count = 9
print(count + 1)
print(count - 1)
print(count * 2)
print(count / 2)

Python使用两个乘号表示乘方运算。

print(count ** 2) #81

2.3、浮点数 float

Python将带小数点的数字都称为浮点数。

a = 0.1
b = 0.2

但需要注意的是,结果包含的小数位数可能是不确定的。 计算机转换问题,这个跟你的电脑相关

print(a + b)

2.4、布尔 bool

  • True
  • False

>= <= == and or

# 短路  and  or
print(1 and 2 and 3 and 4)
print(1 and 2 and 0 and 4)

2.5、列表 list

在Python中,用方括号 [ ] 来表示列表,并用逗号来分隔其中的元素。

l1 = [1, 3, 4, 2, 5]

读取方式与其他语言一致:因为是有序的,可以通过索引来取值。 索引从0开始,但是不同的是可以为负数。

# 读取内容
print(l1[0])
# 下标可以是倒序的
print(l1[-1])
# 改变值
l1[-1] = 6
# 遍历
print(l1)

添加内容 stack栈: push放 pop拿

  • pop:拿元素(删除元素)
  • extend:追加
  • copy:复制新的引用
  • append:追加
  • l1.sort():排序
  • l1.sort(reverse=True):倒序
  • remove:删除某个元素
  • insert:插入
  • clear:清空

Python也支持了一些方法可以对其进行操作。

  • 在列表末尾添加元素 append
l1.append("blue_bear")
  • 在列表中插入元素 insert
l1.insert(0, "blue_bear")

从列表中删除元素

  • pop 出栈|根据索引删除
l1.pop()
l1.pop(0)
  • remove 根据元素删除
bicycles.remove('cannonade')

方法remove()只删除第一个指定的值。如果要删除的值可能在列表中出现多次,就需要 使用 循环来判断是否删除了所有这样的值。

  • 对列表进行永久性排序 sort
bicycles.sort()

还可以按与字母顺序相反的顺序排列列表元素,为此,只需向方法传递参数 reverse=True 。

  • 对列表进行临时性排序 sorted
sorted(bicycles)
  • 反转列表元素的排列顺序 reverse
  • 确定列表的长度 len
len(bicycles)

python还为列表等类型提供了 切片 功能

切片格式 变量名[start:stop:step] start: 起始下标 stop: 停止下标 step: 步长

  • startstop的正值代表列表下标,负值代表列表从左往右数起,倒数第几个数据。
  • 方向由step确定,step为正时,从左往右切片,step为负时,从右往左切片。
  • start和stop的空值分别代表列表的头尾的最后一个数据,至于start和stop空值的时候代表的是列 表的头还是尾,由step的正负值决定,即由step确定列表切片的方向后决定。

2.6、元组 tuple

元组与列表相似,但使用圆括号而不是方括号来标识,同时内部元素与大小不可改变。 元组元素快速赋值。

nums = (0, 1, 2)
a, b, c = nums

2.7、集合 set

是一个无序的不重复元素序列,可以使用 set() 方法和 { } 来创建。

cities = set()cities = {'hunan', 'shanghai', 'beijing'}
  • 添加元素 add
  • 删除元素 remove 报错 , discard 不报错 , pop , clear
  • 判断元素是否存在 a in b

集合运算

a = {1, 2, 3, 4}
b = {3, 4, 5, 6}
print(a - b)
print(a | b)
print(a & b)
print(a ^ b)

2.8、字典 dict

在Python中,字典用放在花括号{}中的一系列键—值对表示。与json类似

字典是一系列键—值对。每个键都与一个值相关联,你可以使用键来访问与之相关联的值。与键相关联 的值可以是数字、字符串、列表乃至字典。

alien = {'color': 'green', 'points': 5}

要获取与键相关联的值,可依次指定字典名和放在方括号内的键

alien['color']

字典是一种动态结构,可随时在其中添加键—值对。要添加键—值对,可依次指定字典名、用 方括号括 起的键和相关联的值。

alien['name'] = 'jack'

对于字典中不再需要的信息,可使用del语句将相应的键—值对彻底删除。使用del语句时, 必须指定字 典名和要删除的键。

del alien['name']

相关文章:

【python】入门第一课:了解基本语法(数据类型)

目录 一、介绍 1、什么是python&#xff1f; 2、python的几个特点 二、实例 1、注释 2、数据类型 2.1、字符串 str 2.2、整数 int 2.3、浮点数 float 2.4、布尔 bool 2.5、列表 list 2.6、元组 tuple 2.7、集合 set 2.8、字典 dict 一、介绍 1、什么是python&…...

csa从初阶到大牛(练习题2-查询)

新建2个文件d1.txt d2.txt ,使用vim打开d1.txt 输入“Hello World”字符串,将b1.txt 硬链接到b2.txt &#xff0c;查看2个文件的硬连接数 # 新建文件d1.txt和d2.txt touch d1.txt d2.txt# 使用vim编辑d1.txt并输入文本"Hello World" vim d1.txt# 创建硬链接b2.…...

【视觉SLAM入门】8. 回环检测,词袋模型,字典,感知,召回,机器学习

"见人细过 掩匿盖覆” 1. 意义2. 做法2.1 词袋模型和字典2.1.2 感知偏差和感知变异2.1.2 词袋2.1.3 字典 2.2 匹配(相似度)计算 3. 提升 前言&#xff1a; 前端提取数据&#xff0c;后端优化数据&#xff0c;但误差会累计&#xff0c;需要回环检测构建全局一致的地图&…...

SpringBean的生命周期

SpringBean的生命周期 SperingBean的生命周期是从Bean实例化之后&#xff0c;即通过反射创建出对象之后&#xff0c;到Bean成为一个完整对象&#xff0c;最终存储到单例池中&#xff0c;这个过程被称为Spring Bean的生命周期。Spring Bean的生命周期大体上分为三个阶段 Bean的…...

uni-app 之 picker选择器

uni-app 之 picker选择器 同步滚动&#xff1a;开 uni-app 之 picker选择器 一、普通选择器 二、多列选择器 三、时间选择器 四、日期选择器 一、普通选择器 <template><view><picker change"bindPickerChange" :value"index" :range&q…...

整合车辆出险报告Api接口,轻松管理车险理赔!

随着车辆保有量的不断增加&#xff0c;车辆出险的情况也越来越普遍。对于车主来说&#xff0c;如何高效地管理车险理赔&#xff0c;处理保险事故是非常重要的。这时候我们就可以借助整合车辆出险报告API接口&#xff0c;实现快速定位理赔信息&#xff0c;轻松管理车险理赔。 一…...

eNSP基础网络学习-v02

一、eNSP 1.什么是eNSP eNSP(Enterprise Network Simulation Platform)是一款由华为提供的免费的、可扩展的、图形化操作的网络仿真工具平台&#xff0c;主要对企业网络路由器、交换机进行软件仿真&#xff0c;完美呈现真实设备实景&#xff0c;支持大型网络模拟&#xff0c;让…...

mac环境安装多个node版本(可切换)

出现问题 mac m1pro版&#xff08;前段时间刚换的&#xff09;,环境安装的都是最新的。node 18.17.1 前端跑的是react 18 的项目&#xff08;antD&#xff09;, 又跑了一个相对环境配置比较低的项目&#xff0c;然后启动不起来了&#xff1b; 分析控制台报错&#xff0c;推断是…...

Linux 操作技巧

目录 一、shell-命令解释器 二、Linux中的特殊符号 三、命令历史--history 一、shell-命令解释器 shell——壳&#xff0c;命令解释器&#xff0c;负责解析用户输入的命令 ——内置命令&#xff08;shell内置&#xff09; ——外置命令&#xff0c;在文件系统的某个目录下&…...

一个电子信息工程学生的历程和内心感想

提示&#xff1a;文章写完后&#xff0c;目录可以自动生成&#xff0c;如何生成可参考右边的帮助文档 文章目录 一、我对大学三年专业课程的理解二、我为什么本科选择研究嵌入式这个方向&#xff1f;1.可以把理论变为实际应用——兴趣是最好的老师。2.嵌入式方向可以打的比赛非…...

【zookeeper】zk集群安装与启动踩坑点

zk安装我也踩了一些坑。特别是第一点&#xff0c;zk官网好像都没什么说明&#xff0c;导致直接下错了&#xff0c;搞了好几个小时。 踩坑点如下&#xff1a; 1&#xff0c;在zk官网下载包时&#xff0c;注意3.5以后的版本&#xff0c;要下载带-bin的&#xff0c;3.5之后&…...

【计算机网络】 拥塞控制

文章目录 背景TCP的四种拥塞控制算法慢开始与拥塞避免&#xff1a;快重传&#xff1a;快恢复&#xff1a; 流量控制和拥塞控制本质上的 区别 背景 网络中的链路容量和交换节点中的缓存和处理机都有着工作的极限&#xff0c;当网络的需求超过他们的工作极限时&#xff0c;就出现…...

【react】慎用useLayoutEffect转而使用useEffect

由于useLayoutEffect钩子是在dom获得后、渲染组件前。因此&#xff0c;如果在useLayoutEffect中设置一些长耗时的&#xff0c;或者死循环之类的任务&#xff0c;会导致内存堆栈溢出。这时候需要转用useEffect。 // 适配全局宽度拉动变化时&#xff0c;legend显示数量React.use…...

基于微信小程序的美食推荐系统设计与实现(源码+lw+部署文档+讲解等)

前言 &#x1f497;博主介绍&#xff1a;✌全网粉丝10W,CSDN特邀作者、博客专家、CSDN新星计划导师、全栈领域优质创作者&#xff0c;博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java、小程序技术领域和毕业项目实战✌&#x1f497; &#x1f447;&#x1f3fb;…...

laravel框架 - 消息队列如何使用

业务场景&#xff1a;项目里边有很多视频资源需要上传到抖音资源库&#xff0c;通过队列一条一条上传。 参考实例&#xff1a;发送邮件&#xff0c;仅供参考 (1)创建任务【生成任务类】 在你的应用程序中&#xff0c;队列的任务类都默认放在 app/Jobs 目录下。如果这个目录不存…...

Dependency ‘org.redisson:redisson:‘ not found解决方法 三种刷新Maven项目的方法

报错情况 在pom中导入redisson包 <dependency><groupId>org.redisson</groupId><artifactId>redisson</artifactId> </dependency> 爆红&#xff0c;还显示Dependency org.redisson:redisson: not found。 由于报错已经解决&#xff0c;…...

Mysql高级——索引优化和查询优化(1)

索引优化 1. 数据准备 学员表插50万条&#xff0c; 班级表插1万条。 建表 CREATE TABLE class (id INT ( 11 ) NOT NULL AUTO_INCREMENT,className VARCHAR ( 30 ) DEFAULT NULL,address VARCHAR ( 40 ) DEFAULT NULL,monitor INT NULL,PRIMARY KEY ( id ) ) ENGINE INNO…...

Oracle for Windows安装和配置——Oracle for Windows数据库创建及测试

2.2. Oracle for Windows数据库创建及测试 2.2.1. 创建数据库 1&#xff09;启动数据库创建助手&#xff08;DBCA&#xff09; 进入%ORACLE_HOME%\bin\目录并找到“dbca”批处理程序&#xff0c;双击该程序。具体如图2.1.3-1所示。 图2.1.3-1 双击“%ORACLE_HOME%\bin\dbca”…...

【1993. 树上的操作】

来源&#xff1a;力扣&#xff08;LeetCode&#xff09; 描述&#xff1a; 给你一棵 n 个节点的树&#xff0c;编号从 0 到 n - 1 &#xff0c;以父节点数组 parent 的形式给出&#xff0c;其中 parent[i] 是第 i 个节点的父节点。树的根节点为 0 号节点&#xff0c;所以 par…...

LeetCode【1. 两数之和】

穷通有命无须卜&#xff0c;富贵何时乃济贫&#xff1b;角逐名场今已久&#xff0c;依然一幅旧儒巾。 给定一个整数数组 nums 和一个整数目标值 target&#xff0c;请你在该数组中找出 和为目标值 target 的那 两个 整数&#xff0c;并返回它们的数组下标。 你可以假设每种输…...

SCAU期末笔记 - 数据分析与数据挖掘题库解析

这门怎么题库答案不全啊日 来简单学一下子来 一、选择题&#xff08;可多选&#xff09; 将原始数据进行集成、变换、维度规约、数值规约是在以下哪个步骤的任务?(C) A. 频繁模式挖掘 B.分类和预测 C.数据预处理 D.数据流挖掘 A. 频繁模式挖掘&#xff1a;专注于发现数据中…...

剑指offer20_链表中环的入口节点

链表中环的入口节点 给定一个链表&#xff0c;若其中包含环&#xff0c;则输出环的入口节点。 若其中不包含环&#xff0c;则输出null。 数据范围 节点 val 值取值范围 [ 1 , 1000 ] [1,1000] [1,1000]。 节点 val 值各不相同。 链表长度 [ 0 , 500 ] [0,500] [0,500]。 …...

基础测试工具使用经验

背景 vtune&#xff0c;perf, nsight system等基础测试工具&#xff0c;都是用过的&#xff0c;但是没有记录&#xff0c;都逐渐忘了。所以写这篇博客总结记录一下&#xff0c;只要以后发现新的用法&#xff0c;就记得来编辑补充一下 perf 比较基础的用法&#xff1a; 先改这…...

leetcodeSQL解题:3564. 季节性销售分析

leetcodeSQL解题&#xff1a;3564. 季节性销售分析 题目&#xff1a; 表&#xff1a;sales ---------------------- | Column Name | Type | ---------------------- | sale_id | int | | product_id | int | | sale_date | date | | quantity | int | | price | decimal | -…...

学习STC51单片机32(芯片为STC89C52RCRC)OLED显示屏2

每日一言 今天的每一份坚持&#xff0c;都是在为未来积攒底气。 案例&#xff1a;OLED显示一个A 这边观察到一个点&#xff0c;怎么雪花了就是都是乱七八糟的占满了屏幕。。 解释 &#xff1a; 如果代码里信号切换太快&#xff08;比如 SDA 刚变&#xff0c;SCL 立刻变&#…...

RabbitMQ入门4.1.0版本(基于java、SpringBoot操作)

RabbitMQ 一、RabbitMQ概述 RabbitMQ RabbitMQ最初由LShift和CohesiveFT于2007年开发&#xff0c;后来由Pivotal Software Inc.&#xff08;现为VMware子公司&#xff09;接管。RabbitMQ 是一个开源的消息代理和队列服务器&#xff0c;用 Erlang 语言编写。广泛应用于各种分布…...

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的----NTFS源代码分析--重要

根目录0xa0属性对应的Ntfs!_SCB中的FileObject是什么时候被建立的 第一部分&#xff1a; 0: kd> g Breakpoint 9 hit Ntfs!ReadIndexBuffer: f7173886 55 push ebp 0: kd> kc # 00 Ntfs!ReadIndexBuffer 01 Ntfs!FindFirstIndexEntry 02 Ntfs!NtfsUpda…...

解析两阶段提交与三阶段提交的核心差异及MySQL实现方案

引言 在分布式系统的事务处理中&#xff0c;如何保障跨节点数据操作的一致性始终是核心挑战。经典的两阶段提交协议&#xff08;2PC&#xff09;通过准备阶段与提交阶段的协调机制&#xff0c;以同步决策模式确保事务原子性。其改进版本三阶段提交协议&#xff08;3PC&#xf…...

Python常用模块:time、os、shutil与flask初探

一、Flask初探 & PyCharm终端配置 目的: 快速搭建小型Web服务器以提供数据。 工具: 第三方Web框架 Flask (需 pip install flask 安装)。 安装 Flask: 建议: 使用 PyCharm 内置的 Terminal (模拟命令行) 进行安装,避免频繁切换。 PyCharm Terminal 配置建议: 打开 Py…...

渗透实战PortSwigger Labs指南:自定义标签XSS和SVG XSS利用

阻止除自定义标签之外的所有标签 先输入一些标签测试&#xff0c;说是全部标签都被禁了 除了自定义的 自定义<my-tag onmouseoveralert(xss)> <my-tag idx onfocusalert(document.cookie) tabindex1> onfocus 当元素获得焦点时&#xff08;如通过点击或键盘导航&…...