Python和其他语言一样,每一个表达式都有一个值,下面是python的一个表达式语句
print(1 + 2 - 3)
print(1 + 2 * 3)
print(1 + 2 / 3)
观察上述结果,我们可以发现如下的特点
stdio.h
不同- python语言中的
/
不是整除,而是和数学中的除法一样- 运算符和数字之间保留空格会更加美观
示例
下面代码用来求小数的平均值
print((1.1 + 2.2 + 3.3 + 4.4) / 4)
和其他语言一样,python也支持定义变量来存储数据,变量是存储数据的容器。
示例
给定四个分数, 67.5, 89.0, 12.9, 32.2 , 编写代码, 求这四个分数的方差.
PS: 方差的计算过程: 取每一项, 减去平均值, 计算平方, 再求和, 最后除以 (项数 - 1)
average = (67.5 + 89.0 + 12.9 + 32.2) / 4
total = (67.5 - average) ** 2 + (89.0 - average) ** 2 + (12.9 - average) ** 2 + (32.2 - average) ** 2
result = total / 3;
在上述例子中我们使用了变量average
、total
、result
记录平均值、平方的和、方差
注意
变量可以视为是一块能够容纳数据的空间. 这个空间往往对应到 “内存” 这样的硬件设备上.
PS:我们可以将内存假象为一栋宿舍楼,每一个在内存中定义的变量就是宿舍楼中的每一个房间。宿舍楼空间越大,楼栋中的房间越多;内存的空间越大,可以定义的变量越多。所以衡量内存的一个重要指标使内存空间的大小
a = 1
b = 1.2
c = 'a'
=
为赋值运算符,表示将=
右边的数据存放在左侧的空间中**注意:**变量的命名需要遵循一些要求
硬性要求:
软性要求
和大多数语言不同,python语言中并没有限制变量名的长度
读取变量的值
a = 10
print(a)
写入变量的值
a = 10
a = 20
注意:python中写入变量也使用=
,这和定义变量没有区别
可以使用一个变量写入另一个变量
a = 10
b = a
print(a)
print(b)
前面说过,python和其他语言不同,定义变量时不需要显示写出变量的类型,这并不意味着python中变量没有类型,而是运行时会根据=
右边操作数的类型决定变量的类型
可以使用type()
函数观察变量的类型
整形
a = 10
print(type(a))
浮点型
b = 10.2
print(type(b))
字符串
c = 'hello'
print(type(c))
‘’
和“”
括起来没有区别,‘hello’等价于“hello”可以使用 len 函数来获取字符串的长度
print(len(c))
可以使用+
来连接字符串
print('hello ' + 'world')
PS:关于字符串还有很多常用的功能,这里不一一介绍了
布尔
布尔类型是一个特殊的类型, 取值只有两种, True (真) 和 False (假)
a = True
print(type(a))
b = False
print(type(b))
其他
python语言中还有list,map,dict,tuple等自定义类型,我们后续介绍
类型决定了变量在内存中占据了多大的内存空间
例如float占据8字节,int占据4字节
类型决定了可以对该变量所能执行的操作
例如可以对int/float类型数据进行+ - * /,但是只能对str类型进行+
总结 类型系统其实是在对变量进行 “归类”. 相同类型的变量(数据) 往往具有类似的特性和使用规则.
在 Python 中, 一个变量是什么类型, 是可以在 “程序运行” 过程中发生变化的. 这个特性称为 "动态类型
a = 10
print(type(a))
a = 'hello'
print(type(a))
C/C++语言定义变量后该变量的类型就固定了,这种语言具有静态类型特征
动态类型特性是一把双刃剑.
注释是一种特殊的代码, 它不会影响到程序的执行, 但是能够起到解释说明的作用, 能够帮助程序猿理解程序代码的执行逻辑.
PS:PS: 写代码是一件比较烧脑的事情, 读代码同样也非常烧脑. 相比于一板一眼的代码, 一些口语化的
描述能更好的帮助程序猿理解程序.
# 计算 4 个数字 67.5, 89.0, 12.9, 32.2 的方差
avg= (67.5+89.0+12.9+32.2) /4
total= (67.5-avg) **2+ (89.0-avg) **2+ (12.9-avg) **2+ (32.2-avg) **2
result=total/3
print(result)
形如上述代码, 如果没有注释, 直接阅读, 是不容易 get 到代码的含义是计算方差. 但是通过加了一行注释解释一下, 就让人一目了然了.
PS: 代码的第一目标是容易理解, 第二目标才是执行正确.
写注释不光是为了方便别人来理解, 也是方便三个月之后的自己理解.
Python中有两种注释风格
(1) 注释行
使用 # 开头的行都是注释.
# 这是一个行注释
(2)文档字符串
"""
这是文档字符串
这是文档字符串
""""
程序需要和用户进行交互.
输入输出的最基本的方法就是控制台. 用户通过控制台输入一些字符串, 程序再通过控制台打印出一些字
符串.
Python 使用 print 函数输出到控制台.
print('hello')
a=10
print(a)
b=True
print(b)
如果我们想要输出混合字符串和变量就需要使用如下方式
num = 10
print(f'num = {num}')
注意:
python 使用 input 函数从控制台读取用户的输入.
num=input('请输入一个整数: ')
print(f'你输入的整数是{num}')
注意:
input的参数信息是一个“提示信息”,可以没有
input返回值是用户输出的内容,是字符串类型
a = input('请输入第一个数')
b = input('请输入第二个数')
print(f'a + b = {a + b}')
若想要执行算术运算,则需进行类型转换
a = input('请输入第一个数')
b = input('请输入第二个数')
a = int(a)
b = int(b)
print(a + b)
通过 int( ) 把变量转成了 int 类型.
类似的, 使用 float( ), bool( ), str( ) 等可以完成对应的类型转换.
像+ - * ** / // %
这种进行运算的符号,被称为算术运算符
注意:
/
的右操作数不可以是0,否则会抛出异常/
和数学中的除法运算性质一摸一样,1/3
的结果为0.333333
//
是整除,得到的结果为整数,1//3
的结果为0
%
是取模运算,操作数必须是整数
**
是乘方运算,操作数可以是小数
> >= < <= == !=
这一系列运算符为关系运算符,他们是在比较操作数之间的关系
如果符合该关系,则返回True,否则返回False
关系运算符不光针对整形/浮点数,还能针对字符串进行比较
a = 'hello'
b = 'world'
print(a < b)
print(a <= b)
print(a > b)
print(a >= b)
print(a == b)
print(a != b)
注意:
直接使用== !=
判断字符串是否内容一样(不同于C/C++)
字符串比较大小是根据字典序规则进行的
浮点数不要使用==
来判断是否相等(计算机中存储的浮点数是由误差的)
print(0.1)
print(0.2)
print(0.1 + 0.2)
像and or not
这一些列的运算符称为逻辑运算符
操作符 | 结果 |
---|---|
and | 左右操作数都为True结果为True,否则为False |
or | 左右操作数都为False结果为False,否则为True |
not | 操作数为True结果为False,否则为True |
a=10
b=20
c=30
print(a < b and b < c)
print(a < b and b > c)
print(a > b or b > c)
print(a < b or b > c)
print(not a < b)
print(not a > b)
运行结果
特殊写法
a < b and b < c
等价于a < b < c
短路效应
print(10 > 20 and 10 / 0 == 1)
print(10 < 20 or 10 / 0 == 1)
上述结果为抛出异常,说明没有执行``10 / 0
,说明了
and,or`具有短路效应
(1.)=
的使用
注意区分
=
和==
的区别
链式赋值
a = b = 10
多元赋值|
a, b = 10, 20
代码实例
基础写法
a = 1
b = 2
tmp = a
a = b
b = tmp
print(f"{a},{b}")
多元赋值
a = 1
b = 2
a,b = b, a
print(f"{a},{b}")
(2)复合赋值运算符
python还有一些复合赋值运算符,例如+= -= *= /= %=
a = 10
a = a + 1
print(a)
b = 10
b += 1
print(b)
**注意:**像 C++ / Java 中, 存在 ++ – 这样的自增/自减运算符. Python 中则不支持这种运算. 如果需要使用,
则直接使用 += 1 或者 -= 1