Python:入门基础

目录

常量和表达式

变量

变量的语法

变量的类型

动态类型特性

注释的使用

输入和输出

通过控制台输出

通过控制台输入

运算符

算术运算符

关系运算符

逻辑运算符

赋值运算符


常量和表达式

print是Python中的一个内置函数,使用print函数可以将数据打印到控制台上

上述的代码运行后会输出到控制台上:

在C语言中,整数 除以 整数 结果还是整数,并且会把小数部分直接舍弃,而 Python 中并不遵守这种规则
观察上述结果,1 + 2 / 3 得到的结果是 1.6666666666666665,而不是1,就可以验证

  • Python中浮点数在内存中的存储遵循IEEE754标准,这套标准在表示浮点数时可能会存在微小的误差,这就可以解释为什么是 665而不是其他数字,是标准规定的微小误差

  • 形如 1+2+3 这样的算式称为表达式,表达式的运算结果称为表达式的返回值,而像1,2,3这样的数字称为字面值常量


变量

有的时候, 我们需要进行的计算可能更复杂一些,需要把一些计算的中间结果保存起来,这个时候就需要用到 变量

变量的语法

定义变量

定义变量的语句如下:

a = 1

变量的命名规则

硬性规则(必须遵守):

  • 变量名由数字、字母、下划线构成
  • 变量名不能以数字开头
  • 变量名不能和Python的 关键字 重复
  • 变量名大小写敏感,比如num和Num是两个不同的变量名

软性规则(建议遵守):

  • 变量名使用有描述性的单词来表示,尽量表达出变量的作用
  • 当一个单词无法表述清楚变量的作用时,可以用多个单词进行命名,含义要清晰
  • 当变量名包含多个单词时,建议使用驼峰命名法,例如 personInfo

使用变量

读取变量的值:

// 结果为10
a = 10
print(a)  

修改变量的值:

// 给变量a重新赋值,结果为20
a = 10
a = 20  
print(a)  

变量的类型

与C/C++等其他语言不同的是,Python中变量的类型不需要在定义的时候显式声明,而是根据初始化的值的类型来进行确定的

整数

整数的类型为int:

  结果为:

  • type和print类似,也是Python中的一个内置函数,可以使用type函数来查看一个变量的类型
  • 与C++/Java等其他语言不同的是,Python中int类型的变量能够表示的数据范围是没有上限的,只要内存足够大,理论上就可以表示无限大的数据,是动态扩容的

浮点数

浮点数(小数)的类型为float:

  结果为:

与C++/Java等其他语言不同的是,Python中的浮点数只有float一种类型,没有double类型,实际上Python中的float就相当于C/C++等语言中的double类型,表示双精度浮点数


字符串

字符串的类型为str:

  结果为:

字符串可以是用“单引号”、“双引号”、“三单引号”或者“三双引号”引起来的一串字符

那么为什么会引入这几种引号,有一个不就够了吗

因为可能某些字符串中本身是有引号的,例如:

此时就会报错,因为编译器会认为在 is 后面的那个 双引号 就是字符串的结尾了,后面的字符就是非法的

所以在这种情况下, 就可以使用 单引号 引起来字符串

运行结果:


也可以使用len函数来获取字符串的长度:

  结果为:


可以使用+对两个字符串进行拼接,拼接后的字符串不会对原字符串产生影响:

结果为:

需要注意的是:
不能将字符串和数字混合相加


布尔

表示真假的类型为bool:

  结果为:

布尔类型的取值只有两种,True(真) 和 False(假)

注意与 C++/Java 不同的是,这里的首字母是大写的

其余像list、tuple、dict、自定义类型等等,我们后续再做介绍


动态类型特性

  • 动态类型: 在运行时,解释器基于变量值的类型决定变量的类型
  • 静态类型: 在编译时,编译器基于所声明的数据类型确定变量的类型

C++/Java等大多数语言都是静态类型语言,在编写静态类型语言的代码时,必须声明变量的数据类型
而Python则是一种动态类型语言, 因此在编写Python代码时不用声明变量的数据类型

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

  结果为:

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

相比之下,静态类型的语言还是更好一些的,因为动态类型特性非常灵活,灵活就意味着更容易出错,尤其是在大型的多人协作的开发中,更推荐使用静态类型的语言


注释的使用

注释行

使用 #开头 的行都是注释,注释可以单独的写在一行,也可以写在代码的右侧


文档字符串

使用三引号引起来的称为“文档字符串”,也可以视为是一种注释:

注释大家都比较了解了,这里就不过多涉及了


输入和输出

通过控制台输出

使用print函数可以将任意类型的变量输出到控制台:

控制台输出结果:

如果想要混合输出不同类型的变量,那么就需要对输出的字符串进行格式化输出

Python中采用的是 f-string 的方式,f-string里面可以使用 {} 来内嵌一个其他的变量或表达式

   结果为: 


通过控制台输入

使用input函数可以从控制台读取用户输入的数据:

结果为:

需要注意:
input的返回值就是用户输入的内容,是字符串类型(str)

由于input函数的返回值是字符串类型,因此下面代码实际进行的是字符串的拼接操作:

结果为:

如果不想拼接,就只是想进行算术运算,那么需要在运算前对读取到的值进行类型转换:
int () 的方式进行类型转换

此时的结果为:

类似的,也可以通过 float() 、bool() 、str() 等将变量转换成对应的类型


运算符

算术运算符

Python 中的算术运算符,包括 +-*、/、%**(幂)、//(地板除)

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

① 0 不能做除数,否则程序会抛异常


② 两个整数相除后得到的是一个浮点数:

    结果为: 

证明了两个整数相除后得到的是一个浮点数


③ **可以求一个数的整数次幂,也可以求一个数的小数次幂

   结果为:


④ // 是地板除,整数除以整数得到的结果还是整数(针对计算的结果,向下取整)
也就是和 C++/Java 中的除法计算方式类似

   结果为:


关系运算符

关系运算符就是在比较两个操作数之间的 大小、相等 这样的关系

Python中的关系运算符,包括 < 、<= 、> 、>= 、== 、!=

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

   结果为:


判断两个字符串是否相等

在Python中使用 == 或 != ,即可直接判断两个字符串的内容是否相等:

   结果为:


判断两个浮点数是否相等

不能直接使用 == 来判断两个浮点数是否相等,因为浮点数在内存中的存储和表示,是可能存在误差的

  结果为:

根据上面的 0.1 + 0.2 的结果可以得知, 0.1 + 0.2 != 0.3,浮点数是有误差的


正确的比较方式是:判定这两个浮点数的差值是否小于允许的误差范围:

  结果为:

需要注意:
Python 中支持这种连续小于的写法,C++/Java 中是不支持这种写法的


逻辑运算符

Python中的逻辑运算符,包括 and、or、not

and:并且,两侧操作数均为True,则最终结果为True,否则为False
or:或者,两侧操作数均为False,则最终结果为False,否则为True
not:逻辑取反,操作数本身为True,则返回False,本身为False,则返回True

因为 Python 中支持连续的小于比较,所以 a < b and b < c 是等价于 a < b < c

Python中也存在短路求值规则:
对于and,如果左侧表达式为False,则整体一定为False,因此右侧表达式不再执行
对于or,如果左侧表达式为True,则整体一定为True,因此右侧表达式不再执行

如下所示:

此时 a > b 是不成立的,所以直接返回False, 不执行右侧表达式了:

如果将 a > b 改为 a < b,就会执行后面的 10 / 0,会有异常:


赋值运算符

Python中的赋值运算符,包括=、+=、-=、*=、/=、%=、**=、//=、&=、|=、^=、<<=、>>=

使用 = 同时对多个变量赋值

  结果为:

多元赋值:

  结果为:

多元赋值可以完成交换变量的值:

   结果为:

复合赋值运算符

像 += 、-=等等都是复合赋值运算符,例如:

  结果为: 

a += 1 和 a = a + 1 是一个含义,其他的复合赋值运算符以此类推

注意:
Python不支持C++中的 ++ / -- 操作,想要进行类似的操作只能 +=1 / -= 1,


Python的入门基础到此结束

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/461789.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

手动搭建koa+ts项目框架(node开发配置环境变量)

文章目录 一、安装所需依赖二、设置package.json三、定义ts &#xff08;可选&#xff09;四、配置环境变量文件五、引入变量文件总结如有启发&#xff0c;可点赞收藏哟~ 一、安装所需依赖 pnpm add dotenv二、设置package.json 先配置脚本设置对应环境变量NODE_ENV {"…

吞吐量最高飙升20倍!破解强化学习训练部署难题

**强化学习&#xff08;RL&#xff09;对大模型复杂推理能力提升有关键作用&#xff0c;然而&#xff0c;RL 复杂的计算流程以及现有系统局限性&#xff0c;也给训练和部署带来了挑战。近日&#xff0c;字节跳动豆包大模型团队与香港大学联合提出 HybridFlow&#xff08;开源项…

Unity 插件编译版本.net 4.0

项目中用到了Google.ProtocolBuffersLite.dll 这个动态链接库&#xff0c;在升级完Unity版本后出现了 ”Unity targets .NET 4.x and is marked as compatible with editor, Editor can only use assemblies targeting .NET 3.5 or lower“ 的问题。 解决方法&#xff1a; 1、…

Cpp二叉搜索树的讲解与实现(21)

文章目录 前言一、二叉搜索树的概念定义特点 二、二叉树的实现基本框架查找插入删除当只有0 ~ 1个孩子的时候当有2个孩子的时候 三、二叉树的应用K模型KV模型 四、二叉树的性能分析总结 前言 这是全新的一个篇章呢&#xff0c;二叉搜索树是我们接下来学习set、map的前提 迈过它…

Elasticsearch —— ES 环境搭建、概念、基本操作、文档操作、SpringBoot继承ES

文章中会用到的文件&#xff0c;如果官网下不了可以在这下 链接: https://pan.baidu.com/s/1SeRdqLo0E0CmaVJdoZs_nQ?pwdxr76 提取码: xr76 一、 ES 环境搭建 注&#xff1a;环境搭建过程中的命令窗口不能关闭&#xff0c;关闭了服务就会关闭&#xff08;除了修改设置后重启的…

第八届御网杯线下赛Pwn方向题解

由于最近比赛有点多&#xff0c;而且赶上招新&#xff0c;导致原本应该及时总结的比赛搁置了&#xff0c;总结来说还是得多练&#xff0c;因为时间很短像这种线下赛&#xff0c;一般只有几个小时&#xff0c;所以思路一定要清晰&#xff0c;我还是经验太少了&#xff0c;导致比…

Ethernet 系列(6)-- 基础学习::OSI Model

&#xff08;写在前面&#xff1a;最近在学习车载以太网的知识&#xff0c;顺便记录一下知识点。&#xff09; OSI&#xff08;Open System Interconnect &#xff09;模型是一种网络通信框架&#xff0c;由国际标准化组织&#xff08;‌ISO&#xff09;在1985年提出&#xff0…

Java 字符流详解

在 Java 的 I/O 体系中&#xff0c;字符流&#xff08;Reader 和 Writer&#xff09;是专门用于处理文本数据的输入输出流。与字节流不同&#xff0c;字符流以字符为单位进行读取和写入&#xff0c;能够更好地处理文本信息&#xff0c;尤其是包含多字节字符&#xff08;如中文&…

Linux 多线程编程

韦东山的例程所谓线程&#xff0c;就是操作系统所能调度的最小单位。普通的进程&#xff0c;只有一个线程在执行对应的逻辑。我们可以通过多线程编程&#xff0c;使一个进程可以去执行多个不同的任务。相比多进程编程而言&#xff0c;线程享有共享资源&#xff0c;即在进程中出…

后端:Spring-1

文章目录 1. 了解 spring(Spring Framework)2. 基于maven搭建Spring框架2.1 纯xml配置方式来实现Spring2.2 注解方式来实现Spring3. Java Config类来实现Spring 2.4 总结 1. 了解 spring(Spring Framework) 传统方式构建spring(指的是Spring Framework)项目&#xff0c;导入依…

【C++动态规划 01背包】2787. 将一个数字表示成幂的和的方案数

本文涉及知识点 C动态规划 C背包问题 LeetCode2787. 将一个数字表示成幂的和的方案数 给你两个 正 整数 n 和 x 。 请你返回将 n 表示成一些 互不相同 正整数的 x 次幂之和的方案数。换句话说&#xff0c;你需要返回互不相同整数 [n1, n2, …, nk] 的集合数目&#xff0c;满…

Python爬虫的京东大冒险:如何高效获取商品详情的秘籍

在这个由代码编织的电商世界里&#xff0c;京东商品详情就像是被锁在高塔中的公主&#xff0c;等待着勇敢的Python爬虫骑士去解救。今天&#xff0c;我们要讲述的是如何成为一名Python爬虫骑士&#xff0c;携带你的代码长矛&#xff0c;穿梭在API的数据森林中&#xff0c;高效获…

SpringBoot【实用篇】- 测试

文章目录 目标&#xff1a;1.加载测试专用属性3.Web环境模拟测试2.加载测试专用配置4.数据层测试回滚5.测试用例数据设定 目标&#xff1a; 加载测试专用属性加载测试专用配置Web环境模拟测试数据层测试回滚测试用例数据设定 1.加载测试专用属性 我们在前面讲配置高级的时候…

vfx特效有多烧钱?云渲染农场减少vfx特效成本

特效制作一直是电影制作中的烧钱大户&#xff0c;尤其是视觉特效&#xff08;VFX&#xff09;的高昂成本让许多项目望而却步。但随着云渲染农场技术的发展&#xff0c;VFX特效的成本得到了有效控制&#xff0c;为电影工业带来了革命性的变化。 在电影工业中&#xff0c;VFX特效…

任何python安装gdal出现的问题

Releases cgohlke/geospatial-wheels GitHubGeospatial library wheels for Python on Windows. Contribute to cgohlke/geospatial-wheels development by creating an account on GitHub.https://github.com/cgohlke/geospatial-wheels/releases 各种乱七八糟的gdal库问题…

tensorflow案例4--人脸识别(损失函数选取,调用VGG16模型以及改进写法)

&#x1f368; 本文为&#x1f517;365天深度学习训练营 中的学习记录博客&#x1f356; 原作者&#xff1a;K同学啊 前言 这个模型结构算上之前的pytorch版本的&#xff0c;算是花了不少时间&#xff0c;但是效果一直没有达到理想情况&#xff0c;主要是验证集和训练集准确率…

SPA和SSR

单页面应用程序(SPA) 单页面应用(SPA)全称是:Single-page application, SPA应用是在客户端呈现的(术语称:CRS)。 SPA应用默认只返回一个空HTML页面&#xff0c;如:body只有<div id"app"></div>而整个应用程序的内容都是通过JavaScript动态加载&#xf…

【 纷享销客-注册安全分析报告-无验证方式导致安全隐患】

前言 由于网站注册入口容易被黑客攻击&#xff0c;存在如下安全问题&#xff1a; 1. 暴力破解密码&#xff0c;造成用户信息泄露 2. 短信盗刷的安全问题&#xff0c;影响业务及导致用户投诉 3. 带来经济损失&#xff0c;尤其是后付费客户&#xff0c;风险巨大&#xff0c;造…

基于SpringBoot和PostGIS的世界各国邻国可视化实践

目录 前言 一、空间数据查询基础 1、空间数据库基础 2、空间相邻查询 二、SpringBoot后台功能设计 1、后台查询接口的实现 2、业务接口设计 三、Leaflet进行WebGIS开发 1、整体结构介绍 2、相邻国家展示可视化 四、成果展示 1、印度及其邻国 2、乌克兰及其邻国 3、…

Python之groupby()及aggregate()方法

目录 数据准备df.describe()思考1 分组 pd.groupby()思考2 df.aggregate()思考1 现在有一份titanic_train.csv&#xff0c;包含泰坦尼克号乘客信息及获救情况的明细数据&#xff0c;我们需要使用一些聚合函数&#xff0c;统计相关指标。 数据准备 import pandas as pd df pd.…