目录
一.变量
1.1Python是弱类型语言
1.2使用print函数输出变量
1.3变量的命名规则
1.4Python的关键字
二.运算符
2.1 赋值运算符
2.2 算术运算符
2.3 位运算符
2.4 扩展后的赋值运算符
2.5 索引运算符
2.6 比较运算符与bool类型
2.7 逻辑运算符
2.8 三目运算符
2.9 in 运算符
2.10 运算符的结合性和优先级
1、变量
1.1Python是弱类型语言
Python是弱类型语言,弱类型语言有两个典型特征。
变量无须声明即可直接赋值:对一个不存在的变量赋值就相当于定义了一个新变量
变量的数据类型可以动态改变:同一个变量可以一会儿被赋值为整数值,一会儿被赋值为字符串
在交互式解释器中输入:
如果想查看此时 a 的类型,可以使用Python的type()函数。
在交互式解释器中输入:
此时可以看到 a 的类型是str。
转换成真正的 Python 程序
#定义一个数值类型变量
a = 5
print(a)
print("第一个a的类型是%s"%type(a))
a = "Hello Python!!!"
print(a)
print("第二个a的类型是%s"%type(a))
运行上面的程序,没有任何的问题,可以看到如下输出结果。
1.2使用print函数输出变量
前面使用的print()函数时都只输出了一个变量,但实际上它完全可以同时输出多个变量,而且它还具有丰富的功能。来,我们一起来看看吧:
userName = 'Jake'
userAge = 18
#同时输出多个变量和字符串
print("姓名:",userName,"年龄:",userAge)
运行上面代码,可以看到如下输出结果。
1.3变量的命名规则
Python 需要使用标识符给变量命名,其实标识符就是用于给程序中变量、类、方法命名的符号(简单来说,标识符就是合法的名字)。Python语言的标识符必须以字母、下划线开头,后面可以跟任意数目的字母、数字和下划线。此处的字母并不局限于26个英文字母,可以包含中文字符等等。
由于Python3支持UTF-8字符集,因此Python3的标识符可以使用UTF-8所能标识的多种语言的字符,Python言语是区分大小写的因此abc和ABC是两个不同的标识符。
在使用标识符时,需要注意如下规则:
标识符可以由字母、数字、下划线组成,其中数字不能打头。
标识符不能是Python关键字,但可以包含关键字。
标识符不能包含空格。
1.4Python的关键字
Python还包含一系列关键字和内置函数,一般不建议使用它们作为变量名。
如果开发者尝试使用关键字作为变量名,Python解释器会报错。
如果开发者使用内置函数的名字作为变量名,Python解释器是不报错的,只是该内置函数就被这个变量给覆盖了,该内置函数就不能使用了。
实际上Python非常方便,开发者可以通过Python程序来查看它所包含的关键字。例如:
从上面可以看出,程序只要先导入keyword模块,然后再调用keyword.kwlist即可查看Python包含的所有关键字。运行上面的程序,可以看到如图结果。
上面的这些关键字都不能作为变量名。
二、常用运算符
运算符是一种特殊的符号,用来表示数据的运算、赋值和比较等。Python 语言使用运算符将一个或多个操作数链接成可执行语句,用来实现特定功能。
Python 语言中的运算符可分为如下几种:赋值运算符、算术运算符、位运算符、索引运算符、比较运算符、逻辑运算符。
2.1 赋值运算符
赋值运算符用于为变量或常量指定值,Python 使用 “=” 作为赋值运算符。通常,使用赋值运算符将表达式的值赋给另外一个变量。例如如下代码。
#为变量a赋值为11
a = 11
#为变量b赋值为11.23
b = 11.23
#为变量book赋值为True
book = True
除此之外,也可使用赋值运算符将一个变量的值符给另一个变量,例如,如下代码也是正确的:
#将变量a 的值符给 a2
a = a2
print(a2)
也可一像这样子赋值
a = b = c = 20
还可以将表达式的值赋给变量:
d1 = 12.34
#将表达式的值赋给d2
d2 = d1 + 5
#输出 d2 的值
print("d2 的值为: %d"%d2 ) #17.34
2.1 赋值运算符
Pytohn 支持所有的基本算术运算符,这些算术运算符用于执行基本的数学运算,如加、减、乘、除和求余等。下面用代码演示。
+:加法运算符
a = 5.2
b = 3.1
sum = a + b
# sum的值为8.3
print("sum 的值为:%g"%sum)
除此之外,“+”嗨可以作为字符串的链接运算符。例如:
s1 = "Hello "
s2 = "Python !"
#使用+连接两个字符串
print(s1 + s2)
‘-’: 减法运算符。例如:
c = 5.2
d = 3.1
sub = c - d
#sub的值为2.1
print("sub 的值为:%g"%sub)
‘*’:乘法运算符。例如:
e = 5.2
f = 3.1
multiply = e * f
print("multiply 的值为:%g"%multiply)
此外,“ * ”还可以作为覅富川的连接运算符,表示将N个字符串连接在一起。例如:
s3 = "Python"
#将5个字符串连接在一起
print(s3 * 5)
“/ 或 //”:除法运算符。“ / ”表示普通除法,使用它除出来的结果与平常数学计算的结果是相同的;而“ // ”表示整除,使用它除出来的结果只有整数部分,小数部分将会被舍弃。例如:
print("19/4的结果是:",19/4)
print("19//4的结果是:",19//4)
aa = 5.2
bb = 3.1
print("aa/bb 的值是:", aa/bb)
print("aa//bb 的值是:", aa//bb)
此外,Python不允许0作为除数,否则将会引发ZeroDivisionError错误。
“ % ”:求余运算符。Python 不要求求余运算符的两个操作数都是整数,P樱桃红的求余运算符完全支持对浮点数求余,求余运算符的结果不一定总是整数,它是使用第一个操作数来除以第二个操作数,得到一个整数的结果后剩下的值就是余数。
由于求余运算符也需要进行除法运算,因此求余运算的第二个操作数为0,否则程序会报出ZeroDivisionError错误。例如如下程序:
print("5%3 的值为:",5 % 3)
print("5.2%3.1 的值为:",5.2%3.1)
print("-5.2%-3.1 的值为:"-5.2%-3.1)
print("5.2%-2.9 的值为:",5.2%-2.9)
print("5.2%-1.5 的值为:",5.2%-1.5)
print("-5.2%1.5 的值为:",-5.2%1.5)
print("5对0的求余结果为:",5%0) #导致错误
" ** "乘方运算符。Python 支持使用“ ** ”作为乘方运算符,这是一个使用非常方便的运算符。由于开方其实事乘方的逆运算,因此实际上使用“ ** ”也可进行开方运算。例如下代码:
print("4 的2次方:",4 ** 2)
print("5 的3次方:",5 ** 3)
print("4 的开平方:",4 ** 0.5)
print("27 的开三次方:",27 ** (1 / 3))
2.3位运算符
略
2.4 扩展后的赋值运算符
赋值运算符可以与算术运算符等结合,扩展成功更加强大的运算符。扩展后的赋值运算符如下。
+= :对于 x += y ,即对应于x = x + y
-= :对于 x -= y ,即对应于x = x - y
*= :对于 x *= y ,即对应于x = x * y
/= :对于 x /= y ,即对应于x = x / y
//= :对于 x //= y ,即对应于x = x // y
%= :对于 x %= y ,即对应于x = x % y
**= :对于 x **= y ,即对应于x = x ** y
&= :对于 x &= y ,即对应于x = x & y
|= :对于 x |= y ,即对应于x = x | y
^= :对于 x ^= y ,即对应于x = x ^ y
<= :对于 x <= y ,即对应于x = x < y
>= :对于 x >= y ,即对应于x = x > y
只要能使用扩展后的赋值运算符,通常都推荐使用这种赋值运算符。
2.5 索引运算符
略
2.6比较运算符与bool类型
比较运算符用于判断两个值之间的大小,比较运算的结果事bool值(True代表真,Fales代表假)。如下:
>:大于,如果运算符前面的值大于后面的值,则返回True;否则返回False。
>=:大于等于,如果运算符前面的值大于或等于后面的值,则返回True;否则返回False。
<:小于,如果运算符前面的值小于后面的值,则返回True;否则返回False。
<=:小于等于,如果运算符前面的值小于或等于后面的值,则返回True;否则返回False。
==:等于,如果运算符前面的值等于后面的值,则返回True;否则返回False。
!=:不等于,如果运算符全面的值不等于后面的值,则返回True;否则返回False。
is:判断两个变量所引用的对象是否相同,如果相同则返回True。
is not:判断两个变量所引用的对象是否不相同,如果不相同则返回True。
#输出True
print("5是否大于4:",5 > 4)
#输出False
print("5是否大于6:",5 > 6)
#输出True
print("20是否大于等于20.0:",20 >= 20.0)
#输出True
print("5是否等于5.0:",5 = 5.0)
#输出False
print("True 和 False 是否相等:",True == False)
2.7 逻辑运算符
逻辑运算符用于操作 bool 类型的变量、常量或表达式,逻辑运算的返回值也是 bool 值。
Python 的逻辑运算符有如下三个:
and:与,前后两个操作数必须都是 True 才返回 True;否则返回 False。
or:或,只要两个操作数中有一个是 True,就可以返回 True;否则返回 False。
not:非,只需要一个操作数,如果操作数为 True ,则返回 False;如果操作数为 False,则返回 True。
例如:
#直接对 False 求非运算,将返回True
print("not False")
#5>3返回True,20.0大于10,因此返回 True
print("5 > 3 and 20.0 > 10")
#4>=5返回False,"c" > "a" 返回 True,求或后返回 True
print("4 >= 5 or "c" > "a" ")
2.8 三目运算符
Python 可通过 if 语句来实现三目运算符的功能,因此可以近似地把这种 if 语句当成三目运算符。
举例:
a = 5
b = 3
if a > b:
print("a大于b")
else:
print("a不大于b")
2.9 in 运算符
Python提供了 in 运算符,用于判断某个成员是否位于序列中。
除 in 运算符外,Python 也提供了 in 的反义词: not in 。
例如如下代码:
s = "openlab"
print("'open' in s") #True
print("'open' not in s") #False
print("'openo' in s") #False
print("'openo' not in s") #True
2.10 运算符的结合性和优先性
所有的数学运算都是从左向右进行的,Python 语言中的大部分运算符也是从左向右结合的,只有单目运算符、赋值运算符和三目运算符例外,他们是从右向左结合的,也就是说,它们是从右向左运算的。
乘法和加法是两个可结合的运算符,也就是说,这两个运算符左右两边的操作数可以互换位置而不会影响结果。
运算符有不同的优先级,所谓优先级就是在表达式中的运算顺序。