Python核心编程基础教程之Python运算符、运算符优先级、表达式简介--20150717

Python核心编程基础教程之Python运算符、运算符优先级、表达式简介

1.Python运算符与表达式:

(1)认识Pyhton运算符1:什么是运算符

在Python运算中,有时候我们需要对一个或者多个数字或者一个或者多个字符串进行运算操作,*,+

(2)认识Pyhton运算符2:运算符有哪些以及运算符的使用方法

+ :加

- :减

* :乘

/ :除

** :幂

< :小于

> :大于

!= :不等于

// :求相除的整数部分

% :求相除的余数部分

& :按位与

| :按位或

^ :按位异或

~ :取反

>> :右移

<< :左移

<= :小于等于

>= :大于等于

== :等号,一个等号叫赋值

not :逻辑非

and :逻辑与

or :逻辑或

#实例:

1)#"+":两个对象相加

#两个数字相加

a = 7+8
print a

#输出结果:

15

2)#两个字符串相加

b = "GOOD"+" JOB!"
print b

#输出结果:

GOOD JOB!

3)#"-":取一个数字的相反数或者实现两个数字相减

a = -7
print a
b = -(-8)
print b

#输出结果:

-7

8

c = 19-1
print c

#输出结果:

18

4)#"*":两个数相乘或者字符串重复数字的次数

a = 4*7
print a
b = "hello"*7
print b

#输出结果:

28

hello

hello

hello

hello

hello

hello

hello

5)#"/":两个数字相除

a = 7/2
print a #除数和被除数是整数,那么结果也是整数
b = 7.0/2
c = 7/2.0 #除数和被除数其中有一个是浮点数,那么结果也会有小数
print b
print c

#输出结果:

3

3.5

3.5

6)#"**":求幂运算

a = 2**3   #相当于2的3次幂,就是2*2*2
print a

#输出结果:

8

7)#"<":小于符号,返回一个bool值

a = 3<7
print a
b = 3<3
print b

#输出结果:

Ture

False

8)#">":大于符号,返回一个bool值

a = 3>7
print a
b = 3>1
print b

#输出结果:

False

Ture

9)#"!=":不等于符号,同样返回一个bool值

a = 2!=3
print a
b = 2!=2
print b

#输出结果:

Ture

False

10)#"//":除法运算,然后返回其商的整数部分,舍掉余数

a=10//3
print a

#输出结果:

3

11)#"%":除法运算,然后返回其商的余数部分,舍掉商

a=10%3
print a

#输出结果:

1

b=10%1  #没有余数的时候返回什么?
print b

#输出结果:

0

a=10//3  #a为商的整数部分
b=10%3   #b为
c=3*a+b  #c为除数乘以商的整数部分加上余数,应该c的值就是被除数
print c

#输出结果:

10

12)#"&":按位与运算,所谓的按位与是指一个数字转化为二进制,然后这些二进制的数按位来进行与运算,同1为1

a=7&18  #执行一下,为什么7跟18与会得到2呢??
print a

#输出结果:

2

‘‘‘首先我们打开计算器,然后我们将7转化为二进制,得到7的二进制值是:111,自动补全为8位,即00000111

然后我们将18转化为二进制,得到18二进制的值是10010,同样补全为8位,即00010010

再然后,我们将00000111

,跟          00010010按位进行与运算,

得到的结果是:00000010,然后,我们将00000010转化为十进制

得到数字二,所以7跟18按位与的结果是二进制的10,即为十进制的2

‘‘‘

13)#"|":按位或运算,同样我们要将数字转化为二进制之后按位进行或运算,有1为1

a=7|18
print a

#输出结果:

23

‘‘‘我们来分析一下,同样我们的7的二进制形式是00000111,18的二进制形式是00010010

我们将      00000111

跟          00010010按位进行或运算,

得到的结果是00010111,然后,我们将00010111转化为十进制

得到数字23,所以7跟18按位或的结果是二进制的10111,即为十进制的23

‘‘‘

14)#"^"按位异或,异或指的是,不同则为1,相同则为0

a=7^18
print a

#输出结果:

21

‘‘‘

首先,异或指的是,不同则为1,相同则为0.

我们来分析一下,同样我们的7的二进制形式是00000111,18的二进制形式是00010010

我们将      00000111

跟         +00010010按位进行异或运算,

得到的结果是00010101,然后,我们将00010101转化为十进制

得到数字21,所以7跟18按位异或的结果是二进制的10101,即为十进制的21

‘‘‘

15)#"~":按位翻转~x = -(x+1)

a=~18  # ~18=-(18+1)=-19
print a

#输出结果:

-19

16)#"<<":左移

‘‘‘

比如18左移就是将他的二进制形式00100100左移,即移后成为00100100,即成为36,左移一个单位相当于乘2,左移动两个单位

相当于乘4,左移3个单位相当于乘8,左移n个单位相当于乘2的n次幂。

‘‘‘

a=18<<1
print a
b=3<<3
print b

#输出结果:

36

24

17)#"<<":右移

‘‘‘

右移是左移的逆运算,即将对应的二进制数向右移动,右移一个单位相当于除以2,右移动两个单位相当于除以4,右移3个单位相当于

除以8,右移n个单位相当于除以2的n次幂。

‘‘‘

a=18>>1
print a
b=18>>2#从00010010变成00000100,即结果为4,相当于18//(2**2)
print b

#输出结果:

9

4

18)#"<=":小于等于符号,比较运算,小于或等于,返回一个bool值

a=3<=3
b=4<=3
print a
print b

#输出结果:

Ture

False

19)#">=":大于或等于,比较运算,返回bool值

a=1>=3
print a
b=4>=3
print b

#输出结果:

False

Ture

20)#"==":比较两个对象是否相等,返回bool值

a = 12==13
print a
b="hello"=="hello"
print b

#输出结果:

False

Ture

21)#not:逻辑非,将bool值进行not运算

a=True
b = not a
print b
c=False
print not c

#输出结果:

False

Ture

22)#and:逻辑与,Bool值与运算,相交,同真为真

‘‘‘

True and True等于True

True and False等于False

False and True等于False

‘‘‘

print True and True

#输出结果:

Ture

23)#or:逻辑或,Bool值或运算,相与,有真为真

‘‘‘

True and True等于True

True and False等于True

False and False等于False

‘‘‘

print True or False

#输出结果:

Ture

2.Python运算优先级

(1)什么是Python优先级:

Python运算的程序或运算符执行是有先后顺序的,如果A,和B同时出现,如果A可以优先于B,那么说明A的优先级高于B,B的优先级低于A,其中,A,B可以是运算符,也可以使程序。

分类:

程序间的优先级

运算符间的优先级

#实例:

1)#优先级的作用:

a = 2+7*8 #乘号优先级高于加减
print a
b=9>7
print b

#输出结果:

58

Ture#说明>优先级高于等号=

(2)Python优先级使用实战

#优先级实例:

#优先级排行榜第1名——函数调用、寻址、下标

#优先级排行榜第2名——幂运算**

a=4*2**3
print a

#输出结果:

32

#优先级排行榜第3名——翻转运算~

#"~":按位翻转~x = -(x+1)

a=~18  # ~18=-(18+1)=-19
print a

#输出结果:

-19

#优先级排行榜第4名——正负号区别于加减号

print 2+4*- 2   #我们可以看,正负号的使用方法是紧挨着操作数的,否则会出错,这就                   #说明正负号优先于加减乘除运算,加减号是跟着数字的

#输出结果:

-6

#优先级排行榜第5名——*、/、%

print 2+4*2/4

#输出结果:

4

#优先级排行榜第6名——+、-

print 3<<2+1

#输出结果:

24

#00000011变成00011000,即24

#优先级排行榜第7名——<<、>>

#优先级排行榜第8名——按位&、^、|,其实这三个中也是有优先级顺序的,但是他们处于同一级别,故而不细分

#优先级排行榜第9名——比较运算符<,>,=.>=,<=,==

a=2*3+5<=5+1*2
print a

#输出结果:

False#11<=7

#优先级排行榜第10名——逻辑的not、and、or

#优先级排行榜第11名——lambda表达式,延迟执行

3.运算符优先级的基本规律与特点

(1)Python常见运算符优先级使用规律

#优先级使用规律

#1、一般情况下是左结合的,从左往右

print 4+6+5*6+6

#输出结果:

46

#2、出现赋值的时候一般是右结合,从右往左

a=8+91
print a

#输出结果:

99

(2)Python优先级规律记忆心法

函数寻址下标一

幂运算小二笑嘻嘻

全体单元第三位#比如翻转运算~,正负号(紧跟操作数),一个操作对象的运算符,单,一个;元,操作数;

乘除求余四千里

乘除完了无(五)加减

六娃喜欢左右移

老七按位或跟与

八仙过海比实力(比较运算)

倒数第一逻辑或非与

#lambda表达式在刚开始很少遇到,遇到容易将其放到最低优先级,所以为了方便记忆将其默认最后即可

(3)Python优先级使用的小技巧

#优先级使用小技巧

#如果实在分不清哪个优先级高哪个优先级低也没关系,只要用()改变优先级即可

a=2+3*7
b=(2+3)*7
c=((2+3)+5)*7#多括号从内开始往外拔开,优先内部
print a
print b
print c

输出结果:

23

35

70

4.Python表达式简介

(1)什么是Python的表达式

Python在变成中,我们把其中的值,变量和运算符共同组成的整体我们将其称为表达式,如:“ok”,a="hello ,my girl",a=5,等都是表达式

#什么是表达式

#1

"Hello"#字符串表达式

#2

25+7#计算表达式

#3

a=67#等式表达式

a#变量

#4

a="hello"

(2)Python表达式的使用

特点:

1)单行命令:(进入单行命令行编程模式)

a)值表达式:值表达式结果仍然为值

>>> 8#Enter
8
b)变量表达式
>>>a="ok"
>>>a
>>>"ok"
c)计算表达式:结果为计算
>>>7+8
15
d)字符串表达式
>>>"OK"
‘ok‘

2)多行命令:

F5运行没有结果

(3)表达式执行与print执行结果的区别

Python的表达式执行结果和print是有区别的:字符串输出结果不同,表达式输出有单引号,Print没有引号

>>>"QQ" #Enter
‘QQ‘
>>>print "QQ"
QQ
>>>a=7
>>>a
7
>>>print a
7
时间: 2024-10-14 00:27:25

Python核心编程基础教程之Python运算符、运算符优先级、表达式简介--20150717的相关文章

python核心编程第四章 python对象

4–1. Python 对象.与所有 Python 对象有关的三个属性是什么?请简单的描述一下.  身份,类型和值. 4–2. 类型.不可更改(immutable)指的是什么?Python 的哪些类型是可更改的 (mutable),哪些不是? 如果对象支持更新操作,那么它的值就可以改变,否则它的值也是只读的.对象的值是否 可以更改被称为对象的可改变性(mutability) 数字 Scalar 不可更改 直接访问 字符串 Scalar 不可更改 顺序访问 列表 Container 可更改 顺序访

Python 核心编程 (第二版) 中文高清pdf版【110M】高清下载

Python 核心编程是经典的Python指导书,在第一版的基础上进行了全面升级.全书分为两个部分:第1部分占据了大约三分之二的篇幅,阐释这门语言的“核心”内容,包括基本的概念和语句.语法和风格. Python对象.数字类型.序列类型.映射和集合类型.条件和循环.文件和输入/输出.错误和异常.函数和函数式编程.模块.面向对象编程.执行环境等内容:第2部分则提供了各种高级主题来展示可以使用Python做些什么,包括正则表达式.网络编程.网络客户端编程.多线程编程.图形用户界面编程. Web编程.数

Python基础教程之List对象 转

Python基础教程之List对象 时间:2014-01-19    来源:服务器之家    投稿:root 1.PyListObject对象typedef struct {    PyObject_VAR_HEAD    PyObject **ob_item;    Py_ssize_t allocated;} PyListObject; PyObject_VAR_HEAD中的obsize表示该list对象含有的元素个数, 而allocated表示该list对象占用的内存空间. ob_item

《Python核心编程》手记 基础

春节终于over了,回归充实的学习研究生活.打开久违的CSDN博客,看到官方推送的 『博客Markdown编辑器上线啦』,让我顿时有了写作的欲望,真是程序员的福利.之前阅读各种文章书籍,都是用MarkDownPad做的笔记,喜欢以及习惯于MarkDown简洁的语法. 总之各种方便.为了试试效果,将以前阅读<Python核心编程>的手记整理发上来,也当温习一遍. 第三章 Python基础 1.语句和语法 注释 Python中注释用符号"#",也可以用三引号:"' 注

python核心编程--笔记

python核心编程--笔记 的解释器options: 1.1 –d   提供调试输出 1.2 –O   生成优化的字节码(生成.pyo文件) 1.3 –S   不导入site模块以在启动时查找python路径 1.4 –v   冗余输出(导入语句详细追踪) 1.5 –m mod 将一个模块以脚本形式运行 1.6 –Q opt 除法选项(参阅文档) 1.7 –c cmd 运行以命令行字符串心事提交的python脚本 1.8 file   以给定的文件运行python脚本 2 _在解释器中表示最后

《Python核心编程》 第五章 数字 - 课后习题

课后习题  5-1 整形. 讲讲 Python 普通整型和长整型的区别. 答:普通整型是绝大多数现代系统都能识别的. Python的长整型类型能表达的数值仅仅与你机器支持的(虚拟)内存大小有关. 5-2 运算符 (a) 写一个函数,计算并返回两个数的乘积 (b) 写一段代码调用这个函数,并显示它的结果 答: def pro(a,b): p = a*b return p a = int(raw_input("a=")) b = int(raw_input("b="))

自学python核心编程

之前看过一段时间的小甲鱼零基础自学python,b站上有高清免费资源[av4050443],但是作为零基础实在学得艰难,下载了python核心编程pdf,在这里做一些笔记. 虽然使用的是第二版的教材,但我使用的是python3.5.2,感觉上差别不大,可以阅读. 这里从第二章的练习题开始! -------------------------------------------------------- 2 - 5:用while 和for 打印0-10: i = 0 while i < 11: p

Python核心编程这本书的一些错误

<Python核心编程第二版>这本书比<Python基础教程第二版修订版>详细很多,丰富了很多细节,虽然它是一本经典的入门书,但我发现还是存在一些明显的错误.在面向对象编程这一章,有两个错误 1).它说任何类都有一些内置的特殊的类属性(即程序员不在类中定义也会存在),见截图 2).它说__new__方法比__init__方法更像是类的构造器.见截图: 下面进行测试: 1 #encoding:utf-8 2 class MyClass(): 3 def doPrint(self):

学习《Python核心编程》做一下知识点提要,方便复习(一)

学习<Python核心编程>做一下知识点提要,方便复习. 计算机语言的本质是什么? a-z.A-Z.符号.数字等等组合成符合语法的字符串.供编译器.解释器翻译. 字母组合后产生各种变化拿python来说就是.keyword.数值,类,函数,运算符,操作符...... 1.变量不用声明,类型不固定 2.True,False = False,True读出了什么?True是个bool()类实例 3.类型工厂函数就是python2.2后把int() bool()等对数据类型操作的函数分装成对象 类 了