Python基础学习
第三章:运算和表达
第三章:运算和表达
前言
上一节我们学习了Python中基本的数据类型,以及初步学习了输入输出函数。这一节我们进入第三章:运算和表达的学习中。
1、运算符
3.1.1、算数运算符
算数运算符是处理四则运算的符号,和数学相同,用来处理数字类型的变量。常见的算数运算符如下:
# "+":加
12.3 + 14
# "-":减
3.8 - 5
# "*":乘
3 * 6.5
# "/":除
9 / 2
# "%":求余,即返回除法的余数
8 % 3
# "//":取整数,即返回除法的商的整数部分
7 // 2
# "**":幂,即x的y次方
5 ** 3
注意:在算数运算符%求余时,如果除数为负数则得到的结果(余数)也是负数。
在使用除法(/)(//)和求余(%)时除数不能为0,否则会抛出错误。
如下:
3/0
3//0
3%0
3.1.2、赋值运算符
赋值运算符即为变量赋值。基本赋值运算符等号“=”,和算术运算符结合即常用的赋值运算符。如下:
# "=":简单赋值
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
注意:编程中经常会出现混淆赋值运算符“=”和等号“==”的用法,每天都有程序员用错,一定要注意!
3.1.3、关系运算符
关系运算符也叫比较运算符。用于对变量或者表达式的大小,真假进行比较。结果为真返回True,结果为假则返回False。常用的关系运算符如下:
#"<":小于
'a'<'b' #True
#">":大于
12>10 #False
#"==":等于
12 == 12 #True
#"!=":不等于
'a'!='c' #True
#"<=":小于等于
10<=8 #False
#">=":大于等于
9>=7 #True
和数学中的关系大同小异,在后面的学习中,比较运算符通常在条件语句中作为判断的依据。
3.1.4、逻辑运算符
逻辑运算符是对真和假两种布尔值进行运算,运算后的结果任然是一个布尔值。三种逻辑运算符如下:
#"and":逻辑与,结合方向:从左到右
p1 and p2
#"or":逻辑或,结合方向:从左到右
p1 or p2
#"not":逻辑非,结合方向:从右到左
not p
和数学中的真假逻辑相同:and同真时为真,or同假时为假,not和原真值相反。
3.1.5、位运算符
位运算符时把数字看做二进制数进行运算的,所以需要先把数据转换为二进制,才能进行位运算。Python中的位运算符有:
a.按位与(&)
b.按位或(|)
c.按位异或(^)
d.按位取反(~)
e.左移位(<<)
f.右移位(>>)
关于位运算符的知识我们先不做深入学习和理解,后边我们会单独出一节来学习关于位运算符的具体知识。这块的知识对于入门学习我们可以先跳过。
2、优先级和条件表达式
3.2.1、运算符的优先级
我们刚才学习了很多运算符,但是和数学中的加减乘除一样,运算时也是有优先级的。Python中的运算规则是:优先级高的先运算,优先级低的后运算,优先级相同则按照从左到右的顺序运算。
运算优先级如下:
高 # ** #幂
| # ~,+,- #取反,正号,负号
| # *,/,%,// #乘,除,取余,取整除
| # +,- #加,减
| # <<,>> #左移位,右移位
| # & #按位与
| # ^ #按位异或
| # | #按位或
低 # <,>,<=,>=,==,!= #比较运算符
注意:编写程序时可以如同数学中使用小括号“()”限定运算顺序,避免运算次序发生错误。
3.2.2条件表达式
编写代码时经常会根据条件表达式的结果进行赋值。我们在这里初步了解if语句。
例一:返回两个数的较小值。
a = 5
b = 8
if a < b:
x = a
else:
x = b
如此便可以将a和b中较小的数赋值给x,但这不是条件表达式,上面的代码可以化简为:
a = 5
b = 8
x = a if a < b else b
这即我们的条件表达式,运算规则是:先计算中间的条件(a<b),结果为真(True)则返回if左边的表达式或值,如果结果为假(False)则返回else右边的表达式或值。
在初步学习一门编程语言时,当学习到条件语句时总会去解决一个问题:闰年判断。
我们同样去用条件表达式去解决这个问题。
判断一个年份是否为闰年的条件是:能被4整除,但是不能被100整除;或者能被400整除。
year = int(input("输入年份:")) # 提示输入要判断的年份
x = "是闰年" if (year % 4 == 0 and year % 100 != 0) or (year % 400 == 0) else "不是闰年"
print(str(year) + "年" + x)
解决这个实际问题对于初学者学习编程时遇到条件判断时非常有价值,希望可以认真学习这种语言的思想。为后边深入学习流程控制打下基础。
总结
本小节我们学习了Python中的运算符一节运算符的优先级,并且初步学习了条件表达式。如果喜欢我的文章,可以点赞收藏,关注我的专栏,我会持续更新Python基础学习的经验。