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

Python语法基础(变量 注释 数据类型 输入与输出 运算符 缩进)

目录

  • 变量
    • 变量命名规则
    • 变量的类型
    • 变量的创建
    • 变量的作用域
  • 注释的方法
  • 数据类型
    • 对象和引用的概念
    • Number(数字)
    • 数据转换
  • 输入与输出
    • 输入函数
    • 输出函数
    • 输出函数的end参数
    • 输出格式
    • 多行语句
  • 运算符
    • 算术运算符
    • 赋值运算符
    • 三目运算符
    • 运算符的优先级
  • 缩进
    • 缩进格式
    • 注意事项
    • 层级嵌套


变量

标识符:用户编写代码时,对变量、类、方法等编写的名字,叫做标识符。

变量命名规则

  1. 变量名必须以字母或下划线字符开头
  2. 变量名不能以数字开头
  3. 变量名称只能包含字母数字字符和下划线
  4. 变量名区分大小写
  5. 不能与关键字重复

变量的类型

类型说明使用
整型变量(int)用来存储整数age = 20
浮点型变量(float)用来存储实数price = 3.99
字符串型变量(str)用来存储字符串name = "Tom"

Python 没有类似 C++ 的long long 和 double 等类型,遇到数据溢出时,会自动扩容。

查看类型的函数:type()

print(type(text))

变量的创建

相比C++的变量创建,Python不需要附加变量的类型。

r = 17
s = "Hello World!"

变量的作用域

在Python中,没有像C++或C语言中的main函数那样的特定入口点。当运行Python程序时,解释器会从脚本的第一行开始执行,逐行执行代码。

global_variable = 42  # 这是一个全局变量def some_function():global num  # 声明num为全局变量print(global_variable)  # 可以在函数内部访问全局变量some_function()
print(global_variable)  # 可以在函数外部访问全局变量

注释的方法

# 单行注释'''
多行注释
'''

数据类型

对象和引用的概念

  1. 对象(Object)是数据的抽象表示,它将数据与操作数据的函数绑定在一起,形成一个完整的实体。对象包含了数据(所谓的属性)和操作数据的方法。
  2. 引用(Reference)则可以看成指向对象的指针。当我们用一个变量名来指向一个对象时,实际上是建立了一个指向该对象的引用。
  3. Python中的所有事物都是对象,像数字、字符串、列表、字典等数据类型,都是对象,函数也是对象,Modules同样也是对象。
  4. 当我们使用一个变量名时,实际上是在操作对象引用,而不是直接操作对象本身。也就是说,变量名仅仅是一个指向目标对象的引用。
  5. 多个变量名可以指向同一个对象,即多个引用可以指向同一个对象。这就是所谓的“传对象引用”。
  6. 如果无引用指向一个对象,该对象将被垃圾回收。

下面我们通过一个简单的例子来说明Python的对象和引用:

a = 123

在这个例子中,我们定义了一个变量a,并将其赋值为整数123。实际上,a是一个引用,它存储了整数对象123的地址。

b = a

现在我们定义了另一个变量b,并将其赋值为变量a的值。由于a存储的是整数对象123的地址,因此b也存储了这个地址。因此,a和b引用了同一个对象。

del a

现在我们删除了变量a。由于a和b引用了同一个对象,因此Python并不会释放整数对象123所占用的内存。只有当没有任何引用指向这个对象时,Python才会释放它所占用的内存。

del b

现在我们删除了变量b。由于没有任何引用指向整数对象123,因此Python会释放它所占用的内存。

Number(数字)

Python Number 数据类型用于存储数值。

数据类型是不允许改变的,这就意味着如果改变 Number 数据类型的值,将重新分配内存空间。

以下实例在变量赋值时 Number 对象将被创建:

var1 = 5
var2 = 10

可以使用del语句删除一些 Number 对象引用。

del语句的语法是:

del var1[,var2[,var3[....,varN]]]]

可以通过使用del语句删除单个或多个对象,例如:

del var
del var1,var2, ...... , varN

数据转换

语句(函数)说明
int(x)将x转换为一个整数
float(x)将x转换为一个浮点数
str(x)将对象 x 转换为字符串

str(x) 相较于C++中的 to_string() 函数
int(x) 可以相较于C++中的 stoi() 函数

s = str(123)

注意:

  • 任何类型,都可以通过str(),转换成字符串。
  • 字符串内必须真的是数字,才可以将字符串转换为数字。

输入与输出

输入函数

使用 input() 输入函数来接收输入流的数据

input语句获取的数据类型最终都是:字符串类型的数据

需要自己转换数据类型

使用方法:

  1. 不加参数
  2. 加参数(提示信息)
s = input()
r = input("请输入数字")  # 在输入前会有提示信息

输出函数

print() 输出函数(可接 '\n' 换行)
与 C++ 中的 cout 使用类似
与 java 中的print使用相同 print(str1 + str2 + num) 可以各种拼接

import math
r = float(input("请输入圆的半径:> "))
s = r ** 2 * math.pi / 2  # 将字符串类型的数据转换为float类型
print(s)

输出函数的end参数

在Python中,print()函数默认在输出内容之后会自动添加换行符。如果你希望取消自动换行,可以使用end参数将其设置为空字符串或其他值,以替代默认的换行符。

例如:

print("Hello, ", end='')
print("World")
# Hello, World

上述代码中,将end参数设置为空字符串,因此不会在输出内容之后添加换行符,而是继续在同一行上输出后续内容。输出结果将是"Hello, World"。

你还可以使用其他字符来代替默认的换行符,例如:

print("This is a sentence.", end='!!\n')

这将在输出内容之后添加双感叹号和一个换行符,产生类似"This is a sentence.!!"的输出。

通过调整end参数,你可以控制print()函数的输出格式。


输出格式

w = input("今天的天气情况(可选项:晴天、阴天):")
if w == "晴天":print("打球")
else:print(f"天⽓{w}不打球")
# 等同于 print("天⽓%s不打球" % w)

f 是 Python 中的 f-string 的标志符号,允许在字符串中嵌入变量的值,{w} 是一个占位符,它将被替换为变量 w 的值。当你使用这个字符串时,f 将会触发字符串内的变量替换,生成最终的字符串,其中 {w}w 的值替代。

%s 替换字符串,与C++中的类似用法,不过后面需 加上% + 替换变量。

print(f"对应的摄⽒温度等于: {c:.2f}")  # 进行小数点后两位数的输出
符 号描 述
%c格式化字符及其ASCII码
%s格式化字符串
%d格式化整数
%u格式化无符号整型
%o格式化无符号八进制数
%x格式化无符号十六进制数
%X格式化无符号十六进制数(大写)
%f格式化浮点数字,可指定小数点后的精度
%e用科学计数法格式化浮点数
%E作用同%e,用科学计数法格式化浮点数
%g%f和%e的简写
%G%f 和 %E 的简写
%p用十六进制数格式化变量的地址

多行语句

在编写代码中通常是一行写完一条语句,但如果变量名很长,我们可以使用反斜杠 \ 来实现多行语句在 [], {}, 或 () 中的多行语句。

text1="明天天气"
text2="怎么样,是晴天"
text3= "还是雨天?"print(text1 + \text2 + \text3)

运算符

算术运算符

运算符说明实例结果
+12.45 + 1527.45
-4.56 - 0.264.3
*5 * 3.618.0
/除法7 / 23.5
//整除(向下取整)7 // 23
%取余7 % 21
**幂运算2 ** 4164

赋值运算符

运算符说 明用法举例等价形式
=最基本的赋值运算x = yx = y
+=加赋值x += yx = x + y
-=减赋值x -= yx = x - y
*=乘赋值x *= yx = x * y
/=除赋值x /= yx = x / y
%=取余数赋值x %= yx = x % y
**=幂赋值x **= yx = x ** y
//=取整数赋值x //= yx = x // y
&=按位与赋值x &= yx = x & y
=按位或赋值 x= yx = x
^=按位异或赋值x ^= yx = x ^ y
<<=左移赋值x <<= yx = x << y,这里的 y 指的是左移的位数
<<=右移赋值x >>= yx = x >> y,这里的 y 指的是右移的位数

三目运算符

与 C++ 条件顺序不同

exp1 if contion else exp2

求两数最大值的例子:

a, b = 10, 100
max_element = a if a > b else b
print(max_element)

运算符的优先级

在这里插入图片描述

缩进

Python最具特⾊的语法之⼀是⽤缩进代替花括号{},而花括号是Java、C++语⾔中表达逻辑关系的语法。

缩进格式

一般习惯采用四个空格,即TAB一次缩进。

w = input("今天的天气情况(可选项:晴天、阴天):")
if w == "晴天":print("打球")
else:print(f"天⽓{w}不打球")
# 等同于 print("天⽓%s不打球" % w)

注意事项

同一代码块缩进量要相同。

Python 虽然不限制代码块的缩进量,你可以随意缩进 n 个空格,但是,同一个代码块内的所有语句都必须拥有相同的缩进量,不能一会缩进 2 个空格,一会缩进 4 个空格。

下面的代码是一个反面教材:

age = int( input("请输入你的年龄:") )
if age < 18 :print("你还未成年,建议在家人陪同下使用该软件!")print("未成年人如果得到了家长的同意,请忽略以上提示。")  #缩进量不对

运行这段代码,Python 解释器会报出语法错误:

SyntaxError: unexpected indent
# 语法错误:意外的缩进

这段代码中,第一个 print() 语句缩进了 4 个空格,第二个 print() 语句缩进了 6 个空格,缩进量不同导致它们不是同一个代码块。Python 会认为第一个 print() 语句是 if 的执行体,而第二个 print() 是一个意外的存在,不知道该把它当做谁的代码块,所以解析失败,报错。


另外需要注意的是,不需要使用代码块的地方千万不要缩进,一旦缩进就会产生一个代码块。

下面的代码是一个反面教材:

info = "Hello"print(info)

这两条简单的语句没有包含分支、循环、函数、类等结构,不应该使用缩进。


层级嵌套

w = input("请输⼊天⽓情况(可选项:晴天、阴天):")
fri_n = input("请输⼊打球伙伴数:")
fri_n = int(fri_n)
if w == "晴天":if fri_n >= 3:print("我们去打球吧")else:print(f"⼈⼿不够")
else:print(f"天⽓{w}不打球")

相关文章:

Python语法基础(变量 注释 数据类型 输入与输出 运算符 缩进)

目录 变量变量命名规则变量的类型变量的创建变量的作用域 注释的方法数据类型对象和引用的概念Number(数字)数据转换 输入与输出输入函数输出函数输出函数的end参数输出格式多行语句 运算符算术运算符赋值运算符三目运算符运算符的优先级 缩进缩进格式注意事项层级嵌套 变量 标…...

linux espeak语音tts;pyttsx3 ubuntu使用

整体使用espeak声音很机械不太自然 1、linux espeak语音tts 安装&#xff1a; sudo apt install espeak使用&#xff1a; #中文男声 espeak -v zh 你好 #中文女声 espeak -v zhf3 你好 #粤语男声 espeak -v zhy 你好注意&#xff1a;espeak -v zh 你好 &#xff08;Full d…...

小白该如何学习Linux操作系统?

&#x1f482; 个人网站:【工具大全】【游戏大全】【神级源码资源网】&#x1f91f; 前端学习课程&#xff1a;&#x1f449;【28个案例趣学前端】【400个JS面试题】&#x1f485; 寻找学习交流、摸鱼划水的小伙伴&#xff0c;请点击【摸鱼学习交流群】 Linux作为一种开源操作系…...

2023双十一:实体门店闯入,第二战场全面开战

“闺女&#xff0c;吃饺子了吗&#xff1f;”11月8日&#xff0c;立冬&#xff0c;忙碌一天的陈曦回家路上接到母亲电话&#xff0c;才想起来家里冷冻水饺没了&#xff0c;又不想再去超市&#xff0c;直接打开美团买菜买了两袋&#xff0c;回家就煮了吃。当然&#xff0c;最终她…...

操作系统·处理机调度死锁

3.1 处理机调度概述 3.1.1 处理机调度概述 高级调度 (High level Scheduling)决定把外存上哪些作业调入内存、创建进程、分配资源。高级调度又称作业调度、长程调度或宏观调度。只在批处理系统中有高级调度。 中级调度 (Middle level Scheduling)完成进程的部分或全部在内、…...

SQL第四次上机实验

1.查询借阅了计算机类或者文学类图书的读者的借书证号 USE TSGL GO SELECT DISTINCT Reader.Lno FROM Book,Lend,Reader WHERE Book.ISBNLend.ISBN AND Lend.LnoReader.Lno AND Class 计算机类 OR Class 文学类2.查询同时借阅了计算机类和文学类图书的读者的借书证号 USE T…...

读书笔记:彼得·德鲁克《认识管理》第11章 若干例外及经验教训

一、章节内容概述 例外的服务机构不仅表明服务机构实现卓越绩效不是天方夜谭&#xff0c;而 且指明了实现的方法。这一课&#xff0c;是美国电话电报公司给“自然垄断行业”上的;是19世纪后期处于创建阶段的美国现代大学给学校或医院类机构上的;是20世纪30年代的田纳西河流域管…...

JVM-虚拟机的故障处理与调优案例分析

案例1&#xff1a;大内存硬件上的程序部署策略 一个15万PV/日左右的在线文档类型网站最近更换了硬件系统&#xff0c;服务器的硬件为四路志强处理器、16GB物理内存&#xff0c;操作系统为64位CentOS 5.4&#xff0c;Resin作为Web服务器。整个服务器暂时没有部署别的应用&#…...

JMeter 相关的面试题

&#x1f4e2;专注于分享软件测试干货内容&#xff0c;欢迎点赞 &#x1f44d; 收藏 ⭐留言 &#x1f4dd; 如有错误敬请指正&#xff01;&#x1f4e2;交流讨论&#xff1a;加入1000人软件测试技术学习交流群&#x1f4e2;资源分享&#xff1a;进了字节跳动之后&#xff0c;才…...

你在React项目中是如何使用Redux的? 项目结构是如何划分的?

一、背景 在前面文章了解中&#xff0c;我们了解到redux是用于数据状态管理&#xff0c;而react是一个视图层面的库 如果将两者连接在一起&#xff0c;可以使用官方推荐react-redux库&#xff0c;其具有高效且灵活的特性 react-redux将组件分成&#xff1a; 容器组件&#…...

[每周一更]-(第71期):DevOps 是什么?

Wiki的解释&#xff1a; DevOps&#xff08;Development和Operations的混成词&#xff09;是一种重视“软件开发人员&#xff08;Dev&#xff09;”和“IT运维技术人员&#xff08;Ops&#xff09;”之间沟通合作的文化、运动或惯例。 通过自动化“软件交付”和“架构变更”的…...

k8s的安装部署,详细过程展示(保姆级安装教程)

k8s应用部署方式演变 在部署应用程序的方式上&#xff0c;主要经历了三个时代&#xff1a; 传统部署&#xff1a;互联网早期&#xff0c;会直接将应用程序部署在物理机上 优点&#xff1a;简单&#xff0c;不需要其它技术的参与 缺点&#xff1a;不能为应用程序定义资源使用…...

基于windows、GDAL2.2.3版本和Java集成安装和使用GDAL库的方法

基于windows、GDAL2.2.3版本和Java集成安装和使用GDAL库的方法 一、下载gdal windows版本64位2.2.3版本 下载地址&#xff1a; https://www.gisinternals.com/archive.php 找到gdal-202-1911-x64-core.msi下载并安装 安装后默认目录为&#xff1a;C:\Program Files\GDAL 二、…...

AlphaControls控件TsRadioGroup的使用

通常使用AlphaControls控件中的TsRadioGroup时&#xff0c;往往使用默认值&#xff0c;会造成TsRadioGroup标题被TsRadioGroup的ITEMs占用&#xff0c;严重影响美观&#xff1a; 解决方案&#xff0c;通过对TsRadioGroup的ContentVOffset属性&#xff0c;设置为10。即可立即改善…...

安卓常见设计模式8------享元模式(Kotlin版)

1. W1 是什么&#xff0c;什么是享元模式&#xff1f;​ 享元模式&#xff08;Flyweight Pattern&#xff09;是一种结构型设计模式&#xff0c;用于有效地支持大量细粒度的对象共享。在 Android 中&#xff0c;享元模式可以用于减少内存使用和提高性能&#xff0c;特别是在需…...

day54 django中orm数据库增删改查

昨日内容回顾 三板斧问题 HttpResponse # 返回的是字符串 render # 渲染一个HTML静态文件&#xff0c;模板文件 redirect # 重定向的 ​ """在视图文件中得视图函数必须要接收一个形参request&#xff0c;并且&#xff0c;视图…...

【js逆向实战】某sakura动漫视频逆向

写在前面 再写一个逆向实战&#xff0c;后面写点爬虫程序来实现一下。 网站简介与逆向目标 经典的一个视频网站&#xff0c;大多数视频网站走的是M3U8协议&#xff0c;就是一个分段传输&#xff0c;其实这里就有两个分支。 通过传统的m3u8协议&#xff0c;我们可以直接进行分…...

L2-015 互评成绩

学生互评作业的简单规则是这样定的&#xff1a;每个人的作业会被k个同学评审&#xff0c;得到k个成绩。系统需要去掉一个最高分和一个最低分&#xff0c;将剩下的分数取平均&#xff0c;就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。 输入格式&#xf…...

【Docker安装RockeMQ:基于Windows宿主机,并重点解决docker rocketMQ安装情况下控制台无法访问的问题】

拉取镜像 docker pull rocketmqinc/rocketmq创建网络 docker network create rocketmq-net构建namesrv容器 docker run -d -p 9876:9876 -v D:/dockerFile/rocketmq/namesrv/logs:/root/logs -v D:/dockerFile/rocketmq/namesrv/store:/root/store --network rocketmq-net -…...

Android Studio——android项目运行main()函数

报错&#xff1a; 解决&#xff1a; 如图&#xff0c;在 .idea 的 gradle.xml 中标注的位置增加如下一行代码即可<option name"delegatedBuild" value"false" />...

idea大量爆红问题解决

问题描述 在学习和工作中&#xff0c;idea是程序员不可缺少的一个工具&#xff0c;但是突然在有些时候就会出现大量爆红的问题&#xff0c;发现无法跳转&#xff0c;无论是关机重启或者是替换root都无法解决 就是如上所展示的问题&#xff0c;但是程序依然可以启动。 问题解决…...

【根据当天日期输出明天的日期(需对闰年做判定)。】2022-5-15

缘由根据当天日期输出明天的日期(需对闰年做判定)。日期类型结构体如下&#xff1a; struct data{ int year; int month; int day;};-编程语言-CSDN问答 struct mdata{ int year; int month; int day; }mdata; int 天数(int year, int month) {switch (month){case 1: case 3:…...

CTF show Web 红包题第六弹

提示 1.不是SQL注入 2.需要找关键源码 思路 进入页面发现是一个登录框&#xff0c;很难让人不联想到SQL注入&#xff0c;但提示都说了不是SQL注入&#xff0c;所以就不往这方面想了 ​ 先查看一下网页源码&#xff0c;发现一段JavaScript代码&#xff0c;有一个关键类ctfs…...

相机Camera日志分析之三十一:高通Camx HAL十种流程基础分析关键字汇总(后续持续更新中)

【关注我,后续持续新增专题博文,谢谢!!!】 上一篇我们讲了:有对最普通的场景进行各个日志注释讲解,但相机场景太多,日志差异也巨大。后面将展示各种场景下的日志。 通过notepad++打开场景下的日志,通过下列分类关键字搜索,即可清晰的分析不同场景的相机运行流程差异…...

c#开发AI模型对话

AI模型 前面已经介绍了一般AI模型本地部署&#xff0c;直接调用现成的模型数据。这里主要讲述讲接口集成到我们自己的程序中使用方式。 微软提供了ML.NET来开发和使用AI模型&#xff0c;但是目前国内可能使用不多&#xff0c;至少实践例子很少看见。开发训练模型就不介绍了&am…...

laravel8+vue3.0+element-plus搭建方法

创建 laravel8 项目 composer create-project --prefer-dist laravel/laravel laravel8 8.* 安装 laravel/ui composer require laravel/ui 修改 package.json 文件 "devDependencies": {"vue/compiler-sfc": "^3.0.7","axios": …...

算法笔记2

1.字符串拼接最好用StringBuilder&#xff0c;不用String 2.创建List<>类型的数组并创建内存 List arr[] new ArrayList[26]; Arrays.setAll(arr, i -> new ArrayList<>()); 3.去掉首尾空格...

python报错No module named ‘tensorflow.keras‘

是由于不同版本的tensorflow下的keras所在的路径不同&#xff0c;结合所安装的tensorflow的目录结构修改from语句即可。 原语句&#xff1a; from tensorflow.keras.layers import Conv1D, MaxPooling1D, LSTM, Dense 修改后&#xff1a; from tensorflow.python.keras.lay…...

【MATLAB代码】基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),附源代码|订阅专栏后可直接查看

文章所述的代码实现了基于最大相关熵准则(MCC)的三维鲁棒卡尔曼滤波算法(MCC-KF),针对传感器观测数据中存在的脉冲型异常噪声问题,通过非线性加权机制提升滤波器的抗干扰能力。代码通过对比传统KF与MCC-KF在含异常值场景下的表现,验证了后者在状态估计鲁棒性方面的显著优…...

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

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