ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

03>>>基本运算符

2021-09-16 03:32:50  阅读:194  来源: 互联网

标签:基本 03 运算符 name2 name1 print 内存地址 赋值


03.基本运算符

  现在来了解一下python中的基本运算符

 

1.算术运算符

  加减乘除自不必说,次方和整除该怎么搞呢?

# print(2 ** 3)  # 8
# print(9 // 2) # 4

01.数学运算符

 

2.比较运算符

print(1 > 2)  # False
print('hello' > 'world')  # False

02.比较运算符

  字符串也可以进行比较,不过比较的时候是按照对应的数字比较。 A~Z:65~90 a~z:97~122

 

3.增量赋值

x = 10
x = x + 1  # 等价于 x += 1
x = x - 10  # 等价于 x -= 10
x = x * 20  # 等价于 x *= 20
x = x / 10  # 等价于 x /= 10

03.增量赋值1

04.增量赋值2

05.增量赋值3

06.增量赋值4

  增量赋值的设计初衷是为了简化代码。

 

4.链式赋值

  若x = 'jason',现在想让变量y和z也变成'jason',该怎么做?

x = 'jason'
y = x
z = x
print(x)
print(y)
print(z)

07.非链式复制

  这当然是正确答案,但是有另一种叫做链式赋值的方法可以大大简化代码:

x = y = z = 'jason'
print(x)
print(y)
print(z)

08.链式复制

 

5.交叉赋值

  现在来做一道题:已知m = 10,n = 20,若想要更改变量成m =20,n=10,该怎么做?

方式1 中间变量

tmp = m
m = n
n = tmp
print(m,n)

09.中间变量

  这当然是正确答案,但还有一种方法可以大大简化代码。

方式2 交叉赋值

m, n = n, m
print(m, n)

10.交叉赋值

 

6.解压赋值

  已知列表stu_name = ['jason', 'kevin', 'tony'],现在要将列表中的每一个数据都取出来分别赋值给3个变量,应该怎么做?

name1 = stu_name[0]
name2 = stu_name[1]
name3 = stu_name[2]
print(name1)
print(name2)
print(name3)

11.挨个解压

  如果使用解压赋值,那么一行代码就能搞定了:

name1, name2, name3 = stu_name
print(name1, name2, name3)

12.解压赋值

  需要注意的是:默认情况下左右两边要保持相同的个数。

  也就是说列表里有几个元素,解压赋值时就要解压给几个变量,每个变量各接收一个元素。

  那如果有一个列表里有一万个元素,而我只想从其中选取其中几位明确序数的元素,岂不是依然要写一万个变量再分别解压赋值?

  不用这么麻烦,可以用*来打破位数限制。

l1 = [11,2,2,3,4,5,6,7,8,67,5,4,5,7,5,3,5,4]
a,b,*_,d = l1
print(a,b,d,_)

13.解压赋值配合星号

 

7.逻辑运算符

1.and与,链接的多个条件必须都满足结果才成立否则不成立。

eg:相亲对象身高165以上并且体重110以下并且长得漂亮并且家里有钱。

2.or或,链接的多个条件有一个满足即可。

eg:相亲对象身高165以上或者体重110以下或者长得漂亮或者家里有钱。

3.not非,对条件取反。

eg:说反话:“不写完作业不能玩游戏(实际意思是写完作业才能玩游戏)。”

  光看定义好像还有些似懂非懂,接下来简单举几个栗子稍加分析就能说清其判定逻辑。

print(1 > 2 and 4 > 1)
print(False and 1 < 4 and 5 > 1 and 9 > 6 and 8 > 3 and 7 > 9)

14.and判断

  and链接的多个条件,只要有条件一个是False时就不用往后看了,结果肯定是False。

print(1 > 2 or 4 > 1)
print(False or 1 < 4 or 5 > 1 or 9 > 6 or 8 > 3 or 7 > 9)

15.or判断

  or链接的多个条件,只要有一个是True就不用往后看了,结果肯定是True。

print(not True)

16.not判断

  如此一来是不是就能分清三者的用途了呢?

  注意:上述三个关键字如果混合使用是存在优先级的,但是我们不需要考虑优先级。在书写的时候应该通过括号强制规定优先级关系。例如:先乘除后加减,打破顺序可以使用括号。

15-(3*4)=?  # 3

 

8.成员运算符

in

成员运算符用于判断某个个体(局部)在不在某个群体(整体)内。

stu_list = ['joe', 'simon', 'frank', 'jerry']
guess_name = input('name>>>:')
print(guess_name in stu_list)
print(guess_name not in stu_list)

17.成员运算

 

9.身份运算符

==  # 判断是否相等
is  # 判断是否是

  这次要来一个复杂一点的栗子。不过举例子之前首先要知道如何查看变量值所在的内存地址。

id()

  这行代码的运行结果是返回一串数字,用来表示内存地址。

  接下来该说明正题了:查看两个变量值及其内存地址是否相等。

name1 = 'jason kevin tony'
name2 = 'jason kevin tony'

  这需要用cmd来输入指令,pycharm有优化机制不太好展示。我们查看内存地址的代码查看一下:

id(name1)
id(name2)

18.name1name2id

  可以看到两者的内存地址不一样。

  接下来在看看另外的变量。

x = y = z = 'jason kevin tony'
id(x)
id(y)
id(z)

19.xyzid

  这三个变量的内存地址一样,但是和name1,name2的内存地址不一样

  所以我们可以得出结论了:

print(name1 == name2)  # 判断name1的变量值和name2的变量值是否相等(两个变量的值是否相等)
print(name1 is name2)  # 判断name1是否是name2(两个变量绑定值的内存地址是否相等)

20.查看name1是否等同于name2

  两个变量的值相等 那么内存地址不一定相等。

  两个变量的内存地址相等 那么值肯定相等。

标签:基本,03,运算符,name2,name1,print,内存地址,赋值
来源: https://www.cnblogs.com/veryjoe/p/15291631.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有