Python基础语法精要

ops/2025/2/13 16:14:35/

文章目录

  • 一、Python的起源
  • 二、Python的用途
  • 三、Python的优缺点
    • 优点
    • 缺点
  • 四、基础语法
    • (1)常量和表达式
    • (2)变量
      • 变量的语法
        • (i)定义变量
        • (ii)变量命名的规则
    • (3)变量的类型
      • (a)整数(int)
      • (b)浮点数(float)
      • (c)字符串(str)
      • (d)布尔类型(bool)
      • (e)其他
    • (4)变量类型存在的意义
      • (a)类型决定了数据在内存中占据多大空间
      • (b)类型其实约定了能对这个变量做什么样的操作
      • (c)总结
    • (5)注释
      • 注释的语法
        • (1) 单行注释
        • (2) 文档注释
        • (3) 注释的规范
    • (6)输入输出函数
      • 输出
      • 输入
    • (7)运算符
      • 算术运算符
      • 关系运算符
      • 逻辑运算符
      • 赋值运算符
        • (1)链式赋值
        • (2)多元赋值
      • 其他运算符
  • END


一、Python的起源

1989 年,吉多·范罗苏姆(Guido van Rossum)在圣诞节的时候(当时 33 岁), 因为在家里待着无聊, 为了打发时间, 开始了 Python 的开发。

二、Python的用途

  • 科学计算&数据分析
  • Web 开发(搭建网站)
  • 自动化运维
  • 人工智能
  • 爬虫程序
  • 自动化测试

总结

Python 目前是一个应用场景非常广泛的编程语言。

三、Python的优缺点

优点

  • 语法言简意赅, 容易上手.
  • 功能强大, 用途广泛.
  • 生态丰富, 具有海量的成熟第三方库.
  • 方便调用 C/C++ 编写的代码进行 高性能/系统级 操作.

缺点

  • 执行效率比较弱.
  • 对于多核心并发程序支持偏弱.
  • 动态类型系统对于大型项目不太友好

四、基础语法

(1)常量和表达式

形如 1 + 2 - 3 这样是算式, 在编程语言中称为 表达式,
算式的运算结果, 称为 表达式的返回值

其中 1 , 2 , 3 这种称为 字面值常量,
+ - * / 这种称为 运算符 或者 操作符

(2)变量

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

变量的语法

(i)定义变量
python">a = 5

a 为变量名. 当我们创建很多个变量的时候, 就可以用名字来进行区分。
= 为赋值运算符, 表示把 = 右侧的数据放到 = 左侧的空间中

(ii)变量命名的规则

硬性规则(务必遵守)

  • 变量名由数字、字母、下划线构成.
  • 数字不能开头.
  • 变量名不能和 “关键字” 重复.
  • 变量名大小写敏感. numNum 是两个不同的变量名.

软性规则(建议遵守)

  • 变量名使用有描述性的单词来表示, 尽量表达出变量的作用.
  • 一个变量名可以由多个单词构成, 长一点没关系, 但是含义要清晰.
  • 当变量名包含多个单词的时候, 建议使用 “驼峰命名法”. 形如 totalCount , personInfo 这种, 除了首个单词外, 剩余单词首字母大写.

(3)变量的类型

(a)整数(int)

C++ / Java 等语言不同, Pythonint 类型变量, 表示的数据范围是没有上限的. 只要内存足够大, 理论上就可以表示无限大小的数据.

(b)浮点数(float)

C++ / Java 等语言不同, Python 的小数只有 float 一种类型, 没有 double 类型.
但是实际上Pythonfloat 就相当于 C++ / Javadouble, 表示双精度浮点数.

(c)字符串(str)

使用 ' ' 或者 " " 引起来的, 称为 字符串. 可以用来表示文本。

Python 中, 单引号 构成的字符串和 双引号 构成的字符串, 没有区别.
'hello'"hello" 是等价的。(在 Python 中, 不存在字符类型)

(d)布尔类型(bool)

布尔类型是一个特殊的类型, 取值只有两种, True (真) 和 False (假)
注意:(单词TrueFalse 首字母要大写)

(e)其他

之后的Python专栏会介绍。

(4)变量类型存在的意义

(a)类型决定了数据在内存中占据多大空间

例如: float 类型在内存中占据 8 个字节.

计算机里面使用二进制来表示数据. 也就是每个位只能表示 0 或者 1。
1 个二进制位, 就称为是一个 “比特位”, 8 个二进制位, 就称为一个 “字节” (Byte) 。
一个 float 变量在内存中占据 8 个字节空间, 也就是 64 个二进制位.

(b)类型其实约定了能对这个变量做什么样的操作

例如 int / float 类型的变量, 可以进行 + - * / 等操作;
str 类型的变量, 只能进行 + (并且行为是字符串拼接), 不能进行 - * / , 但是还能使用 len 等其他操作.

(c)总结

类型系统其实是在对变量进行 “归类”. 相同类型的变量(数据) 往往具有类似的特性和使用规则

(5)注释

注释是一种特殊的代码, 它不会影响到程序的执行, 但是能够起到解释说明的作用, 能够帮助程序员理解程序代码的执行逻辑。

注释的语法

(1) 单行注释

使用 # 开头的行都是注释

python"># 这是一行注释.
(2) 文档注释

使用三引号引起来的称为 “文档字符串”, 也可以视为是一种注释。

  • 可以包含多行内容;
  • 一般放在 文件/函数/类 的开头;
  • """ 或者 ''' 均可 (等价)
python">"""
这是文档字符串
"""
(3) 注释的规范

1. 内容准确: 注释内容要和代码一致, 匹配, 并在代码修改时及时更新;
2. 篇幅合理: 注释既不应该太精简, 也不应该长篇大论;
3. 使用中文: 一般中国公司都要求使用中文写注释, 外企另当别论;
4. 积极向上: 注释中不要包含负能量。

(6)输入输出函数

输出

Python 使用 print 函数输出。

python">print('hehe')

不仅能输出一个字符串, 还可以输出一个其他类型的变量

python">a = 1;
print(a)b = False
print(b)

更多的时候, 我们希望能够输出的内容是混合了字符串和变量的~

例如:
在控制台输出 num = 1

python">num = 1
print(f"num = {num}")

使用 f 作为前缀的字符串, 称为 f-string
里面可以使用 { } 来内嵌一个其他的变量/表达式.

输入

python 使用 input 函数, 从控制台读取用户的输入.

python">num = input('请输入一个整数: ')
print(f'你输入的整数是 {num}')

input 的参数相当于一个 “提示信息”, 也可以没有.
input 的返回值就是用户输入的内容. 是字符串类型str).

(7)运算符

算术运算符

算术运算符符号
加法+
减法-
乘法*
除法/
取模(求余数)%
求乘方**
取整除法(也叫地板除)//

注意事项:

  • / 中不能用 0 作为除数. 否则会 抛出异常;
  • 整数 / 整数 结果可能是小数. 而不会发生截断;
  • % 不是 “百分数”, 而是求余数;
  • ** 是求乘方. 不光能算整数次方, 还能算小数次方;
  • // 是取整除法(也叫地板除). 整数除以整数, 结果还是整数(舍弃小数部分, 并向下取整. 不是四舍五入)。

关系运算符

关系运算符符号
大于>
小于<
是否相等==
大于等于>=
小于等于<=
不等于!=

注意事项:

  • 如果关系成立, 则表达式返回 True; 如果关系不符合, 则表达式返回 False
  • 关系运算符不光针对整数/浮点数进行比较, 还能针对字符串进行比较。(字符串比较大小, 规则是 “字典序”
  • 浮点数正确的比较方式: 不再严格比较相等了, 而是判定差值小于允许的误差范围。
  • 对于浮点数来说, 不要使用 == 判定相等。(浮点数在计算机中的表示并不是精确的! 在计算过程中, 就容易出现非常小的误差)
python">a = 0.1 + 0.2
b = 0.3
print(-0.000001 < (a - b) < 0.000001)

逻辑运算符

逻辑运算符符号
并且and
或者or
逻辑取反not

注意事项:

  • and 并且. 两侧操作数均为 True, 最终结果为 True. 否则为 False. (一假则假)
  • or 或者. 两侧操作数均为 False, 最终结果为 False. 否则为 True. (一真则真)
  • not 逻辑取反. 操作数本身为 True, 则返回 False. 本身为 False, 则返回 True.
  • a < b and b < c 这个操作等价于 a < b < c .

短路求值

对于 and, 如果左侧表达式为 False, 则整体一定为 False, 右侧表达式不再执行.
对于 or, 如果左侧表达式为 True, 则整体一定为 True, 右侧表达式不再执行.

赋值运算符

赋值运算符符号
赋值=
(1)链式赋值
python">a = b = 10
(2)多元赋值
python">a, b = 10, 20

其他运算符

比如 身份运算符 (is, is not), 成员运算符 (in, not in), 位运算符( & | ~ ^ << >>) 等.


END

每天都在学习的路上!
On The Way Of Learning


http://www.ppmy.cn/ops/158083.html

相关文章

HTML5--网页前端编程(下)

HTML5–网页前端编程(下) 9.常用标签下 (1)表格标签 用来展示数据,显示数据,规整条理,可读性好 基本语法 <table><tr> <td>单元格内的文字</td> <td>单元格内的文字</td>… </tr> <tr> <td>单元格内的文字&l…

verilog练习:i2c slave 模块设计

文章目录 前言1.结构2.代码2.1 iic_slave.v2.2 sync.v2.3 wr_fsm.v2.3.1 状态机状态解释 2.4 ram.v 3. 波形展示4. 建议5. 资料总结 前言 首先就不啰嗦iic协议了&#xff0c;网上有不少资料都是叙述此协议的。 下面将是我本次设计的一些局部设计汇总&#xff0c;如果对读者有…

c/c++蓝桥杯经典编程题100道(18)括号匹配

括号匹配 ->返回c/c蓝桥杯经典编程题100道-目录 目录 括号匹配 一、题型解释 二、例题问题描述 三、C语言实现 解法1&#xff1a;栈匹配法&#xff08;难度★&#xff09; 解法2&#xff1a;计数器法&#xff08;仅限单一括号类型&#xff0c;难度★☆&#xff09; …

Java面试题(11) 整理Java面试题及参考答案

下面是最近翻阅各类博客网站收集整理的一些Java面试题&#xff0c;您值得拥有&#xff1a; 史上最全Java面试题&#xff08;带全部答案&#xff09; 2018JAVA面试题附答案(长期更新) 这是我见过最有用的java面试题&#xff0c;面试了无数公司总结的 2017 最新java面试题&…

android 自定义文件名和日期——android 打包技巧——不覆盖历史成功文件和版本-默认打包缺陷

一、传统方式 传统方式打包在 文件夹”app\release“下生成”app-release.apk“ 1. 多应用易混淆问题 同一项目多变体场景 当项目存在多个不同的构建变体时&#xff0c;例如不同的渠道包&#xff08;如应用宝渠道、华为应用市场渠道等&#xff09;、不同的版本类型&#xff08;…

网络安全之攻防笔记--web安全攻防

通用漏洞SQL SQL注入 针对数据库的攻击手法&#xff0c;通过在输入字段中插入恶意的SQL代码&#xff0c;改变或破坏原本预期的SQL注入查询 基于注入参数类型 数字型注入、字符型注入 基于请求提交方式 GET注入、POST注入 基于获取信息方式 有回显的注入 联合查询注入、基于报错…

Redis存储⑥Redis五大数据类型之 Zset

目录 1. Zset 有序集合 1.1 Zset 有序集合常见命令 zadd zcard zcount zrange zrevrange zrangebyscore&#xff08;弃用&#xff09; zpopmax bzpopmax zpopmin bzpopmin zrank zrevrank zscore zrem zremrangebyrank zremrangebyscore zincrby 1.2 Zset有…

青少年编程与数学 02-009 Django 5 Web 编程 06课题、模型定义

青少年编程与数学 02-009 Django 5 Web 编程 06课题、模型定义 一、模型二、定义模型1. 导入模型类2. 定义模型类3. 定义字段4. 添加元数据&#xff08;可选&#xff09;5. 定义模型方法&#xff08;可选&#xff09;6. 迁移模型 三、模型字段字符字段数字字段日期和时间字段布…