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

Python 基础教程【1】:Python介绍、变量和数据类型、输入输出、运算符

在这里插入图片描述

本文已收录于专栏
🌻
《Python 基础》

文章目录

  • 1、Python 介绍
  • 2、变量和数据类型
    • 2.1 注释的使用
    • 2.2 变量以及数据类型
      • 2.2.1 什么是变量?
      • 2.2.2 怎么给变量起名?
      • 2.2.3 变量的类型
        • 🎨 整数 int
        • 🎨 浮点数(小数)float
        • 🎨 字符串 str
        • 🎨 布尔 bool
        • 🎨 其他
      • 2.2.4 变量类型的意义
      • 2.2.5 动态类型特性
      • 2.2.6 类型转换
  • 3、输入输出
    • 3.1 输出到控制台
    • 3.2 从控制台输入
  • 4、运算符
    • 4.1 算术运算符
    • 4.2 关系运算符
    • 4.3 逻辑运算符
    • 4.4 赋值运算符

1、Python 介绍

Python 是一门解释型的编程语言

Python 有哪些特点?

简单、易学,免费开源、高层语言、可移植性、解释性、面向对象、拥有丰富的库

2、变量和数据类型

2.1 注释的使用

通常来说,注释有以下两种作用:

  1. 不让解释器执行注释那句话
  2. 代码说明

Python 中,注释也分为单行注释和多行注释,

单行注释: 以 # 和空格开头的部分
多行注释: 三个引号开头,三个引号结尾(引号不区分单引号和双引号)

'''
三个单引号的 Python 注释
'''"""
三个双引号的 Python 注释
"""# 单行注释

2.2 变量以及数据类型

2.2.1 什么是变量?

对于经常需要修改的数据,咱们可以定义为变量

定义变量的语法:变量名 = 变量值 (程序中的 = 作用是赋值的意思)

在 Java 和 C语言的学习中,变量命名,我们一般是类似以下的形式进行命名

Java:
int a = 100;

但Python作为一门弱语言,变量声明的时候对数据类型不是很严格

Python:
a = 100

Python 不用一上来就对变量进行类型声明,至于 a 是什么类型,取决于给a赋值了什么数据,给 a 赋值了100,就表示 a 是一个整型数据~

注意:
敲代码的时候,注意空格,a = 100 这中间是有空格的,a=100 这样写,没有空格的话会报错~

2.2.2 怎么给变量起名?

对于每个变量我们需要给它取一个名字,就如同我们每个人都有属于自己的响亮的名字一样~

变量名的命名规范:

硬性规则:

  • 标识符由字母、下划线和数字组成,且数字不能开头
  • 严格区分大小写
  • 不能使用关键字

软性规则:(建议遵守)

  • 给变量命名的时候,尽量使用描述性的单词来表示,尽量通过名字来表现变量的作用
  • 当我们使用一个单词描述不清楚的时候,可以使用多个单词来命名,不怕变量名长,而怕变量的含义表达不清楚

当包含多个单词的时候,命名有多种规范:

  • 驼峰命名法:除了第一个单词的首字母之外,后续每个单词的首字母都大写
    例:personInfo,totalCount

  • 蛇形命名法:单词之间使用下划线_来进行分隔
    例:person_info,total_count

2.2.3 变量的类型

变量的类型:对于不同种类的变量做出区分

Python 中的变量的类型,不需要在定义变量的时候显示声明,而只是依靠初始化语句,根据初始化的值的类型来进行确定

🎨 整数 int

  • 在Python,int 能够表示的数据范围,是“无穷”的,可以根据要表示的数据的大小,自动扩容。
  • 在Java中,int 最大能表示到 -21亿->+21亿。
  • 所以Python里面没有long这样的类型,像byte,short这些类型在Python中也不存在,整数都用int表示

🎨 浮点数(小数)float

像 C++ 和 Java里面,float 是四个字节的,也叫做“单精度浮点数”;double 是八个字节,也叫做“双精度浮点数”

把一个二进制位,称为一个 bit,8个 bit 放在一起,就称为是一个字节

Python 中的 float 就是双精度浮点数,等同于C++/Java里的double

🎨 字符串 str

Python 中要求使用单引号或者双引号将一系列的字符引起来,就构成了字符串

如果字符串里面包含了双引号,表示字符串可以用单引号引起来
如果字符串里面包含了单引号,表示字符串可以用双引号引起来

问:如果同时有单引号和双引号,怎么办?

Python 中还有一种字符串,使用 三引号(‘’’ 或者 “”") 表示

例:

Python 中还包含了一些关于 str 的内置函数:

  • len()可以求出字符串中包含了几个字符

例:

打印结果为 5

  • 拼接字符串

把后面的字符串拼接到前一个字符串的末尾

注意,不能把字符串和数字混合相加

例:

打印结果为 helloworld

在Python中,报错,有两种情况:

  1. 语法错误:在程序运行之前,Python解释器就能把错误识别出来
  2. 运行错误:在程序运行之前,识别不了的,必须要执行到对应的代码,才能发现问题

🎨 布尔 bool

布尔类型是一个特殊的类型,取值只有两种,True(真)和 False(假)

注意:单词首字母要大写

布尔类型主要用于逻辑判断

如果把 布尔 类型的值和 整数 进行算术运算,此时就会把 True 当做 1,把 False 当做 0,但是这样的操作,是没有意义的~

🎨 其他

除了上述类型之外,Python中还有list(列表)、tuple(元组)、dict(字典)、自定义类型等等~

2.2.4 变量类型的意义

不同的类型,占用的内存空间是不同的——即占几个字节

  • int 默认是 4个字节,动态扩容
  • float 固定 8个字节
  • bool 一个字节就够了
  • str 变长的

不同的类型,对应能够进行的操作也是不同的

对于 int 或者 float 类型,可以进行 + - * /,但是不能使用 len

str 类型的变量,可以进行 + 操作, 但是不能进行 -, 不能 *, 也不能 / ,可以使用 len

2.2.5 动态类型特性

程序运行过程中,变量的类型可能会发生改变

看上面这个代码,a 的类型会随着程序的运行,发生改变

打印结果为 int、str、bool

补充:
什么是静态类型?

程序运行过程中,变量的类型始终不变。
像C++、Java中,int a = 10;
a 这个变量在程序运行的整个过程中,始终都是 int
如果尝试 a = “hello”,编译阶段就会报错

一个编程语言是否是动态类型,只是取决于运行时,类型是否发生改变,不取决于变量定义的时候是否声明类型

Python 作为一个动态类型的语言,在定义变量的时候,也是可以写类型的

例:变量名 : 类型

动态类型,写法比较灵活的,提高了语言的表达能力。
然而,在编程中,“灵活”这个词往往是“贬义”,更容易出错!!! 相比之下,静态类型的语言还是更好一些的,尤其是在大型的程序中,多人协作开发

2.2.6 类型转换

可以使用 Python中内置的函数对变量类型进行转换,常用的有如下:

  • int():将一个数值或字符串转换成整数
  • float():将一个字符串转换成浮点数
  • str():将指定的对象转换成字符串形式
"""
使用input()函数获取键盘输入(字符串)
使用int()函数将输入的字符串转换成整数
"""
a = int(input('a = '))
print(a)

3、输入输出

3.1 输出到控制台

控制台: 用户能输入命令,向计算机安排工作,计算机再把结果显示出来的程序

Python 使用 print 函数输出到控制台

print('hello')

这个语法,是叫做 “格式化字符串”,f-string,此处的 f 表示“format”,此时就可以使用 {} 这样的语法,往字符串里面嵌入变量或者表达式

3.2 从控制台输入

input 执行的时候,就会等待用户输入。
input 返回的值,其实是一个 str

如果只是单纯的拿到用户的输入,然后打印,此时就按照 str 打印即可
如果需要根据用户输入的内容进行算术计算,此时就需要把先读到的 str -> int
可以使用 int()

a = input('请输入第一个整数:')
b = input('请输入第二个整数:')
a = int(a)
b = int(b)
print(f'a + b = {a + b}')

如果想把整数转为字符串,可以使用 str()

4、运算符

4.1 算术运算符

+-*/%**//

先算乘方,然后是乘除,最后算加减,如果运算过程中想修改默认的运算顺序,就需要加上()

  • 在Python中,0不能作为除数

一个数除以另一个数,前面的数是被除数,后面的数是除数

  • 在Python中,整数/整数,如果除不尽,得到的就是小数,不会出现截断的情况
  • % 是求余数,7%3结果为1
  • ** 进行乘方运算,既能支持整数次方,也支持小数次方(开方运算)
print(4 ** 2) # 结果为16
print(4 ** 0.5) # 结果为2.0
  • // 取整除法,会对计算的结果进行“向下取整”
print(7 // 2) # 结果为3
print(-7 // 2) # 结果为-4

4.2 关系运算符

<<=>>===!=

关系运算符对应的表达式,值是 布尔类型,表达式符合要求为真,不符合要求为假

关系运算不光可以针对数字进行比较,还能够比较字符串

Python 可以直接使用关系运算符来比较字符串

在C语言中,咱们是用 strcmp 来进行比较字符串,如果直接使用 == ,本质上在比较两个字符串首元素地址

Java 是用 equals方法来进行比较字符串,如果直接使用 == 本质上在比较两个字符串是否是同一个对象

针对浮点数来说,使用 == 比较相等,存在一定的风险!!

因为浮点数在内存中的存储和表示,是可能存在误差的!!这样的误差在进行算术运算的时候就可能被放大,从而导致 == 的判定出现误判!!

正确的比较浮点数相等:
作差,看差值是否小于预期的误差范围

同时,Python中,支持这种连续小于的写法

4.3 逻辑运算符

  • and 并且

两侧操作数均为True,表达式的值为 True,否则为False(一假则假)

  • or 或者

or 或者两侧操作数均为False,表达式的值为False,否则为True(一真则真)

  • not 逻辑取反

只有一个操作数。操作数为True,则返回False,操作数为False,则返回True

逻辑运算符中的细节:短路求值

对于 and 操作来说,如果左侧表达式为 False ,那么整体的值一定是 False,右侧表达式不必求值;
对于 or 操作来说,如果左侧表达式为 True,那么整体的值一定是 True,右侧表达式不必求值

4.4 赋值运算符

链式赋值:

a = b = 10

多元赋值:

a, b = 10, 20

Python中,不支持 ++-- 这样的自增自减操作的

相关文章:

Python 基础教程【1】:Python介绍、变量和数据类型、输入输出、运算符

本文已收录于专栏&#x1f33b;《Python 基础》文章目录1、Python 介绍2、变量和数据类型2.1 注释的使用2.2 变量以及数据类型2.2.1 什么是变量&#xff1f;2.2.2 怎么给变量起名&#xff1f;2.2.3 变量的类型&#x1f3a8; 整数 int&#x1f3a8; 浮点数&#xff08;小数&…...

【RPC】Apache Thrift系列详解 - 概述与入门

文章目录前言正文Thrift的技术栈Thrift的特性(一) 开发速度快(二) 接口维护简单(三) 学习成本低(四) 多语言/跨语言支持(五) 稳定/广泛使用Thrift的数据类型Thrift的协议Thrift的传输层Thrift的服务端类型Thrift入门示例(一) 编写Thrift IDL文件(二) 新建Maven工程总结前言 Th…...

class03:MVVM模型与响应式原理

目录一、MVVM模型二、内在1. 深入响应式原理2. Object.entries3. 底层搭建一、MVVM模型 MVVM&#xff0c;即Model 、View、ViewModel。 Model > data数据 view > 视图&#xff08;vue模板&#xff09; ViewModel > vm > vue 返回的实例 > 控制中心, 负责监听…...

[Spring学习]08 @Resource和@Autowired注解的区别

目录前言一、Resource和Autowired注解的身世1、Resource注解2、Autowired注解3、常见的三种依赖注入方式及区别1. Filed注入2. Setter注入3. Constructor注入4. 三种依赖注入方式的区别二、Resource和Autowired注解的区别三、Resource和Autowired注解的推荐用法前言 当我们在属…...

前端开发神器VS Code安装教程

✅作者简介&#xff1a;CSDN一位小博主&#xff0c;正在学习前端 &#x1f4c3;个人主页&#xff1a;白月光777的CSDN博客 &#x1f4ac;个人格言&#xff1a;但行好事&#xff0c;莫问前程 安装VS CodeVS Code简介VS Code安装VS Code汉化结束语&#x1f4a1;&#x1f4a1;&…...

【Hive进阶】-- Hive SQL、Spark SQL和 Hive on Spark SQL

1.Hive SQL 1.1 基本介绍概念Hive由Facebook开发&#xff0c;用于解决海量结构化日志的数据统计&#xff0c;于2008年贡献给 Apache 基金会。Hive是基于Hadoop的数据仓库工具&#xff0c;可以将结构化数据映射为一张表&#xff0c;提供类似SQL语句查询功能本质&#xff1a;将Hi…...

搭建自己的直播流媒体服务器SRS,以及SRS+OBS直播推拉流使用及配置

一、前言 目前&#xff0c;全球直播带货什么的&#xff0c;成为主流&#xff0c;那如何自己搭建一个直播服务器呢。首先需要一个流媒体服务器&#xff0c;搭建流媒体有很多种方式&#xff0c;如下&#xff1a; 流媒体解决方案 Live555 &#xff08;C&#xff09;流媒体平台框…...

Node.js-----使用express写接口

使用express写接口 文章目录使用express写接口创建基本的服务器创建API路由模块编写GET接口编写POST接口CROS跨域资源共享1.接口的跨域问题2.使用cros中间件拒绝跨域问题3.什么是cros4.cros的注意事项5.cros请求的分类JSONP接口1.回顾jsonp的概念和特点2.创建jsonp接口的注意事…...

【Linux修炼】16.共享内存

每一个不曾起舞的日子&#xff0c;都是对生命的辜负。 共享内存一.共享内存的原理二.共享内存你的概念2.1 接口认识2.2演示生成key的唯一性2.3 再谈key三.共享资源的查看3.1 如何查看IPC资源3.2 IPC资源的特征3.3 进程之间通过共享内存进行关联四.共享内存的特点五.共享内存的内…...

JAVA进阶 —— Stream流

目录 一、 引言 二、 Stream流概述 三、Stream流的使用步骤 1. 获取Stream流 1.1 单列集合 1.2 双列集合 1.3 数组 1.4 零散数据 2. Stream流的中间方法 3. Stream流的终结方法 四、 练习 1. 数据过滤 2. 数据操作 - 按年龄筛选 3. 数据操作 - 演员信息要求…...

Linux基础命令大全(上)

♥️作者&#xff1a;小刘在C站 ♥️个人主页&#xff1a;小刘主页 ♥️每天分享云计算网络运维课堂笔记&#xff0c;努力不一定有收获&#xff0c;但一定会有收获加油&#xff01;一起努力&#xff0c;共赴美好人生&#xff01; ♥️夕阳下&#xff0c;是最美的绽放&#xff0…...

嵌入式 串口通信

目录 1、通信的基本概念 1.1 串行通信 1.2 并行通信 2、串行通信的特点 2.1 单工 2.2 半双工 2.3 全双工 3、串口在STM32的引脚 4、STM32的串口的接线 4.1 STM32的串口1和电脑通信的接线方式 4.2 单片机和具备串口的设备连接图 5、串口通信协议 6、串口通信…...

C语言函数调用栈

栈溢出&#xff08;stack overflow&#xff09;是最常见的二进制漏洞&#xff0c;在介绍栈溢出之前&#xff0c;我们首先需要了解函数调用栈。 函数调用栈是一块连续的用来保存函数运行状态的内存区域&#xff0c;调用函数&#xff08;caller&#xff09;和被调用函数&#xf…...

【高阶数据结构】红黑树

文章目录1. 使用场景2. 性质3. 结点定义4. 结点旋转5. 结点插入1. 使用场景 Linux进程调度CFSNginx Timer事件管理Epoll事件块的管理 2. 性质 每一个节点是红色或者黑色根节点一定是黑色每个叶子节点是黑色如果一个节点是红色&#xff0c;那么它的两个儿子节点都是黑色从任意…...

网络协议分析期末复习(二)

目录 12. 端口的定义及常见应用对应的端口号 13. UDP协议概述 14.UDP数据报格式及各字段意义 15. UDP-Lite协议概述 16. TCP数据报格式及各字段意义 17. TCP连接建立及协商参数的过程 18. TCP连接释放过程 19. 路由协议分类及各类的具体协议 20. 路由算法常用的度量 2…...

【C++】STL简介 及 string的使用

文章目录1. STL简介1.1 什么是STL1.2 STL的版本1.3 STL的六大组件2. string类的使用2.1 C语言中的字符串2.2 标准库中的string类2.3 string类的常用接口说明1. string类对象的常见构造2. string类对象的容量操作3. string类对象的修改操作4. resize和reserve5. 认识迭代器&…...

MySQL事务详解

&#x1f3c6;今日学习目标&#xff1a; &#x1f340;Spring事务和MySQL事务详解 ✅创作者&#xff1a;林在闪闪发光 ⏰预计时间&#xff1a;30分钟 &#x1f389;个人主页&#xff1a;林在闪闪发光的个人主页 &#x1f341;林在闪闪发光的个人社区&#xff0c;欢迎你的加入: …...

ChatGPT背后的技术和多模态异构数据处理的未来展望——我与一位资深工程师的走心探讨

上周&#xff0c;我和一位从业三十余年的工程师聊到ChatGPT。 作为一名人工智能领域研究者&#xff0c;我也一直对对话式大型语言模型非常感兴趣&#xff0c;在讨论中&#xff0c;我向他解释这个技术时&#xff0c;他瞬间被其中惊人之处所吸引&#x1f64c;&#xff0c;我们深…...

iOS-砸壳篇(两种砸壳方式)

CrackerXI砸壳呢&#xff0c;当时你要是使用 frida-ios-dump 也是可以的&#xff1b; https://github.com/AloneMonkey/frida-ios-dump frida-ios-dump: 代码中需要更改的&#xff1a;手机中的内网ip 密码 等 最后放到我的砸壳路径里&#xff1a; python dump.py -l查看应用…...

linux 基础

1.Shell 命令的格式如下&#xff1a;command -options [argument]command: Shell 命令名称。options&#xff1a; 选项&#xff0c;同一种命令可能有不同的选项&#xff0c;不同的选项其实现的功能不同。argument&#xff1a; Shell 命令是可以带参数的&#xff0c;也可以不带参…...

前端倒计时误差!

提示:记录工作中遇到的需求及解决办法 文章目录 前言一、误差从何而来?二、五大解决方案1. 动态校准法(基础版)2. Web Worker 计时3. 服务器时间同步4. Performance API 高精度计时5. 页面可见性API优化三、生产环境最佳实践四、终极解决方案架构前言 前几天听说公司某个项…...

可靠性+灵活性:电力载波技术在楼宇自控中的核心价值

可靠性灵活性&#xff1a;电力载波技术在楼宇自控中的核心价值 在智能楼宇的自动化控制中&#xff0c;电力载波技术&#xff08;PLC&#xff09;凭借其独特的优势&#xff0c;正成为构建高效、稳定、灵活系统的核心解决方案。它利用现有电力线路传输数据&#xff0c;无需额外布…...

unix/linux,sudo,其发展历程详细时间线、由来、历史背景

sudo 的诞生和演化,本身就是一部 Unix/Linux 系统管理哲学变迁的微缩史。来,让我们拨开时间的迷雾,一同探寻 sudo 那波澜壮阔(也颇为实用主义)的发展历程。 历史背景:su的时代与困境 ( 20 世纪 70 年代 - 80 年代初) 在 sudo 出现之前,Unix 系统管理员和需要特权操作的…...

Matlab | matlab常用命令总结

常用命令 一、 基础操作与环境二、 矩阵与数组操作(核心)三、 绘图与可视化四、 编程与控制流五、 符号计算 (Symbolic Math Toolbox)六、 文件与数据 I/O七、 常用函数类别重要提示这是一份 MATLAB 常用命令和功能的总结,涵盖了基础操作、矩阵运算、绘图、编程和文件处理等…...

大模型多显卡多服务器并行计算方法与实践指南

一、分布式训练概述 大规模语言模型的训练通常需要分布式计算技术,以解决单机资源不足的问题。分布式训练主要分为两种模式: 数据并行:将数据分片到不同设备,每个设备拥有完整的模型副本 模型并行:将模型分割到不同设备,每个设备处理部分模型计算 现代大模型训练通常结合…...

代码规范和架构【立芯理论一】(2025.06.08)

1、代码规范的目标 代码简洁精炼、美观&#xff0c;可持续性好高效率高复用&#xff0c;可移植性好高内聚&#xff0c;低耦合没有冗余规范性&#xff0c;代码有规可循&#xff0c;可以看出自己当时的思考过程特殊排版&#xff0c;特殊语法&#xff0c;特殊指令&#xff0c;必须…...

pikachu靶场通关笔记19 SQL注入02-字符型注入(GET)

目录 一、SQL注入 二、字符型SQL注入 三、字符型注入与数字型注入 四、源码分析 五、渗透实战 1、渗透准备 2、SQL注入探测 &#xff08;1&#xff09;输入单引号 &#xff08;2&#xff09;万能注入语句 3、获取回显列orderby 4、获取数据库名database 5、获取表名…...

智能职业发展系统:AI驱动的职业规划平台技术解析

智能职业发展系统&#xff1a;AI驱动的职业规划平台技术解析 引言&#xff1a;数字时代的职业革命 在当今瞬息万变的就业市场中&#xff0c;传统的职业规划方法已无法满足个人和企业的需求。据统计&#xff0c;全球每年有超过2亿人面临职业转型困境&#xff0c;而企业也因此遭…...

书籍“之“字形打印矩阵(8)0609

题目 给定一个矩阵matrix&#xff0c;按照"之"字形的方式打印这个矩阵&#xff0c;例如&#xff1a; 1 2 3 4 5 6 7 8 9 10 11 12 ”之“字形打印的结果为&#xff1a;1&#xff0c;…...

数据结构:泰勒展开式:霍纳法则(Horner‘s Rule)

目录 &#x1f50d; 若用递归计算每一项&#xff0c;会发生什么&#xff1f; Horners Rule&#xff08;霍纳法则&#xff09; 第一步&#xff1a;我们从最原始的泰勒公式出发 第二步&#xff1a;从形式上重新观察展开式 &#x1f31f; 第三步&#xff1a;引出霍纳法则&…...