常量和表达式
我们可以使用python来进行一些+ - * / %的一些运算
print(1 + 2 - 3)
print(1 + 2 * 3)
print(1 + 2 / 3)
python中的运算规则与数学当中一致,先乘除后加减,有括号的先计算括号里面的。
形如 1 + 2 - 3 这样是算式, 在编程语言中称为 表达式, 算式的运算结果, 称为 表达式的返回值。
其中 1, 2, 3 这种称为 字面值常量, + - * / 这种称为 运算符 或者 操作符。
需要值得注意的是:在python中,2 / 3 == 0.6666....,而不是0,在C/C++,java中,整数除以整数的结果还是整数,并且会把小数部分舍弃。
而可能又有人出现疑问,为什么 1 + 2/3的结果是1.666666...5而不是1.666666....7,是因为在编程运算中,一般没有“四舍五入”这样的规则,在IEEE754标准下,在内存中表示浮点数的时候,可能会出现微小的误差。
变量
变量可以被认为是一块能够容纳数据的空间。
变量命名规则
1.变量命名必须由数字,字母,下划线构成,不能包含其他特殊符号
2.数字不能作为开头
3.变量名不能和Python的‘关键字’重复
4.变量名大小写敏感. num 和 Num 是两个不同的变量名
非必须规则:变量名使用有描述性的单词来表示, 尽量表达出变量的作用.
变量的类型
变量里面存储的不仅仅是数字, 还可以存储其它种类的数据. 为了区分不同种类的数据, 我们引入了 "类型" 这样的概念。
python中变量的类型,不需要在定义变量的时候显式声明而是依靠初始化语句,根据初始化的值的类型进行确定的。
(1)整数
a = 10
print(type(a))
Python 的 int 类型变量, 表示的数据范围是没有上限的. 只要内存足够 大, 理论上就可以表示无限大小的数据,因此在python中就没有long这样的类型了。
(2)浮点数
b = 0.3
print(type(b))
python和 C++ / Java 等语言不同, Python 的小数只有 float 一种类型, 没有 double 类型. 但是实际上 Python 的 float 就相当于 C++ / Java 的 double, 表示双精度浮点数。
一个二进制位,称为一个bit,8个bit放在一起就是一个字节。
(3)字符串
e = 'h'
print(type(e))
c='hell0'
print(type(c))
使用 ' ' 或者 " " 引起来的, 称为 字符串. 可以用来表示文本
Python和C/C++,不同的是,只有字符串类型,因此单个字符,也是字符串类型。
如果字符串里包含了双引号,我们就用单引号引起来,反之则用双引号引起来,如果既包含双引号又包含单引号,就使用三引号''' """括起来。
(4)布尔
布尔类型是一个特殊的类型, 取值只有两种, True (真) 和 False (假)。
多类型的意义
(1) 类型决定了数据在内存中占据多大空间
(2) 类型其实约定了能对这个变量做什么样的操作.
int/float类型能够进行 + - * /等操作,但不能使用len
str类型能进行+ 操作,但不能进行- * /等,可以使用len
动态类型和静态类型
动态类型:运行过程中,变量的类型可能会发生改变。
静态类型:程序运行过程中,变量的类型始终不变。
输入输出
num = input("请输入一个整数:")
print(type(num))
值得注意的是:input返回的值是str类型。
如果我们要将得到的input返回值进行运算,就需要将它转换成int类型。int()。
a = input('请输入第一个整数: ')
b = input('请输入第二个整数: ')
a = int(a)
b = int(b)
print(f'a + b = {a + b}')
print(f 'a = {a}') ,这个语法叫做格式化字符串,f-string此处的f表示“format”,此时就可以使用{ }这样的语法,往字符串里嵌入变量或者表达式。
运算符
(1)算术运算符
像 + - * / % ** // 这种进行算术运算的运算符, 称为算术运算符。
我们重点介绍一下//运算符。
// 地板除法(取整除法),会针对计算的结果进行“向下取整”。
print(7//2)
print(-7//2)
(2)关系运算符
像 < >= == != 这一系列的运算符称为 关系运算符, 它们是在比较操作数之间的关系。
1.关系运算符对应的表达式,值是布尔类型
表达式符合要求,为真
不符合要求,为假
2.关系运算符不光可以针对数字进行比较,还能够比较“字符串”
字典序!先看首字母,首字母越靠前就越小。小写字母大于大写字母。也可以看相关的ASII码值。a的值为:97,A的值为:65。首字母相等就依次向后比较。
(3)逻辑运算符
and 并且 两侧操作数均为True,最终结果也为True,否则为False。(一假则假)
or 或者 两侧操作数均为False,最终结果为False,否则为True。(一真则真)
not 逻辑取反 操作数本身为False,结果为True。操作数本身为True,结果为False。
短路求值
对于and操作来说,如果左侧表达式为False,那么结果也就为False,右侧表达式就不必求值。
对于or操作来说,如果左侧表达式为True,那么结果也就为True,右侧表达式就不必求值。
总结:
在Python中,报错通常有两种情况
1.语法错误,在程序运行前,Python解释器,就能把错误识别出来。
2.运行错误,在程序运行之前,识别不了的代码,必须要执行到相应代码,才能发现问题。
如果把布尔类型的值和整数进行算术运算,此时就会把True当作1,False当作0。
在Python中,一个语句写完了之后,可以加上分号,也可以不加。通常情况下都是不加的。
如果把多个语句写到了同一行,这个时候语句就要加上分号。