形如 1 + 2 - 3 这样的算式,在编程语言中称为 表达式, 算式的运算结果, 称为 表达式的返回值
其中 1 , 2 , 3 这种称为 字面值常量, + - * / 这种称为 运算符 或者 操作符
有的时候, 我们需要进行的计算可能更复杂一些, 需要把一些计算的中间结果保存起来. 这个时候就需要用到变量
变量可以视为是一块能够容纳数据的空间. 这个空间往往对应到 “内存” 这样的硬件设备上
a = 10
创建变量的语句非常简单, 其中 a 为变量名。当我们创建很多个变量的时候, 就可以用名字来进行区分。= 为赋值运算符,表示把 = 右侧的数据放到 = 左侧的空间中
注意: 变量的名字要遵守一定规则
硬性规则
- 变量名由 数字 字母 下划线 构成
- 数字不能开头
- 变量名不能和 “关键字” 重复
- 变量名大小写敏感. num 和 Num 是两个不同的变量名
软性规则
- 变量名使用有描述性的单词来表示, 尽量表达出变量的作用
- 一个变量名可以由多个单词构成, 长一点没关系, 但是含义要清晰
- 当变量名包含多个单词的时候, 建议使用 “驼峰命名法”
打印变量:
a = 10
print (a)
修改变量:
a=10
a=100
变量里面存储的不仅仅是数字, 还可以存储其它种类的数据。为了区分不同种类的数据, 我们引入了 “类型” 这样的概念
注意: 和 C++ / Java 等语言不同, Python 变量的类型不需要显式指定, 而是在赋值的时候确定的
a = 10
print(type(a))
注意: 和 C++ / Java 等语言不同, Python 的 int 类型变量, 表示的数据范围是没有上限的. 只要内存足够大, 理论上就可以表示无限大小的数据
a = 0.5
print(type(a))
注意: 和 C++ / Java 等语言不同, Python 的小数只有 float 一种类型, 没有 double 类型. 但是实际上 Python 的 float 就相当于 C++ / Java 的 double, 表示双精度浮点数
a = 'hello'
print(type(a))
使用 ’ ’ 或者 " " 引起来的,称为 字符串。可以用来表示文本
注意: 在 Python 中, 单引号构成的字符串和双引号构成的字符串, 没有区别. ‘hello’ 和 “hello” 是完全等价的
Python 中也没有字符类型,‘a’表示长度为一的字符串
a = True
print(type(a))
b = False
print(type(b))
布尔类型是一个特殊的类型, 取值只有两种, True (真) 和 False (假)
总结: 类型系统其实是在对变量进行 “归类”. 相同类型的变量(数据) 往往具有类似的特性和使用规则
在 Python 中, 一个变量是什么类型, 是可以在 “程序运行” 过程中发生变化的。这个特性称为 “动态类型”
a = 10
print(type(a))
a = 'hello'
print(type(a))
C++/Java 这样的语言则不允许这样的操作. 一个变量定义后类型就是固定的了. 这种特性则称为 “静态类型”
注释是一种特殊的代码, 它不会影响到程序的执行, 但是能够起到解释说明的作用, 能够帮助程序员理解程序代码的执行逻辑
用户把信息传递给程序的过程, 称为 “输入”;程序把结果展示给用户的过程, 称为 “输出”
输入输出的最基本的方法就是控制台。用户通过控制台输入一些字符串, 程序再通过控制台打印出一些字符串
Python 使用 print 函数输出到控制台
a = 10
print(a)
b = True
print(b)
更多的时候, 我们希望能够输出的内容是混合了字符串和变量的:
# 输出num = 10
num = 10
print(f'num = {num}')
python 使用 input 函数, 从控制台读取用户的输入
num = 0
num = input('请输入一个整数: ')
print(f'你输入的整数是 {num}')
像 + - * / % ** // 这种进行算术运算的运算符, 称为 算术运算符
注意:
- / 中不能用 0 作为除数,否则会抛出异常
- 整数 / 整数 结果可能是小数,而不会截断
- ** 是求乘方。不光能算整数次方,还能算小数次方
- // 是取整除法。整数除以整数,结果还是整数(舍弃小数部分, 并向下取整。不是四舍五入)
像 < <= > >= == != 这一系列的运算符称为 关系运算符, 它们是在比较操作数之间的关系
- 如果关系符合, 则表达式返回 True. 如果关系不符合, 则表达式返回 False
- 关系运算符不光针对整数/浮点数进行比较, 还能针对字符串进行比较
- 对于浮点数来说, 不要使用 == 判定相等
像 and or not 这一系列的运算符称为 逻辑运算符
a < b and b < c 这个操作等价于 a < b < c 。
和其他编程语言类似, Python 也存在短路求值的规则.
- 对于 and, 如果左侧表达式为 False, 则整体一定为 False, 右侧表达式不再执行
- 对于 or, 如果左侧表达式为 True, 则整体一定为 True, 右侧表达式不再执行
= 的使用
= 表示赋值。注意和 == 区分;= 除了基本的用法之外, 还可以同时针对多个变量进行赋值
# 链式赋值
a = b = 10
# 多元赋值
a , b = b , a
复合赋值运算符
Python 还有一些 复合赋值运算符. 例如 += -= *= /= %=
注意: 像 C++ / Java 中, 存在 ++ – 这样的自增/自减运算符. Python 中则不支持这种运算. 如果需要使用, 则直接使用 += 1 或者 -= 1