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

【C++】哈希扩展——位图和布隆过滤器的介绍与实现

【C++】哈希扩展——位图和布隆过滤器的介绍与实现

各位读者大佬好,我是落羽!一个坚持不断学习进步的学生。 如果您觉得我的文章还不错,欢迎多多互三分享交流,一起学习进步! 也欢迎关注我的blog主页:落羽的落羽 文章目录 * 一、位图 * 1. 概念与实现 * 2. std::bitset * 二、布隆过滤器 * 1. 概念 * 2. 布隆过滤器误判率数学推导 * 3. 实现 一、位图 1. 概念与实现 在许多公司的面试题中会考到这样的场景:给40亿个不重复无符号整数,如何快速判断一个数是否在这40亿数中。 如果使用常规思路,每次查询暴力遍历O(N)太慢,排序+二分查找O(NlogN)+O(logN),内存不足以放下这些数据。 数据是否在给定的整型数据中,结果是在或不在,正好是两种状态,那么可以用一个二进制比特位来代表数据是否存在的信息,比特位为1代表存在,比特位为0代表不在。那么,我们可以设计一个用比特位表示数据是否存在的数据结构——位图!

By Ne0inhk
Java外功实战(4)——SpringBoot登录认证全栈实现:Session、统一结果封装、MD5加密与拦截器

Java外功实战(4)——SpringBoot登录认证全栈实现:Session、统一结果封装、MD5加密与拦截器

本文简介 目的:Spring生态为Java后端开发提供了强大支持,但将分散的技术点整合成完整解决方案往往令人困惑。本文将以登录接口为切入点,系统演示如何将IOC/DI、MyBatis数据持久化、MD5加密、Session/Cookie管理、JWT令牌和拦截器机制融合运用,打造企业级认证方案 技术栈:前端:HTML + CSS + JavaScript + Jquery后端:SpringBoot + Mybatis + JWT 搭建环境:数据库:MySQL8.4.0项目结构:maven前端框架:Jquery后端框架:SpringBootJDK:17编译器:IDEA 目录结构: 项目搭建及配置 1.创建SpringBoot3.0.0+项目并添加依赖:Spring Web、MyBatis Framework、MySQL Driver、Lombok 2.初始化数据库: createdatabase spring_

By Ne0inhk
C++ 异常完全指南:从语法到实战,优雅处理程序错误

C++ 异常完全指南:从语法到实战,优雅处理程序错误

🔥草莓熊Lotso: ❄️个人专栏: ✨生活是默默的坚持,毅力是永久的享受! 🎬 博主简介: 文章目录 * 前言: * 一. 异常的核心概念与基本语法\ * 1.1 异常的核心思想 * 1.2 基础语法格式和最简示例 * 二. 异常的核心机制:栈展开与匹配规则 * 2.1 栈展开 * 2.2 异常捕获的匹配规则 * 三. 自定义异常体系:大型项目的最佳实践 * 3.1 自定义异常体系设计 && 异常抛出与捕获实战 * 四. 异常的高级用法 * 4.1 异常重新抛出 * 4.2 异常安全:避免资源泄漏 * 4.3 异常规范( noexcept ) * 五. C++ 标准库异常体系 * 结尾:

By Ne0inhk
【Java 开发日记】我们来说说 Redis 中 Zset 的底层实现

【Java 开发日记】我们来说说 Redis 中 Zset 的底层实现

目录 核心概括 一、两种编码方式 1. ziplist / listpack 编码 2. skiplist 编码 为什么需要两种结构? 二、核心数据结构剖析 1. 跳跃表(Skip List)详解 2. 字典(Dict) 三、操作流程示例 四、ZSET ZRANGE 操作序列图 五、总结与要点 面试回答 核心概括 Redis 的 Zset 同时具备两个核心特性: 1. 有序性:元素按分值(score) 从小到大排列。 2. 唯一性:集合中的成员(member) 是唯一的,但分值可以相同(分值相同时,按成员字典序排列)。 为了实现这种高效的、

By Ne0inhk