Python 基础教程【1】: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 注释的使用
通常来说,注释有以下两种作用:
- 不让解释器执行注释那句话
- 代码说明
在 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中,报错,有两种情况:
- 语法错误:在程序运行之前,Python解释器就能把错误识别出来
- 运行错误:在程序运行之前,识别不了的,必须要执行到对应的代码,才能发现问题
🎨 布尔 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介绍、变量和数据类型、输入输出、运算符
本文已收录于专栏🌻《Python 基础》文章目录1、Python 介绍2、变量和数据类型2.1 注释的使用2.2 变量以及数据类型2.2.1 什么是变量?2.2.2 怎么给变量起名?2.2.3 变量的类型🎨 整数 int🎨 浮点数(小数&…...
【RPC】Apache Thrift系列详解 - 概述与入门
文章目录前言正文Thrift的技术栈Thrift的特性(一) 开发速度快(二) 接口维护简单(三) 学习成本低(四) 多语言/跨语言支持(五) 稳定/广泛使用Thrift的数据类型Thrift的协议Thrift的传输层Thrift的服务端类型Thrift入门示例(一) 编写Thrift IDL文件(二) 新建Maven工程总结前言 Th…...
class03:MVVM模型与响应式原理
目录一、MVVM模型二、内在1. 深入响应式原理2. Object.entries3. 底层搭建一、MVVM模型 MVVM,即Model 、View、ViewModel。 Model > data数据 view > 视图(vue模板) 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安装教程
✅作者简介:CSDN一位小博主,正在学习前端 📃个人主页:白月光777的CSDN博客 💬个人格言:但行好事,莫问前程 安装VS CodeVS Code简介VS Code安装VS Code汉化结束语💡💡&…...
【Hive进阶】-- Hive SQL、Spark SQL和 Hive on Spark SQL
1.Hive SQL 1.1 基本介绍概念Hive由Facebook开发,用于解决海量结构化日志的数据统计,于2008年贡献给 Apache 基金会。Hive是基于Hadoop的数据仓库工具,可以将结构化数据映射为一张表,提供类似SQL语句查询功能本质:将Hi…...
搭建自己的直播流媒体服务器SRS,以及SRS+OBS直播推拉流使用及配置
一、前言 目前,全球直播带货什么的,成为主流,那如何自己搭建一个直播服务器呢。首先需要一个流媒体服务器,搭建流媒体有很多种方式,如下: 流媒体解决方案 Live555 (C)流媒体平台框…...
Node.js-----使用express写接口
使用express写接口 文章目录使用express写接口创建基本的服务器创建API路由模块编写GET接口编写POST接口CROS跨域资源共享1.接口的跨域问题2.使用cros中间件拒绝跨域问题3.什么是cros4.cros的注意事项5.cros请求的分类JSONP接口1.回顾jsonp的概念和特点2.创建jsonp接口的注意事…...
【Linux修炼】16.共享内存
每一个不曾起舞的日子,都是对生命的辜负。 共享内存一.共享内存的原理二.共享内存你的概念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基础命令大全(上)
♥️作者:小刘在C站 ♥️个人主页:小刘主页 ♥️每天分享云计算网络运维课堂笔记,努力不一定有收获,但一定会有收获加油!一起努力,共赴美好人生! ♥️夕阳下,是最美的绽放࿰…...
嵌入式 串口通信
目录 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语言函数调用栈
栈溢出(stack overflow)是最常见的二进制漏洞,在介绍栈溢出之前,我们首先需要了解函数调用栈。 函数调用栈是一块连续的用来保存函数运行状态的内存区域,调用函数(caller)和被调用函数…...
【高阶数据结构】红黑树
文章目录1. 使用场景2. 性质3. 结点定义4. 结点旋转5. 结点插入1. 使用场景 Linux进程调度CFSNginx Timer事件管理Epoll事件块的管理 2. 性质 每一个节点是红色或者黑色根节点一定是黑色每个叶子节点是黑色如果一个节点是红色,那么它的两个儿子节点都是黑色从任意…...
网络协议分析期末复习(二)
目录 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事务详解
🏆今日学习目标: 🍀Spring事务和MySQL事务详解 ✅创作者:林在闪闪发光 ⏰预计时间:30分钟 🎉个人主页:林在闪闪发光的个人主页 🍁林在闪闪发光的个人社区,欢迎你的加入: …...
ChatGPT背后的技术和多模态异构数据处理的未来展望——我与一位资深工程师的走心探讨
上周,我和一位从业三十余年的工程师聊到ChatGPT。 作为一名人工智能领域研究者,我也一直对对话式大型语言模型非常感兴趣,在讨论中,我向他解释这个技术时,他瞬间被其中惊人之处所吸引🙌,我们深…...
iOS-砸壳篇(两种砸壳方式)
CrackerXI砸壳呢,当时你要是使用 frida-ios-dump 也是可以的; https://github.com/AloneMonkey/frida-ios-dump frida-ios-dump: 代码中需要更改的:手机中的内网ip 密码 等 最后放到我的砸壳路径里: python dump.py -l查看应用…...
linux 基础
1.Shell 命令的格式如下:command -options [argument]command: Shell 命令名称。options: 选项,同一种命令可能有不同的选项,不同的选项其实现的功能不同。argument: Shell 命令是可以带参数的,也可以不带参…...
Java:SpringBoot给Controller添加统一路由前缀
网上的文章五花八门,不写SpringBoot的版本号,导致代码拿来主义不好使了。 本文采用的版本 SpringBoot 2.7.7 Java 1.8目录1、默认访问路径2、整个项目增加路由前缀3、通过注解方式增加路由前缀4、按照目录结构添加前缀参考文章1、默认访问路径 packag…...
Java 基于 JAVE 库 实现 视频转音频的批量转换
文章目录 Java 基于 JAVE 库 实现 视频转音频的批量转换Maven:方案一:代码优化:方案二:示例代码:代码优化:结语Java 基于 JAVE 库 实现 视频转音频的批量转换 实现视频转音频的功能需要使用到一个第三方的 Java 库,叫做 JAVE。JAVE 是一个开源的 Java 库,提供了视频和音频转换…...
Spring容器——基于XML注入
1. 容器:IOC IoC 是 Inversion of Control 的简写,译为“控制反转”,它不是一门技术,而是一种设计思想,是一个重要的面向对象编程法则,能够指导我们如何设计出松耦合、更优良的程序 Spring 通过 IoC 容器来…...
设计模式(二十一)----行为型模式之状态模式
1 概述 【例】通过按钮来控制一个电梯的状态,一个电梯有开门状态,关门状态,停止状态,运行状态。每一种状态改变,都有可能要根据其他状态来更新处理。例如,如果电梯门现在处于运行时状态,就不能…...
一分钟理解 AP(Affinity Propagation) 亲和⼒传播算法
从来没有一个算法让我研究好几天都搞不明白,AP算法算是第一个。弄了好几天,打草纸用了几十页,反复琢磨,最后都怀疑人生了。我觉得网上那么多介绍 AP 的文章,基本上没有一篇能讲明白的。最后我都觉得 AP 的作者可能都没…...
使用mybatis的映射文件操作存储过程
先随便创建一个存储过程 DELIMITER $$ CREATE PROCEDURE getUserNameById (IN i_id BIGINT, OUT o_name VARCHAR(10)) BEGINSELECT u.name INTO o_name FROM tb_user u WHERE id i_id; END $$delimiter $$ : 是将sql语句的结束符号先替换成$$的意思,因为sql是遇到…...
世界上最完美的两个软件,太厉害了!
今天给大家介绍两个软件,一个体现了人类在软件开发流程上的极致,另外一个则体现了程序员个体能力的巅峰。01航天飞机飞控软件先来说第一个,航天飞机飞行控制软件,就是下图这个大家伙。航天飞机重达120吨,还携带着2000吨…...
教你成为比卡卡西还牛逼的全能忍者,全拷贝与分割函数
如何成为一个集雷切,写轮眼侦查和拷贝与一身的卡卡西,下面教你! 目录 第一式——雷切! strtok 第二式——写轮眼侦查! strerror函数 第三式——写轮眼拷贝! memcpy 模拟实现memcpy函数 😎…...
【LeetCode】剑指 Offer(24)
目录 题目:剑指 Offer 47. 礼物的最大价值 - 力扣(Leetcode) 题目的接口: 解题思路: 代码: 过啦!!! 写在最后: 题目:剑指 Offer 47. 礼物的…...
javaEE 初阶 — CSS 元素的显示模式与盒模型
文章目录1. 元素的显示模式1.1 块级元素1.2 行内元素1.3 行内元素和块级元素的区别1.4 改变显示模式2. 盒模型2.1 边框2.1.1 边框的粗细2.1.2 边框的颜色2.1.3 边框的风格2.2 内边距2.3 外边距2.3.1 margin 的特殊情况1. 元素的显示模式 1.1 块级元素 常见的元素: h1 - h6 、…...
网站怎么做全屏滚动/网络优化工程师吃香吗
一、标准制修订 2020年,完成标准制修订数量418项,较上年增加47项。其中,国家标准31项,较上年减少7项;行业标准103项,较上年增加6项;地方标准204项,较上年增加39项;团体标…...
怎么做建设网站首页/最近的新闻热点时事
慢查询日志:MySQL慢查询日志记录下所有执行超过long_query_time时间的SQL语句,帮你找到执行慢的SQL,方便我们对这些SQL进行优化。慢查询日志的配置: 默认情况下,mysql没有启用慢查询日志。 [rootrh64 ~]# mysql -u r…...
网站建设公司运营/app推广引流
java 对称加密算法实现详解发布时间:2020-08-24 14:26:05来源:脚本之家阅读:99作者:小破孩123前言对于信息的加密方式多种多样,之前为大家介绍了一种自己设计的加密方式,有兴趣的朋友可以欣赏一下ÿ…...
wordpress网站的CDN设置/百度代理公司
jQuery, MooTools, Prototype 等优秀的 JavaScript 框架拥有各种强大的功能,包括绘制 Web 图表,使用这些框架以及相应插件,我们可以非常轻松地实现曲线图,圆饼图,柱状图等 Web 图表的绘制,而不必象以往那样…...
怎么做用户调研网站/网络营销系统
CENTOS的备份和恢复其实非常简单,我们只要把全部文件用TAR打包就行,下次需要恢复的适合再解压开覆盖就可以了下面详解CENTOS备份和还原的过程tar打包命令的特点:1、保留权限2、适合备份整个目录3、可以选择不同的压缩方式4、如果选择不压缩还…...
旅游网站的建设方案/首页关键词优化价格
1.VLAN规划。 通常,不同的部门规划不同的vlan,如上图PC1和PC2属于同一个VLAN,PC3和打印机属于同一VLAN下: 部门VLANPC1 、PC210PC3 ,打印机20 交换机上创建vlan,主机互联的接口配置为access接口ÿ…...