【python】基本运算和表达式(2)

参考

  • Python从零开始系列连载,by 王大伟 Python爱好者社区

  • Hellobi Live | 1小时破冰入门Python

  • 《简明python教程》

  • 《小甲鱼零基础入门学python》

  • Python进阶系列连载(1)——那些容易被忽略的问题(上)

Note

  • 更多连载请查看【python】

文章目录

  • 1 变量
    • 1.1 变量的基本知识
    • 1.2 变量类型转换
  • 2 算数运算符
    • 2.1 算数运算符的优先级
    • 2.2 取反
    • 2.3 取余
    • 2.4 乘方(幂运算)
    • 2.5 绝对值、创建一个复数、返回除数和余数,指数,序列
    • 2.6 四舍五入、求和
  • 3 逻辑运算符
  • 4 关系运算符
  • 5 字符串比较大小
  • 6 链式比较


1 变量

1.1 变量的基本知识

变量名、变量类型、赋值。

NBA_star #变量没有赋值

报错
NameError: name ‘NBA_star’ is not defined

NBA_star  = 'Kobe' #给变量赋值
NBA_star

‘Kobe’

NBA_star  = 'James' #给变量重新赋值
NBA_star

‘James’

del NBA_star #删除变量
NBA_star

报错
NameError: name ‘NBA_star’ is not defined

下面看看不同类型变量之间的运算

'1314' + 520   #类型不相同,不能运算

报错
TypeError: must be str, not int

1314 + '520' #观察报错信息

报错
TypeError: unsupported operand type(s) for +: ‘int’ and ‘str’

1314+520 #int之间运算

1834

1314.0+520  #int和float运算得到float结果

1834.0

如果是不同类型的数据运算,会发生隐式类型转换
转换的规则是:低等类型向高等类型转换,前提是可以进行算术运算
等级从低到高是:bool-int-float-complex

Note:在算术运算时,True代表1,False代表0

False + 1 #bool + int = int

1

False + 1.0 #bool + float = float

1.0

(1+1j) + True #bool + complex = complex

(2+1j)

True + (1+1j)

(2+1j)

int 和 float 运算得到 float 结果,上述例子就可以看出

1 + (1+1j) #int + complex = complex

(2+1j)

(1+1j) + 1

(2+1j)

(1+1j) + 1.1 #float + complex = complex

(2.1+1j)

complex的实部和虚部都是int类型的,int/float + complex = int/float+实部,虚部不变,int/float * complex = int/float分别乘以实部和虚部。

(1+1j) * 2

(2+2j)

1.2 变量类型转换

float()函数,将其他类型数据转为浮点数

str()函数,将其他类型数据转为字符串

int()函数,将其他类型数据转为整型

float(123) #int转为float

123.0

float('123') #str转为float

123.0

float(1.23e-4) #科学计数法转为float

0.000123

str(123) #int转为str

‘123’

str(1.23e5) #科学计数法转为str

‘123000.0’

float 转为 int 的时候,往0靠近,不是进一法,也不是四舍五入,简单来说就是保留整数部分,截去小数部分

int(1.23) #float转为int,往0靠近的整数

1

int(-1.23)

-1

int('123') #str转int

123

int('Kobe')

报错
ValueError: invalid literal for int() with base 10: ‘Kobe’

float('Kobe')

报错
ValueError: could not convert string to float: ‘Kobe’

2 算数运算符

【python】基本运算和表达式(2)_第1张图片

2.1 算数运算符的优先级

算数运算符的优先级(按照从低到高排序,同一行优先级相同)

  1. +、-(加减号)
  2. * , / , // , %
  3. 单目+、单目-(正负号)
  4. **

2.2 取反

x = 123

123

-x

-123

2.3 取余

取余,余数的符号根据除数来决定。

9 % 2 #取余数

1

-9 % 2

1

9 % -2

-1

-9 % -2

-1

2.4 乘方(幂运算)

注意幂运算的优先级比正负号的优先级高。

- 2 ** 2 #乘方

-4

(- 2) ** 2

4
还有 pow(a,b)也可以进行幂运算,参考下一小节内容

2.5 绝对值、创建一个复数、返回除数和余数,指数,序列

【python】基本运算和表达式(2)_第2张图片
【python】基本运算和表达式(2)_第3张图片

2.6 四舍五入、求和

round()sum()
【python】基本运算和表达式(2)_第4张图片

3 逻辑运算符

逻辑运算符有三种,与 或 非
and:逻辑‘与’运算符,只有当and两边都是真,结果才是真
or:逻辑‘或’运算符,只要当or一边的是真的,结果就是真
not:逻辑非运算符,反转逻辑值
【python】基本运算和表达式(2)_第5张图片

Note:andor的使用细节

  • 对于and操作符:

  只要左边的表达式为真,整个表达式返回的值是右边表达式的值,否则,返回左边表达式的值

1 and 5

结果为5

  • 对于or操作符:

  只要两边的表达式为真,整个表达式的结果是左边表达式的值。
  如果是一真一假,返回真值表达式的值。
  如果两个都是假,比如空值和0,返回的是右边的值。(空值或0)

1 or 5

结果为1


优先级顺序为not > and > or

not 1 or 0 and 1 or 3 and 4 or 5 and 6 or 7 and 8 and 9

结果为4

根据上面知识点,求解过程如下:

0 or 0 or 4 or 6 or 8 and 9
0 or 0 or 4 or 6 or 9
0 or 4 or 6 or 9
4 or 6 or 9
4 or 9
4

4 关系运算符

关系运算符如下:
【python】基本运算和表达式(2)_第6张图片

【python】基本运算和表达式(2)_第7张图片

Python中的对象包含三要素:id、type、value
id用来唯一标识一个对象,即在内存开辟了一块空间暂时存放这个变量
type标识对象的类型,如之前说过的str,int,float等
value是对象的值

a = 2
b = 2
a == b

True

a is b

True

c = 2.0
a == c

True

c is a

False

id(a) #查看变量在内存中的位置

94918783982752

id(b)

94918783982752

id(c)

139717705123520


总结,运算优先级
【python】基本运算和表达式(2)_第8张图片

5 字符串比较大小

【python】基本运算和表达式(2)_第9张图片

表中可以看出,数字的ASCII小于大写字母,大大写字母小于小写字母

规则:按ASCII表中排列顺序比较大小,表中越后面的越大
.
流程
• 首先取两个字符串的第1个字符比较,较大的字符所在的字符串更大
• 如果第一个字符相同,再取两个字符串的第2个字符比较,较大的字符所在的字符串更大
• 其余以此类推
• 如果比到最后都相同,则两个字符串相等
• 如果某个字符串已经被比较完了,另一个还剩一部分,则剩一部分的字符串比较大
• 特别要注意的,如果是空字符串和非空字符串比较,空串小

【python】基本运算和表达式(2)_第10张图片

6 链式比较

a = 5
print(4 < a < 6)
print(1==a<20)
print(3<a>4)

output

True
False
True

Note:更多连载请查看【python】

你可能感兴趣的:(Python)