Python基础语法精要

文章目录


一、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

相关推荐
暴走的YH9 分钟前
【网络协议】三次握手与四次挥手
网络·网络协议
The Future is mine11 分钟前
Python计算经纬度两点之间距离
开发语言·python
yuzhangfeng11 分钟前
【云计算物理网络】数据中心网络架构设计
网络·云计算
Enti7c12 分钟前
HTML5和CSS3的一些特性
开发语言·css3
九月镇灵将13 分钟前
GitPython库快速应用入门
git·python·gitpython
爱吃巧克力的程序媛19 分钟前
在 Qt 创建项目时,Qt Quick Application (Compat) 和 Qt Quick Application
开发语言·qt
zhu12893035561 小时前
网络安全的重要性与防护措施
网络·安全·web安全
兔子的洋葱圈1 小时前
【django】1-2 django项目的请求处理流程(详细)
后端·python·django
独好紫罗兰1 小时前
洛谷题单3-P5719 【深基4.例3】分类平均-python-流程图重构
开发语言·python·算法
27669582921 小时前
美团民宿 mtgsig 小程序 mtgsig1.2 分析
java·python·小程序·美团·mtgsig·mtgsig1.2·美团民宿