常量和表达式
print 是一个 Python 内置的函数,可以使用 + - * / ( ) 等运算符进行算术运算
print(1 + 2 - 3) # 0
print(1 + 2 * 3) # 7
print(1 + 2 / 3) # 1.6666666666666665
- 形如 1 + 2 - 3 这样是算式,在编程语言中称为表达式,算式的运算结果,称为表达式的返回值
- 其中 1 ,2 ,3 这种称为 字面值常量,+ - * / 这种称为运算符或者操作符
注意:
在C/C++/Java等语言中我们会认为, 2 / 3 结果为 0 (小数部分被截断),但是在python中会得到一个确切的小数
变量和类型
定义变量
a = 10
- a 为变量名. 当我们创建很多个变量的时候, 就可以用名字来进行区分
- = 为赋值运算符, 表示把 = 右侧的数据放到 = 左侧的空间中
注意:
- 变量名由数字字母下划线构成
- 数字不能开头
- 变量名不能和 “关键字” 重复
- 变量名大小写敏感. num 和 Num 是两个不同的变量名
使用变量
读取变量的值,并且打印出来
a = 10
print(a) # 10
修改变量的值
a = 10
a = 100 # 修改变量的值
print(a) # 100
注意:
- 在 Python 中, 修改变量也是使用 = 运算, 看起来和定义变量没有明显区别
也可以用一个变量的值赋给另外一个变量
a = 10
b = 20
a = b
print(a)
print(b)
变量的类型
和 C++ / Java 等语言不同, Python 变量的类型不需要显式指定, 而是在赋值的时候确定的
- 整数
a = 10
print(type(a)) # <class 'int'>
- type 和 print 类似, 也是 python 内置的函数. 可以使用 type 来查看一个变量的类型;
- 和 C++ / Java 等语言不同, Python 的 int 类型变量, 表示的数据范围是没有上限的. 只要内存足够大, 理论上就可以表示无限大小的数据
- 浮点数
a = 0.5
print(type(a)) # <class 'float'>
- 和 C++ / Java 等语言不同, Python 的小数只有 float 一种类型, 没有 double 类型. 但是实际上Python 的 float 就相当于 C++ / Java 的 double, 表示双精度浮点数
- 字符串
a = 'hello'
print(type(a)) # <class 'str'>
- 使用 ’ ’ 或者 " " 引起来的, 称为字符串. 可以用来表示文本
- 在python中’hello’ 和 “hello” 是等价的
# 可以使用 len 函数来获取字符串的长度
a = 'hello'
print(len(a)) # 5
- 可以使用 + 针对两个字符串进行拼接
a = 'hello'
b = 'world'
print(a + ' ' + b) # hello world
- 布尔
布尔类型的取值只有两种,True(真)和False(假)
动态类型特性
在 Python 中, 一个变量是什么类型, 是可以在 “程序运行” 过程中发生变化的. 这个特性称为 “动态类型”
与之相反的称为“静态类型”,即一个变量定义后类型就是固定的了
a = 10
print(type(a)) # <class 'int'>
a = 'hello'
print(type(a)) # <class 'str'>
注意:
- 对于中小型程序, 可以大大的解约代码量(比如写一段代码就可以同时支持多种类型).
- 对于大型程序, 则提高了模块之间的交互成本
输入输出
和用户交互
用户把信息传递给程序的过程,称为“输入”
程序把结果展示给用户的过程,称为“输出”
通过控制台输出
使用 print 函数输出到控制台
print('hello') # hello
混合输出
num = 10
print(f'num = {num}') # num = 10
- 使用 f 作为前缀的字符串, 称为 f-string
- 里面可以使用 { } 来内嵌一个其他的变量/表达式
通过控制台输入
使用 input 函数, 从控制台读取用户的输入
num = 0
num = input('请输入一个整数: ')
print(f'你输入的整数是 {num}')
- input 的参数相当于一个 “提示信息”, 也可以没有
- input 的返回值就是用户输入的内容. 是
字符串类型
由于input函数的返回值是字符串类型,因此下面代码实际进行的是字符串的拼接操作
a = input('请输入第一个整数: ') # 10
b = input('请输入第二个整数: ') # 20
print(f'{a} + {b} = {a + b}') # 1020
如果要想进行算术运算, 需要先转换类型
a = input('请输入第一个整数: ') # 10
b = input('请输入第二个整数: ') # 20
a = int(a)
b = int(b)
print(f'{a} + {b} = {a + b}') # 30
- 通过 int( ) 把变量转成了 int 类型
- 类似的, 使用 float( ), bool( ), str( ) 等可以完成对应的类型转换
运算符
算术运算符
Python中的算术运算符,包括+、-、*、/、%、**(幂)、//(地板除)
注意:
- / 中不能用 0 作为除数. 否则会 抛出异常
- 整数 / 整数 结果可能是小数. 而不会截断
- print(7 % 2)
- ** 是求乘方. 不光能算整数次方, 还能算小数次方
- // 是取整除法(也叫地板除). 整数除以整数, 结果还是整数(舍弃小数部分, 并向下取整. 不是四舍五入)
关系运算符
Python中的关系运算符,包括<、<=、>、>=、==、!=
- 与C/C++等其他语言不同的是,Python中使用==或!=即可判断两个字符串的内容是否相等
- 不能直接使用==来判断两个浮点数是否相等,因为浮点数在计算机中的表示并不是精确的;
正确的比较方式,判定这两个浮点数的差值是否小于允许的误差范围
逻辑运算符
a < b and b < c 这个操作等价于 a < b < c . 这个设定和大部分编程语言都不相同
赋值运算符
Python中的赋值运算符,包括=、+=、-=、*=、/=、%=、**=、//=、&=、|=、^=、<<=、>>=
# 链式赋值
a = b = 10
# 多元赋值
a, b = 10, 20
利用多元赋值完成两个变量的交换
a, b = 10, 20
a, b = b, a
print(a) # 20
print(b) # 10