Python语法基础(变量 注释 数据类型 输入与输出 运算符 缩进)
目录
- 变量
- 变量命名规则
- 变量的类型
- 变量的创建
- 变量的作用域
- 注释的方法
- 数据类型
- 对象和引用的概念
- Number(数字)
- 数据转换
- 输入与输出
- 输入函数
- 输出函数
- 输出函数的end参数
- 输出格式
- 多行语句
- 运算符
- 算术运算符
- 赋值运算符
- 三目运算符
- 运算符的优先级
- 缩进
- 缩进格式
- 注意事项
- 层级嵌套
变量
标识符:用户编写代码时,对变量、类、方法等编写的名字,叫做标识符。
变量命名规则
- 变量名必须以字母或下划线字符开头
- 变量名不能以数字开头
- 变量名称只能包含字母数字字符和下划线
- 变量名区分大小写
- 不能与关键字重复
变量的类型
| 类型 | 说明 | 使用 |
|---|---|---|
| 整型变量(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) # 可以在函数外部访问全局变量
注释的方法
# 单行注释'''
多行注释
'''
数据类型
对象和引用的概念
- 对象(Object)是数据的抽象表示,它将数据与操作数据的函数绑定在一起,形成一个完整的实体。对象包含了数据(所谓的属性)和操作数据的方法。
- 引用(Reference)则可以看成指向对象的指针。当我们用一个变量名来指向一个对象时,实际上是建立了一个指向该对象的引用。
- Python中的所有事物都是对象,像数字、字符串、列表、字典等数据类型,都是对象,函数也是对象,Modules同样也是对象。
- 当我们使用一个变量名时,实际上是在操作对象引用,而不是直接操作对象本身。也就是说,变量名仅仅是一个指向目标对象的引用。
- 多个变量名可以指向同一个对象,即多个引用可以指向同一个对象。这就是所谓的“传对象引用”。
- 如果无引用指向一个对象,该对象将被垃圾回收。
下面我们通过一个简单的例子来说明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语句获取的数据类型最终都是:字符串类型的数据
需要自己转换数据类型
使用方法:
- 不加参数
- 加参数(提示信息)
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 + 15 | 27.45 |
| - | 减 | 4.56 - 0.26 | 4.3 |
| * | 乘 | 5 * 3.6 | 18.0 |
| / | 除法 | 7 / 2 | 3.5 |
| // | 整除(向下取整) | 7 // 2 | 3 |
| % | 取余 | 7 % 2 | 1 |
| ** | 幂运算 | 2 ** 4 | 164 |
赋值运算符
| 运算符 | 说 明 | 用法举例 | 等价形式 |
|---|---|---|---|
| = | 最基本的赋值运算 | x = y | x = y |
| += | 加赋值 | x += y | x = x + y |
| -= | 减赋值 | x -= y | x = x - y |
| *= | 乘赋值 | x *= y | x = x * y |
| /= | 除赋值 | x /= y | x = x / y |
| %= | 取余数赋值 | x %= y | x = x % y |
| **= | 幂赋值 | x **= y | x = x ** y |
| //= | 取整数赋值 | x //= y | x = x // y |
| &= | 按位与赋值 | x &= y | x = x & y |
| = | 按位或赋值 x | = y | x = x |
| ^= | 按位异或赋值 | x ^= y | x = x ^ y |
| <<= | 左移赋值 | x <<= y | x = x << y,这里的 y 指的是左移的位数 |
| <<= | 右移赋值 | x >>= y | x = 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 安装: sudo apt install espeak使用: #中文男声 espeak -v zh 你好 #中文女声 espeak -v zhf3 你好 #粤语男声 espeak -v zhy 你好注意:espeak -v zh 你好 (Full d…...
小白该如何学习Linux操作系统?
💂 个人网站:【工具大全】【游戏大全】【神级源码资源网】🤟 前端学习课程:👉【28个案例趣学前端】【400个JS面试题】💅 寻找学习交流、摸鱼划水的小伙伴,请点击【摸鱼学习交流群】 Linux作为一种开源操作系…...
2023双十一:实体门店闯入,第二战场全面开战
“闺女,吃饺子了吗?”11月8日,立冬,忙碌一天的陈曦回家路上接到母亲电话,才想起来家里冷冻水饺没了,又不想再去超市,直接打开美团买菜买了两袋,回家就煮了吃。当然,最终她…...
操作系统·处理机调度死锁
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章 若干例外及经验教训
一、章节内容概述 例外的服务机构不仅表明服务机构实现卓越绩效不是天方夜谭,而 且指明了实现的方法。这一课,是美国电话电报公司给“自然垄断行业”上的;是19世纪后期处于创建阶段的美国现代大学给学校或医院类机构上的;是20世纪30年代的田纳西河流域管…...
JVM-虚拟机的故障处理与调优案例分析
案例1:大内存硬件上的程序部署策略 一个15万PV/日左右的在线文档类型网站最近更换了硬件系统,服务器的硬件为四路志强处理器、16GB物理内存,操作系统为64位CentOS 5.4,Resin作为Web服务器。整个服务器暂时没有部署别的应用&#…...
JMeter 相关的面试题
📢专注于分享软件测试干货内容,欢迎点赞 👍 收藏 ⭐留言 📝 如有错误敬请指正!📢交流讨论:加入1000人软件测试技术学习交流群📢资源分享:进了字节跳动之后,才…...
你在React项目中是如何使用Redux的? 项目结构是如何划分的?
一、背景 在前面文章了解中,我们了解到redux是用于数据状态管理,而react是一个视图层面的库 如果将两者连接在一起,可以使用官方推荐react-redux库,其具有高效且灵活的特性 react-redux将组件分成: 容器组件&#…...
[每周一更]-(第71期):DevOps 是什么?
Wiki的解释: DevOps(Development和Operations的混成词)是一种重视“软件开发人员(Dev)”和“IT运维技术人员(Ops)”之间沟通合作的文化、运动或惯例。 通过自动化“软件交付”和“架构变更”的…...
k8s的安装部署,详细过程展示(保姆级安装教程)
k8s应用部署方式演变 在部署应用程序的方式上,主要经历了三个时代: 传统部署:互联网早期,会直接将应用程序部署在物理机上 优点:简单,不需要其它技术的参与 缺点:不能为应用程序定义资源使用…...
基于windows、GDAL2.2.3版本和Java集成安装和使用GDAL库的方法
基于windows、GDAL2.2.3版本和Java集成安装和使用GDAL库的方法 一、下载gdal windows版本64位2.2.3版本 下载地址: https://www.gisinternals.com/archive.php 找到gdal-202-1911-x64-core.msi下载并安装 安装后默认目录为:C:\Program Files\GDAL 二、…...
AlphaControls控件TsRadioGroup的使用
通常使用AlphaControls控件中的TsRadioGroup时,往往使用默认值,会造成TsRadioGroup标题被TsRadioGroup的ITEMs占用,严重影响美观: 解决方案,通过对TsRadioGroup的ContentVOffset属性,设置为10。即可立即改善…...
安卓常见设计模式8------享元模式(Kotlin版)
1. W1 是什么,什么是享元模式? 享元模式(Flyweight Pattern)是一种结构型设计模式,用于有效地支持大量细粒度的对象共享。在 Android 中,享元模式可以用于减少内存使用和提高性能,特别是在需…...
day54 django中orm数据库增删改查
昨日内容回顾 三板斧问题 HttpResponse # 返回的是字符串 render # 渲染一个HTML静态文件,模板文件 redirect # 重定向的 """在视图文件中得视图函数必须要接收一个形参request,并且,视图…...
【js逆向实战】某sakura动漫视频逆向
写在前面 再写一个逆向实战,后面写点爬虫程序来实现一下。 网站简介与逆向目标 经典的一个视频网站,大多数视频网站走的是M3U8协议,就是一个分段传输,其实这里就有两个分支。 通过传统的m3u8协议,我们可以直接进行分…...
L2-015 互评成绩
学生互评作业的简单规则是这样定的:每个人的作业会被k个同学评审,得到k个成绩。系统需要去掉一个最高分和一个最低分,将剩下的分数取平均,就得到这个学生的最后成绩。本题就要求你编写这个互评系统的算分模块。 输入格式…...
【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()函数
报错: 解决: 如图,在 .idea 的 gradle.xml 中标注的位置增加如下一行代码即可<option name"delegatedBuild" value"false" />...
逻辑回归:给不确定性划界的分类大师
想象你是一名医生。面对患者的检查报告(肿瘤大小、血液指标),你需要做出一个**决定性判断**:恶性还是良性?这种“非黑即白”的抉择,正是**逻辑回归(Logistic Regression)** 的战场&a…...
【网络安全产品大调研系列】2. 体验漏洞扫描
前言 2023 年漏洞扫描服务市场规模预计为 3.06(十亿美元)。漏洞扫描服务市场行业预计将从 2024 年的 3.48(十亿美元)增长到 2032 年的 9.54(十亿美元)。预测期内漏洞扫描服务市场 CAGR(增长率&…...
CocosCreator 之 JavaScript/TypeScript和Java的相互交互
引擎版本: 3.8.1 语言: JavaScript/TypeScript、C、Java 环境:Window 参考:Java原生反射机制 您好,我是鹤九日! 回顾 在上篇文章中:CocosCreator Android项目接入UnityAds 广告SDK。 我们简单讲…...
SpringCloudGateway 自定义局部过滤器
场景: 将所有请求转化为同一路径请求(方便穿网配置)在请求头内标识原来路径,然后在将请求分发给不同服务 AllToOneGatewayFilterFactory import lombok.Getter; import lombok.Setter; import lombok.extern.slf4j.Slf4j; impor…...
2025季度云服务器排行榜
在全球云服务器市场,各厂商的排名和地位并非一成不变,而是由其独特的优势、战略布局和市场适应性共同决定的。以下是根据2025年市场趋势,对主要云服务器厂商在排行榜中占据重要位置的原因和优势进行深度分析: 一、全球“三巨头”…...
佰力博科技与您探讨热释电测量的几种方法
热释电的测量主要涉及热释电系数的测定,这是表征热释电材料性能的重要参数。热释电系数的测量方法主要包括静态法、动态法和积分电荷法。其中,积分电荷法最为常用,其原理是通过测量在电容器上积累的热释电电荷,从而确定热释电系数…...
回溯算法学习
一、电话号码的字母组合 import java.util.ArrayList; import java.util.List;import javax.management.loading.PrivateClassLoader;public class letterCombinations {private static final String[] KEYPAD {"", //0"", //1"abc", //2"…...
Python Ovito统计金刚石结构数量
大家好,我是小马老师。 本文介绍python ovito方法统计金刚石结构的方法。 Ovito Identify diamond structure命令可以识别和统计金刚石结构,但是无法直接输出结构的变化情况。 本文使用python调用ovito包的方法,可以持续统计各步的金刚石结构,具体代码如下: from ovito…...
Mysql8 忘记密码重置,以及问题解决
1.使用免密登录 找到配置MySQL文件,我的文件路径是/etc/mysql/my.cnf,有的人的是/etc/mysql/mysql.cnf 在里最后加入 skip-grant-tables重启MySQL服务 service mysql restartShutting down MySQL… SUCCESS! Starting MySQL… SUCCESS! 重启成功 2.登…...
莫兰迪高级灰总结计划简约商务通用PPT模版
莫兰迪高级灰总结计划简约商务通用PPT模版,莫兰迪调色板清新简约工作汇报PPT模版,莫兰迪时尚风极简设计PPT模版,大学生毕业论文答辩PPT模版,莫兰迪配色总结计划简约商务通用PPT模版,莫兰迪商务汇报PPT模版,…...
