Python 基础语法完全指南:变量、类型、运算符与输入输出(零基础入门)

Python 基础语法完全指南:变量、类型、运算符与输入输出(零基础入门)
在这里插入图片描述

🔥草莓熊Lotso:个人主页
❄️个人专栏: 《C++知识分享》《Linux 入门到实践:零基础也能懂》
✨生活是默默的坚持,毅力是永久的享受!


🎬 博主简介:

在这里插入图片描述

文章目录


前言:

Python 以简洁易懂的语法成为编程入门的首选语言,但对于零基础小白来说,从 “计算器” 到 “能交互的程序”,需要先吃透核心基础语法。变量如何定义?数据类型有哪些区别?运算符怎么用才不踩坑?输入输出如何与用户交互?本文从最基础的常量表达式入手,层层拆解变量定义、数据类型、注释规范、输入输出和各类运算符,附大量实操案例和避坑指南,帮你快速搭建 Python 语法框架,轻松入门编程。

一. 常量与表达式:Python 当计算器使用

Python 最基础的用法就是作为计算器,支持常见算术运算,语法和日常数学算式高度一致。

1.1 核心算术运算符

支持 +(加)、-(减)、*(乘)、/(除)、()(括号),遵循 “先乘除后加减” 的运算优先级:

print(1+2-3)print(1+2*3)# Python里面整数/整数跟C++中不一样,整数除以整数也可以得到浮点数print(1+2/3)
在这里插入图片描述

1.2 关键注意点

  • 与 C/Java 不同2 / 3 结果是 0.666...(小数),而非整数截断;
  • 运算符与数字之间可加空格:推荐加 1 个,美观易读;
  • 表达式:形如 1 + 2 * 3 的算式称为表达式,运算结果为返回值;1、2、3 是字面值常量。

1.3 实际案例:求平均值

# 计算下面四个数的平均成绩print((67.5+73.5+54+86)/4)
在这里插入图片描述

二. 变量:保存数据的 “容器”

当需要存储中间结果(如计算方差时的平均值),就需要用到变量 —— 相当于内存中的 “房间”,可存放任意数据。

2.1 变量定义与使用

语法变量名 = 数据= 是赋值运算符(将右侧数据存入左侧变量):

# 以下代码在求四个数字的方差 average =(67.5+73.5+54+86)/4# ** 表示乘方 total =(67.5- average)**2+(73.5- average)**2+(54- average)**2+(86- average)**2# 除以 项数-1 result = total /3print(result)
在这里插入图片描述
  • average,total,result 均为变量
  • ** 表示乘方,**2 即求平方;
  • 变量可重复赋值,新值会覆盖旧值
a =10print(a)# 输出:10 a =20print(a)# 输出:20

变量可以视为是一块能够容纳数据的空间,这个空间往往对应到 “内存” 这样的硬件设备上。

在这里插入图片描述

2.2 变量命名规则

定义变量

# 正确的变量命名 a =10 a1 =10 a_09 =9# 错误的变量命名# 1a = 9# if = 20

硬性规则(必须遵守):

  • 由字母、数字、下划线构成,不能以数字开头;
  • 不能与 Python 关键字(如printif)重复;
  • 大小写敏感(numNum 是两个不同变量)。

软性规则(建议遵守):

  • 用有描述性的单词(如avg表示平均值,total表示总和);
  • 多单词用驼峰命名法(如personInfototalCount),首字母小写,后续单词首字母大写。
  • 还可以用person_infototal_count这样的写法
# 创建变量 a =10 b = a print(b)# 修改变量 a =20print(a)
在这里插入图片描述


这里我用的变量名还是 a,b这种是因为场景比较简单,也没啥需要特殊含义的表示。


三. 数据类型:给数据 “分类”

变量存储的数据有不同类型,类型决定了数据的存储方式和可执行的操作。Python 无需显式声明类型,赋值时自动确定(动态类型特性)
注意:和 C++/Java 等语言不同,Python变量的类型不需要显示指定,而是在赋值的时候确定的。

3.1 四大基础类型

(1)整数(int)

  • 表示整数,无范围上限(内存足够即可);
  • 用法a = 10、b = -5、c = 1000000000000。

(2)浮点数(float)

  • 表示小数,Python 中只有float(等价于其他语言的double,双精度,精确到小数点后 15 位);
  • 用法a = 0.5、b = 67.5、c = 3.1415926。

(3)字符串(str)

  • 表示文本,用单引号 ' ' 或双引号 " " 包裹(两者等价);
  • 核心操作
a ='hello' b ="world"print(len(a))# 输出:5(len()函数获取字符串长度)print(a + b)# 输出:helloworld(+表示字符串拼接)
  • 注意:字符串不能与整数 / 浮点数直接相加。

(4)布尔值(bool)

  • 表示 “真 / 假”,仅两个取值:True(真)、False(假);
  • 用法a = True、b = False,常用于逻辑判断

3.2类型相关操作:

  • 查看类型type(变量) 函数;
  • 类型转换int()、float()、str()、bool();
  • 动态类型特性:变量类型可在运行中改变(双刃剑,灵活但需谨慎)
    • 对于中小程序,可以大大的减少代码量(比如写一段代码就可以同时支持多个类型)
    • 对于大型程序,则提高了模块之间的交互成本(程序员 A 提供的代码难以被 B 理解)
a =10print(type(a)) b =0.5print(type(b))# 双引号和单引号都可以 c ='hello'print(type(c)) d ="hello"print(type(d)) e ='My name is "Lotso" 'print(type(e)) f =''' My 'name' is "Lotso" '''print(f)print(len(d)) a1 ='hello' a2 ='world'print(a1 + a2) c1 =True c2 =Falseprint(type(c1))print(type(c2))# 输出结果:<class'int'><class'float'><class'str'><class'str'><class'str'> My 'name'is"Lotso"5 helloworld <class'bool'><class'bool'>

四. 注释:给代码 “加说明”

注释是不执行的代码,用于解释程序逻辑,方便自己和他人理解。

4.1 两种注释语法

(1)单行注释

  • # 开头,注释整行:
# 计算4个数字的方差(单行注释) avg =(67.5+89.0+12.9+32.2)/4

(2)文档字符串(多行注释)

  • 用三引号 """ """''' ''' 包裹,支持多行:
""" 这是文档字符串(多行注释) 功能:计算4个分数的方差 步骤:1. 求平均值 2. 计算平方和 3. 求方差 """ total =(67.5- avg)**2+(89.0- avg)**2 result = total /3

4.2 注释规范

  • 内容准确:注释内容要和代码一致,匹配,并在代码修改时及时更新;
  • 篇幅合理:注释不要太精简也不要太冗长,点到为止;
  • 使用中文:国内开发首选中文注释;
  • 积极向上:避免负能量内容。

五. 输入输出:与用户交互

程序需要接收用户输入,再展示结果,核心用 input()(输入)和 print()(输出)函数。

  • 用户把信息传递给程序的过程,称为 “输入”。
  • 程序把结果展示给用户的过程,称为 “输出”。

输入输出最基本的方法就是控制台,用户通过控制台输入一些字符串,程序再通过控制台打印出一些字符串。

5.1 输出(print 函数)

  • 输出变量 / 常量print(变量名)print(常量)
  • 格式化输出(推荐 f-string,这个就和C++/Java不一样了):用 f'字符串{变量}' 内嵌变量 / 表达式:
a =10print(a) b ='hello'print(b) c =Trueprint(c) a =10# 希望使用 print 打印出 "a = 10" 这样的内容# 我们希望把数字和字符串混在一起打印print(f"a = {a}")print(f"a = {a +10}")
在这里插入图片描述

5.2 输入(input 函数)

  • 语法变量 = input('提示信息')
  • 注意input() 的返回值是字符串类型,需手动转换为其他类型才能进行算术运算:
# 通过控制台,来输入一个数据# num = input("Enter a number: ")# # 这个类型始终是一个str,如果需要计算就要转换# print(type(num))# print(f"num = {num}")# 输入两个数,计算他们相加的结果 a =input('Enter the First number: ') b =input('Enter the Second number: ')# a = int(a)# b = int(b)# print(f"a + b = {a + b}")print(f"a + b = {int(a)+int(b)}")

5.3 实操案例:求 4 个小数的平均值

#输入四个小数,求这四个小数的平均值 a =input('Enter the First number: ') b =input('Enter the Second number: ') c =input('Enter the Third number: ') d =input('Enter the Fourth number: ') a =float(a) b =float(b) c =float(c) d =float(d) avg =(a + b + c + d)/4print(f"The average is: {avg}")
在这里插入图片描述

六. 运算符:Python 的 “运算工具库”

除了算术运算符,Python 还有关系运算符、逻辑运算符、赋值运算符等,覆盖各类运算需求。

6.1 算术运算符(补充)

除了+,-,*,/ 基础运算,还有 3 个常用运算符:

  • %:求余数(不是百分数):print(7 % 2) → 输出 1;
  • **:求乘方:print(4 ** 2) → 输出 16,print(4 ** 0.5) → 输出 2.0(开平方);
  • //:取整除法(向下取整,舍弃小数):print(7 // 2) → 3,print(-7 // 2) → -4。
result =(1+2)*3print(f"result = {result}")# 注意一: 在 Python 中, 0 不能作为除数,否则会抛出异常# print(f"10 / 0 = {10 / 0}")# print(f"10 / 0.0 = {10 / 0.0}")# 报错信息# Traceback (most recent call last):# File "D:\Gitee.code\python-fundamentals-\PythonProject\2025--11--18\code10.py", line 5, in <module># print(f"10 / 0 = {10 / 0}")# ~~~^~~# ZeroDivisionError: division by zero# 注意二: 在 Python 中整数除以整数,结果可能是小数,而不会截断print(f"1 / 2 = {1/2}")# 注意三: % 表示求余数,余数不可能大于除数print(f"7 % 3 = {7%3}")# 注意四: ** 表示乘方语言,既能支持乘方,也能支持开方print(f"4 ** 2 = {4**2}")print(f"4 ** 0.5 = {4**0.5}")# 注意五: // 地板除法(取整除法),会针对计算的结果进行 “向下取整”print(f"7 // 2 = {7//2}")print(f"-7 // 2 = {-7//2}")
在这里插入图片描述


在这里插入图片描述

6.2 关系运算符(比较运算)

用于比较两个操作数之间的关系,返回布尔值(True/False):

运算符含义示例结果
<小于10 < 20True
<=小于等于10 <= 10True
>大于10 > 20False
>=大于等于10 >= 20False
==等于10 == 20False
!=不等于10 != 20True

注意

  • 字符串可比较(按字典序)'hello' < 'world' → True;
  • 支持连续小于或者大于这类写法 a < b < c
  • 浮点数不要用==判断相等(存在精度误差,在误差范围内就是True,False)
# a = 10# b = 20# a = 'hello'# b = 'world'# 中文也可以比较,但是没有意义# a = '你好'# b = '世界'# print(a < b)# print(a > b)# print(a <= b)# print(a >= b)# print(a == b)# print(a != b)print(0.1+0.2==0.3)print(0.1)print(0.2)print(0.1+0.2)print(0.3) a =0.1+0.2 b =0.3# 这个代码是看 a - b 差是否是一个非常小的数字,是否在误差范围之内# python是支持这种写法的,C++/Java都不行print(-0.000001<(a - b)<0.000001)
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述

6.3 逻辑运算符(组合判断)

用于组合多个关系判断,返回布尔值

  • and:并且(一假则假):10 < 20 and 20 < 30 → True;
  • or:或者(一真则真):10 > 20 or 20 < 30 → True;
  • not:逻辑取反:not 10 < 20 → False。

短路求值(很重要,而且C++和Java都有这个)

  • and 左侧为 False 时,右侧不再执行;
  • or 左侧为 True 时,右侧不再执行:

实战代码:

a =10 b =20 c =30# 并且 (一假即为假)# print(a < b and b < c) # 简化print(a < b < c)print(a < b and b > c)# 或者 (一真则为真)print(a > b or b < c)print(a < b or b > c)print(a > b or b < c)# 逻辑取反print(not a < b)print(not a > b)# 短路规则# a > b 为假,后面的直接不计算,所以不会报错print(a > b and10/0==1)# a < b 为真,后面的直接不计算,所以不会报错print(a < b or10/0==1)在这里插入代码片 
在这里插入图片描述
在这里插入图片描述

6.4 赋值运算符

  • 基础赋值a = 10
  • 链式赋值a = b = 10(a 和 b 都赋值为 10);
  • 多元赋值a, b = 10, 20(快速交换变量:a, b = b, a);
  • 复合赋值a += 1(等价于a = a + 1),同理还有 -=、*=、/=、%=、**=、//=

注意
Python 没有 ++-- 自增 / 自减运算符,用 a += 1、a -= 1 替代。

实操代码:

# # 链式赋值# a = b = 20# # 多元赋值# a, b = 10,20 a =10 b =20# 实现交换a,b的逻辑# tmp = a# a = b# b = tmp# print(a,b)# 使用多元赋值,直接一步到位完成交换 a, b = b, a print(a,b)
在这里插入图片描述
a =10 a = a +1 a +=1# -=, *=, /=, **=, %=, //=# ++a# a++# --aprint(a)
在这里插入图片描述
在这里插入图片描述


在这里插入图片描述
  • 当然按除了上述之外,Python还有一些其他的运算符,比如身份运算符(is,is not),成员运算符(in,not in),位运算符(&|~^<<>>)等,大家感兴趣的可以自己先去了解一下。

七. 常见坑点总结与自测练习

7.1 常见坑点

  1. 除法结果默认是小数,需整数结果用 //;
  2. 字符串不能与数字直接相加,需先转换类型;
  3. 浮点数比较相等用 “误差范围”,而非 ==;
  4. input() 返回字符串,算术运算前必须转换类型;
  5. 变量命名不能以数字开头,不能与关键字重复。

7.2 自测练习

在这里插入图片描述

结尾:

🍓 我是草莓熊 Lotso!若这篇技术干货帮你打通了学习中的卡点: 👀 【关注】跟我一起深耕技术领域,从基础到进阶,见证每一次成长 ❤️ 【点赞】让优质内容被更多人看见,让知识传递更有力量 ⭐ 【收藏】把核心知识点、实战技巧存好,需要时直接查、随时用 💬 【评论】分享你的经验或疑问(比如曾踩过的技术坑?),一起交流避坑 🗳️ 【投票】用你的选择助力社区内容方向,告诉大家哪个技术点最该重点拆解 技术之路难免有困惑,但同行的人会让前进更有方向~愿我们都能在自己专注的领域里,一步步靠近心中的技术目标! 

结语:Python 基础语法的核心是 “简洁直观”,变量、类型、运算符、输入输出是搭建所有程序的基石。掌握这些内容后,你就能编写简单的计算程序、与用户交互的脚本,为后续学习循环、判断、函数打下基础。建议多动手实操案例,尤其是运算符的避坑场景(如浮点数比较、字符串拼接),通过练习巩固语法记忆。如果遇到报错,先查看变量类型、运算符使用是否正确,大部分入门问题都能快速解决。

✨把这些内容吃透超牛的!放松下吧✨ʕ˘ᴥ˘ʔづきらど

Read more

Flutter 三方库 matrix 鸿蒙终端底层复杂超维数学算力适配突破:无缝植入极限级张量系统与密集线性代数矩阵运算推演算法,解锁端侧图形处理边界-适配鸿蒙 HarmonyOS ohos

Flutter 三方库 matrix 鸿蒙终端底层复杂超维数学算力适配突破:无缝植入极限级张量系统与密集线性代数矩阵运算推演算法,解锁端侧图形处理边界-适配鸿蒙 HarmonyOS ohos

欢迎加入开源鸿蒙跨平台社区:https://openharmonycrossplatform.ZEEKLOG.net Flutter 三方库 matrix 鸿蒙终端底层复杂超维数学算力适配突破:无缝植入极限级张量系统与密集线性代数矩阵运算推演算法,全面解锁端侧图形视觉处理边界并拔高数据分析算力上限 在图形学渲染、物理引擎模拟、复杂地理坐标转换以及端侧小型机器学习框架中,底层的矩阵运算(Matrix Operations)是决速步骤。matrix 库是一个专注于高性能线性代数计算的 Dart 库。本文将详解该库在 OpenHarmony 环境下的适配与实战应用。 封面 前言 什么是 matrix?它为 Dart 提供了一套类似于 NumPy 的多维数组运算接口。在鸿蒙操作系统这种强调极致流畅度和复杂视觉动效的系统中,利用高效的矩阵算法可以显著提升自定义 Canvas 绘图或实时传器数据处理的性能,避免因 Dart 层的低效循环导致的 UI 掉帧。 一、原理解析 1.1 基础概念 matrix 库核心基于

21届智能车雁过留痕备战指南|龙邱科技STC+神眼摄像头处理 高效搜线算法思路分享

21届智能车雁过留痕备战指南|龙邱科技STC+神眼摄像头处理 高效搜线算法思路分享

今年STC单片机首次增设摄像头组别,相信不少备战的同学想要知道这颗新U是否能够快速上手并能够像传统摄像头组别一样,高效完成图像处理,提高车模控制系统上限。 其中最突出的痛点的是:有同学搭建完核心算法组合后,可能感觉到略微卡顿或系统延迟,影响车模调试上限,我们第一次搭建完经过测试单帧处理耗时高达20多ms,这导致车辆运行稳定性和反应速度受限、甚至可能有冲出赛道的情况发生,导致调试陷入瓶颈,提速困难,短时间内难以找到有效突破方向。 针对这一高频痛点,我们结合备战同学的实际调试场景,经过反复测试、迭代优化,整理出一套实用性极强的帧率优化思路,实测验证有效,优化后单帧处理耗时可稳定降至9-11ms,彻底解决卡顿难题,这里将图像处理和以西优化思路分享给大家,希望能够帮助到更多的同学! 实测数据对比,直观呈现优化效果 图像处理方案单帧采集+处理耗时未优化(采集+处理)20ms-25ms(能感觉到慢,上限较低)优化后(采集+处理)9ms-11ms(流畅稳定,提高了上限) 同学们遇到的卡顿问题,核心症结主要集中在两点:一是内存资源不足,二是算法计算耗时过长。在拆解具体优化方法前,我

优选算法——链表

💁‍♂️个人主页:进击的荆棘 👇作者其它专栏: 《数据结构与算法》《算法》《C++起始之路》 相关题解 1.两数相加 算法思路(模拟): 两个链表都是逆序存储数字的,即两个链表的个位数、十位数等都已经对应,可以直接相加。在相加过程中,我们要注意是否产生进位,产生进位时需要将进位和链表数字一同相加。若产生进位的位置在链表底部,即答案位数比原链表位数长一位,还需要再new一个结点存储最高位。 /** * Definition for singly-linked list. * struct ListNode { * int val; * ListNode *next; * ListNode() : val(0), next(nullptr) {} * ListNode(int x) : val(x), next(nullptr) {} * ListNode(int x, ListNode *next) : val(

无中生有——无监督学习的原理、算法与结构发现

无中生有——无监督学习的原理、算法与结构发现

“世界上绝大多数数据都没有标签。 真正的智能,不是在已知答案中选择,而是在混沌中发现秩序。” ——无监督学习的哲学 一、为什么需要无监督学习? 在前七章中,我们系统学习了监督学习(Supervised Learning)的核心范式:给定输入 x\mathbf{x}x 和对应标签 yyy,学习映射 f:x↦yf: \mathbf{x} \mapsto yf:x↦y。无论是线性回归、决策树,还是神经网络,都依赖于标注数据这一稀缺资源。 然而,现实世界的数据绝大多数是未标注的: * 用户浏览日志(只有行为,没有“好/坏”标签); * 医学影像(只有图像,没有诊断结论); * 社交网络(只有连接关系,没有群体划分); * 传感器时序(只有数值流,没有异常标记)