Day 6 : 数学运算与逻辑判断

今天将会介绍程序中的数学运算,并且学习python的逻辑判断。

数学运算

Python也可以拿来当计算机,以下就先来介绍Python的算术运算子:

+ : 除了拿来运算数值的加法外,还可以用来拼接字串,EX:

a = 1000
b = 102.45
c = '这是'
d = 'Python的字串拼接'

print(a+b) #1102.45
print(c+d) #这是Python的字串拼接

-: 用来做数值的减法
* : 用来做数值的乘法,可以用来复制字串,EX:

a = '复制三遍'
print(a*3) #复制三遍复制三遍复制三遍

/ : 用来做数值的除法
// : 用来求数值的商,EX:

a = 10
b = 3

print(a//b) #3

%: 用来求数值的余数,EX:

a = 10
b = 3

print(a%b) #1

** : 用来求数值的次方,EX:

a = 5
print(a**2) #求5的二次方,输出为25

逻辑判断

在程序语言中,很常会遇到"判断"这件事情,例如判断两个变数有没有相同,相同就做某件事情之类的,那若我们要写判断式需要怎麽写呢,这时候就要用到If这个功能了。下面就来看几个简单的例子:
https://ithelp.ithome.com.tw/upload/images/20210919/20138060Dt7ykloNpe.png
我让a这个变数等於0,b等於1,并且使用if来判断是否相等,若相等就会进入if,回传"挖 它们相等",若不相等就会进入else,回传"挖 它们不相等",结果应该大家都知道了
https://ithelp.ithome.com.tw/upload/images/20210919/20138060qWTtVfSyMw.png
挖 他们不相等(((
我们可以发现几件事情:
首先,判断式从if起头,後面空一格後接着判断的条件,并且判断要用两个等号来表示,并且後面接着一个冒号。记得前面提到的层级关系吗,判断式也适用,所以必须缩排(层级关系其实就是大括号,Python省略了大括号所以必续用缩排的方式代表。),缩排後要放的就是条件成立後要做的事情。
若不符合此条件要做别的事情的话,需要使用else,else就是其它的意思,因此,else在同一层级只能存在一个。
有些人就会问说,如果有很多条件该怎麽办,一直if下去吗?
是可以这样啦,不过个人比较建议利用elif来做条件选择,如下:
https://ithelp.ithome.com.tw/upload/images/20210919/20138060DI48iOiSQU.png
程序由上至下,由左至右执行,所以当看到if不成立时,会判断elif,结果发现成立,印出"挖 d是c的两倍"。
话说,判断式只能用==判断吗?当然不是,以下会列出常见的判断运算子,并举几个例子说明:
== :相等
!= :不相等
>=:大於等於
<=:小於等於
又会有人问了,如果我要判断两个以上的条件该怎麽办呢,要写一堆判断式一层一层判断吗?
当然,你可以这样做,可是这样不仅会让程序码繁杂,对於电脑也是不好的,所以这时候就需要用到逻辑闸的概念了。

逻辑闸

逻辑闸本身是用在电晶体上,藉由电晶体开关的组合来达到一些功能,下面会介绍对於python比较重要的三个逻辑闸:逻辑闸本身是用在电晶体上,藉由电晶体开关的组合来达到一些功能,下面会介绍对於python比较重要的三个逻辑闸:
NOT
https://ithelp.ithome.com.tw/upload/images/20210919/20138060tjRra7huoG.png
NOT其实就是反向的意思,输入给1,输出就为0,反之。
OR
https://ithelp.ithome.com.tw/upload/images/20210919/20138060hsExtJtNY9.png
OR代表者当输入有一个1时,输出就必为1,意思是输入要全为0,输出才会为0,类似加法的感觉。
AND
https://ithelp.ithome.com.tw/upload/images/20210919/20138060k4O7duGehC.png
OR代表者当输入有一个0时,输出就必为0,意思是输入要全为1,输出才会为1,类似乘法的感觉。

你一定会想问,我学这实体的东西要干嘛,我不是在写程序吗,下面直接拿一个例子来让读者看看逻辑闸概念在程序上的应用。

a = 1
b = 1
c = 0
if a==b and a==c:
	print("OAO")
else:
	print("OuO")

这时候,AND就发挥作用了,有人知道会输出什麽吗?

答案是会输出"OuO",原理如下:

判断式a==b成立,输出为1,可是後面利用一个AND做判断,所以当整句判断是有输出为0(不成立)时,整个输出就会为0(不成立),因此,a==c不成立,输出为0,整个输出为0,所以条件不成立,程序就跳过if去做else了。
我们再看一个例子

a = 1
b = 1
c = 0

if a == b or a != c:
	print("OAO")
else:
	print("OuO")

a == b成立,输出为1,a != c成立,输出为1(因为a的确不等於c),利用or判断,有一个1则输出为1,所以理所当然的在if中判断正确,输出为"OAO"。


<<:  Golang 转生到web世界 - curl

>>:  Leetcode 207. Course Schedule | 含C++笔记

学习javascript前...HTML3

学习html就是在学习如何使用标签,所以我现在要来了解各个标签的意思以及如何使用。 1.< t...

Day23 - 静态模型 part1 (MLP)

完整的语音情绪辨识系统流程如图 1。语音讯号先经过特徵撷取的过程撷取出声学特徵,再将声学特徵进行前处...

D-22. 继承(继承链问题)、模组(extend、include、prepend差异) && Add to Array-Form of Integer

继承(Inheritance) class A < B,<就是继承,A继承B。 Ruby...

Day 01 前言

这次有幸能藉由铁人赛重新认识及学习Arm的相关技术, 以下为这次参赛的课题以及时程(会再陆续更新完成...

计算机概论 - 资料抽象化 data abstractions

除了连续储存的储存方式之外,本章将探讨电脑主记忆体其他存放资料的方式,所以主题会是资料结构,而其目的...