前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >ESP8266上的MicroPython入门(4)

ESP8266上的MicroPython入门(4)

作者头像
云深无际
发布2021-04-14 14:20:31
5910
发布2021-04-14 14:20:31
举报
文章被收录于专栏:云深之无迹云深之无迹

本小节主要说明MicroPython的运算符。举个简单的例子 4 +5 = 9 , 例子中,4 和 5 被称为操作数,"+" 称为运算符。

算术运算符

运算符

名称

说明

例子

+

两个对象相加

3 + 5得到8。'a' + 'b'得到'ab'。

-

定义一个负数,或两个对象相减

-5.2,或50-24得到26。

两数相乘或返回一个被重复若干次的字符串、列表、元组等

2∗3得到6。'la'∗3得到'lalala'。

/

x除以y

4 / 3得到1.333333。6.0/2.0得到3.0。

//

取整除

返回商的整数部分

4 // 3得到1。

%

取模

返回除法的余数

8 % 3得到2。-25.5 % 2.25得到1.5。

∗∗

返回x的y次幂

2∗∗3得到8(即 2∗2∗2)。

示例:

代码语言:javascript
复制
>>> print(3 + 5, 'a' + 'b') # x + y
8 ab
>>> print(-5.2) # - x
-5.2
>>> print(50 - 24) # x - y
26
>>> print(2 * 3, 'la' * 3)  # x * y
6 lalala
>>> print(4 / 3, 6.0 / 2.0) # x / y
1.333333 3.0
>>> print(4 // 3) # x // y
1
>>> print(8 % 3, -25.5 % 2.25) # x % 3
2 1.5
>>> print(2 ** 3) # x ** y
8

位运算符

位运算符是把数字看作二进制来进行计算的,如5的二进制位为0101。

运算符

名称

说明

例子

<<

左移

把<<左边的运算数的各二进制位全部左移若干位(由<<右边的数指定移动的位数),高位丢弃,低位补0

2 << 2得到8(即0010左移两位,右边补0,结果为1000)

>>

右移

把>>左边的运算数的各二进制位全部右移若干位,(由>>右边的数指定移动的位数 ),低位丢弃,高位补0

11 >> 1得到5(即1011右移一位,左边补0,结果为0101)

&

按位与

参与运算的两个值,如果相应的两个位都为1,则对应位按位与运算的结果为1,否则为0

5 & 3得到1(即0101 & 0011,结果为0001)

按位或

两个数对应的二进制位有一个为1时,则对应位按位或运算的结果为1,否则为0

5︱ 3得到7(即0101︱0011,结果为0111)

^

按位异或

两个数对应的二进制位不相同时,则该对应位按位异或运算的结果为1,否则为0

5 ^ 3得到6(即0101^0011,结果为0110)

~

按位取反

每个二进制位取反,即把1变为0,把0变为1。~x 类似于 -x-1

~5得到-6(0101, 在一个有符号二进制数的补码形式。)

示例:

代码语言:javascript
复制
>>> print(2 << 2) # x << y
8
>>> print(11 >> 1) # x >> y
5
>>> print(5 & 3) # x & y
1
>>> print(5  | 3) # x | y
7
>>> print(5 ^ 3) # x ^ y
6
>>> print(~5) # ~x
-6

比较运算符

运算符

名称

说明

例子

<

小于

返回x是否小于y。若为真返回True,为假返回False

5<3返回False,3<5返回True

>

大于

返回x是否大于y

5>3返回True

<=

小于等于

返回x是否小于或等于y

3<=4返回True

>=

大于等于

返回x是否大于或等于y

4>=6返回False

==

等于

比较是否相等

'str'=='stR'返回False

!=

不等于

比较是否不相等

'str'!='stR'返回True

示例:

代码语言:javascript
复制
>>> print(5<3) # x < y
False
>>> print( 5 > 3) # x > y
True
>>> print( 3 <= 4) # x <= y
True
>>> print(4 >= 6) #x >= y
False
>>> print('str' == 'stR') # x== y
False
>>> print('str' != 'stR') # x != y
True

逻辑运算符

运算符

名称

说明

例子

not

布尔“非”

not x;如果x为True,返回False,否则返回True

x=True;not x返回False

and

布尔“与”

x and y;x,y都为True返回True,否则返回False

x=False;y=True;x and y;由于x是False,返回False。

or

布尔“或”

x or y;x或y至少一个为True,返回True,否则返回False

x=True;y=False;x or y返回True。

示例:

代码语言:javascript
复制
  >>> print(5 < 3) # not x
False
>>> x = (5 < 3)
>>> print(not x)
True
>>> x = False #  x and y
>>> y = True
>>> print(x and y)
False
>>> x = True # x or y
>>> y = False 
>>> print(x or y)
True
赋值运算符

算术运算符和简单的赋值运算符“=”结合可构成复杂的赋值运算符。

运算符

描述

例子

=

简单的赋值运算符

c = 10 将10赋值给c

+=

加法赋值运算符

c += a 等效于 c = c + a

-=

减法赋值运算符

c -= a 等效于 c = c - a

∗=

乘法赋值运算符

c ∗= a 等效于 c = c ∗ a

/=

除法赋值运算符

c /= a 等效于 c = c / a

%=

取模赋值运算符

c %= a 等效于 c = c % a

∗∗=

幂赋值运算符

c∗∗= a 等效于 c = c ∗∗ a

//=

取整除赋值运算符

c //= a 等效于 c = c//a

示例:

代码语言:javascript
复制
>>> c = 10    # = 
>>> print(c)
10
>>> c += 2    # +=
>>> print(c)
12
>>> c -= 2   # -=
>>> print(c)
10
>>> c *= 2   # *=
>>> print(c)
20
>>> c /= 2   # /=
>>> print(c)
10.0
>>> c %= 3   # %=
>>> print(c)
1
>>> c = 10 
>>> c **= 2   # **=
>>> print(c)
100
>>> c //= 10   # //=
>>> print(c)
10

注意: 赋值运算符是一个整体,中间不能有空格,否则出错。 示例:

代码语言:javascript
复制
>>> c = 10
>>> print(c)
10
>>> c - = 2
Traceback (most recent call last):
  File "<stdin>", line 1
SyntaxError: invalid syntax

if语句

if语句用来判断当某个条件成立(非0或为True)时,执行下一个语句。常与else一起使用,表示除if判断条件之外的其他情况。 示例:

代码语言:javascript
复制
>>> num = 130
>>> if num%2 == 0:
...   print(num, "is a even number")
... else:
...   print(num, "is a odd number")
... 
130 is a even number

注意: 可以有多个elif,else是可选的。elif是“else if”的缩写,对于避免过多的缩进非常有用,else与它最近的前一个if或elif匹配。 示例:

代码语言:javascript
复制
>>> x = 32
>>> if x < 0:
...   print("Negative changed to zero")
... elif x == 0:
...   print("Zero")
... elif x == 1:
...   print("Single")
... else:
...   print("More")
... 
More

注意: 由于MicroPython严格的缩进格式,为避免出错,最好用空格键进行缩进。 示例:

代码语言:javascript
复制
>>> x = 32
>>> if x > 0:
...   print("x > 0")
... print("hello")
... else:
...   print("x <= 0")
... 
Traceback (most recent call last):
  File "<stdin>", line 3
SyntaxError: invalid syntax

1.2.4.2 while语句

while语句用于循环执行程序,即在某条件下,循环执行某段程序。 示例:

代码语言:javascript
复制
>>> i = 5
>>> while i > 0:
...   print(i)
...   i = i-1
...

for语句

for语句用于循环执行程序,并按序列中的项目(一个列表或一个字符串)顺序迭代。 示例:

代码语言:javascript
复制
>>> words = ['www', 'DFRobot', 'com', 'cn']
>>> for w in words:
...   print(w, len(w))
... 
www 3
DFRobot 7
com 3
cn 2

如果需要在for循环内修改迭代的顺序或条件,可以在for循环中增加条件判断。 示例:

代码语言:javascript
复制
>>> words = ['www', 'DFRobot', 'com', 'cn']
>>> for w in words:
...   if len(w) < 7:
...     print(w)
...     
...     
... 
www
com
cn
range()函数

如果你需要遍历一系列的数字,可以使用内置函数range()。 示例:

代码语言:javascript
复制
>>> for i in range(4):
...     print(i)
...     
...     
... 
0
1
2
3

break语句

break语句用于退出for或while循环。 示例:

代码语言:javascript
复制
>>> for x in range(2, 10):
...   if x == 5:
...     break
...   print(x)
... 
2
3
4

continue语句

continue语句用于退出for或while语句的当前循环,进入下一次循环。 示例:

代码语言:javascript
复制
>>> for x in range(2, 10): 
...   if x == 5:
...     continue
...   print(x)
... 
2
3
4
6
7
8
9

pass语句

pass语句表示空语句,不做任何事情,一般用作占位语句,用来保持程序结构的完整性。 示例:

代码语言:javascript
复制
>>> for letter in 'hello':
...   if letter == 'l':
...     pass
...     print("This is pass")
...   print("Current letter:", letter)
... 
Current letter: h
Current letter: e
This is pass
Current letter: l
This is pass
Current letter: l
Current letter: o
本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2020-05-22,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 云深之无迹 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 算术运算符
  • 位运算符
  • 比较运算符
  • 逻辑运算符
    • 赋值运算符
    • if语句
    • 1.2.4.2 while语句
    • for语句
      • range()函数
      • break语句
      • continue语句
      • pass语句
      领券
      问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档