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.xdnf.cn/news/1723.html

如若内容造成侵权/违法违规/事实不符,请联系一条长河网进行投诉反馈,一经查实,立即删除!

相关文章

ChatGPT 高级语音模式已登陆 Windows 和 Mac 平台,对话更自然

OpenAI ChatGPT 高级语音模式已登陆 Windows 和 Mac 平台&#xff0c;对话更自然&#xff0c;拟态更逼真 OpenAI 于10月31日正式宣布&#xff0c;ChatGPT 的高级语音模式&#xff08;Advanced Voice Mode&#xff0c;简称 AVM&#xff09;现已登陆 Windows 和 Mac 平台。基于最…

【深度学习】InstantIR:图片高清化修复

InstantIR——借助即时生成参考的盲图像修复新方法 作者:Jen-Yuan Huang 等 近年来,随着深度学习和计算机视觉技术的飞速发展,图像修复技术取得了令人瞩目的进步。然而,对于未知或复杂退化的图像进行修复,仍然是一个充满挑战的任务。针对这一难题,研究者们提出了 Insta…

【深度学习】实验 — 动手实现 GPT【三】:LLM架构、LayerNorm、GELU激活函数

【深度学习】实验 — 动手实现 GPT【三】&#xff1a;LLM架构、LayerNorm、GELU激活函数 模型定义编码一个大型语言模型&#xff08;LLM&#xff09;架构 使用层归一化对激活值进行归一化LayerNorm代码实现scale和shift 实现带有 GELU 激活的前馈网络测试 模型定义 编码一个大…

信息抽取与知识图谱技术在医疗领域中的应用

​快瞳AI开放平台支持多种输入格式&#xff0c;如电子病历、临床数据和医学文献等&#xff0c;可以将这些信息快速转换为结构化数据&#xff0c;包括自动360度不同角度的旋转识别、自动校准弯曲透视、光照不均、手写叠加处理等&#xff0c;提升数据的可操作性和可检索性。通过我…

SpringCloudAlibaba实战入门之OpenFeign高级用法(十)

在上一篇中我们简单了解了OpenFeign的简单使用,本篇是承接上一篇的高级使用拓展内容。 一、@FeignClient 标签的常用属性 @FeignClient 注解是 Spring Cloud OpenFeign 中用于声明一个 Feign 客户端的核心注解。它可以用来指定服务的名称、配置类、负载均衡策略等。下面是 @…

DBeaver 数据库安装及破解个人使用 不同版本不同jdk

DBeaver DBeaver 分为 **Lite、Enterprise、Ultimate&#xff08;功能最全&#xff09;、Community&#xff0c;**其中Community免费使用&#xff0c;但是功能不言而喻&#xff0c;具体差异自行去官网对比。 安装 DBeaver 到官网下载即可 https://dbeaver.io/download/ 激活 D…

docker安装中的遇到的问题及解决方案

docker 安装中遇到的问题及解决方案 截至2024/11/1&#xff0c;我在安装docker中遇到的问题将悉数列出&#xff0c;供大家参考。 说明&#xff1a;这些解决方案在我自己的虚拟机中有用&#xff0c;可能大家的虚拟机并不适用&#xff0c;这些解决方案均转载自另外的博客&#x…

Jetson OrinNX平台CSI相机导致cpu load average升高问题调试

1. 前言 硬件: Orin NX JP: 5.1.2, R35.4.1 用v4l2-ctl --stream-mmap -d0 命令去获取相机数据时, 用top查看cpu使用情况, CPU占用率很低,但load average在1左右, 无任何程序运行时,load average 为0 用ps -aux 查看当前进程情况,发现有两个系统进程vi-output, …

AppInventor2能否用网络摄像头画面作为屏幕的背景?

// 视频是否可以作为背景&#xff1f; // 有会员提问&#xff1a;能否用网络摄像头的实时画面作为屏幕的背景&#xff1f;就跟这个一样背景全覆盖&#xff1a; 摄像头画面是一个在线的网站链接视频流。 // 原先思路 // 1、目前原生组件无法直接实现这个功能&#xff0c;屏幕…

【开源免费】基于SpringBoot+Vue.JS网上租赁系统(JAVA毕业设计)

本文项目编号 T 050 &#xff0c;文末自助获取源码 \color{red}{T050&#xff0c;文末自助获取源码} T050&#xff0c;文末自助获取源码 目录 一、系统介绍二、演示录屏三、启动教程四、功能截图五、文案资料5.1 选题背景5.2 国内外研究现状5.3 可行性分析5.4 用例设计5.4.1 用…

fmql之Linux以太网

正点原子第57章。 dts fmql-dtsi&#xff1a; 我们用的PHY芯片是RTL8211F&#xff1a; 需要添加PHY信息&#xff1a; fmql-dtsi提供的参考&#xff1a; 根据vivado工程自动生成的&#xff1a; reg <0x1>; 配置 疑问 网口通讯需要网线&#xff0c;但是目前板卡上只有PS…

基于STM32的农业监测与管理系统设计思路介绍(代码示例)

一、项目概述 在全球农业现代化进程中&#xff0c;农业监测与管理系统的研发具有重要意义。本文介绍的基于STM32的农业监测与管理系统&#xff0c;旨在通过智能小车实现对农作物的环境监测、土壤检测等功能。该系统利用手势控制技术&#xff0c;农民可以通过简单的手势指令来操…

【2024-10-31-2024-11-03】LeetCode刷题——python语法基础题

&#x1f4dd;前言说明&#xff1a; ●本专栏主要记录本人的基础算法学习以及LeetCode刷题记录&#xff0c;主要跟随B站作者灵茶山的视频进行学习&#xff0c;专栏中一篇文章为B站对应的一个视频 题目主要为B站视频内涉及的题目以及B站视频中提到的“课后作业”。 ●文章中的理…

2024年【烟花爆竹储存】考试试卷及烟花爆竹储存试题及解析

题库来源&#xff1a;安全生产模拟考试一点通公众号小程序 烟花爆竹储存考试试卷考前必练&#xff01;安全生产模拟考试一点通每个月更新烟花爆竹储存试题及解析题目及答案&#xff01;多做几遍&#xff0c;其实通过烟花爆竹储存作业模拟考试很简单。 1、【单选题】( )负责烟花…

Uniapp的H5以及App不支持后端传FormData类型参数的解决方案

在uniapp中不支持FormData的传参&#xff0c;这就很恶心&#xff1b;如果强行传的话会提示&#xff0c;请求失败的报错信息。 因为后端必须要FormData类型的传参&#xff0c;所以在查阅一系列方案后&#xff0c;有一种解决办法可以完美解决。 代码&#xff1a; init() {const…

JS实现漂亮的登录页面(氛围感页面)

代码&#xff1a; <!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>登录</title><style…

(C#面向初学者的 .NET 的生成 AI) 第 2 部分-什么是 AI 和 ML?

从本部分开始Luis Quintanilla介绍AI和机器学习&#xff0c;需要学习的一些东西是什么是AI和ML&#xff1f;作为一名.net开发人员如何学习使用AI和ML。 1、首先什么是AI 和 ML&#xff1f; 你可以把它看作是基本相同事物的不同层次。 在顶层的是AI&#xff08;人工智能&#xf…

Spring Boot技术:校园社团信息管理的革新者

4系统概要设计 4.1概述 本系统采用B/S结构(Browser/Server,浏览器/服务器结构)和基于Web服务两种模式&#xff0c;是一个适用于Internet环境下的模型结构。只要用户能连上Internet,便可以在任何时间、任何地点使用。系统工作原理图如图4-1所示&#xff1a; 图4-1系统工作原理…

探索高效HTTP会话管理:sessionup开源项目推荐

探索高效HTTP会话管理&#xff1a;sessionup开源项目推荐 sessionup Straightforward HTTP session management 项目地址: https://gitcode.com/gh_mirrors/se/sessionup 在现代Web应用开发中&#xff0c;会话管理是确保用户身份验证和数据安全的关键环节。为了帮助开发…

(七)JavaWeb后端开发——Maven

目录 1.Maven概述 2.Maven依赖管理 2.1依赖配置 2.2依赖传递 2.3依赖范围 2.4生命周期 1.Maven概述 maven是一款管理和构建java项目的工具 Maven的作用&#xff1a; 依赖管理&#xff1a;方便快捷的管理项目依赖的资源(jar包)&#xff0c;避免版本冲突问题统一项目结构…