分享

Python从零开始系列连载(6)——Python的基本运算和表达式(下)

 公彦栋 2017-10-08


前言

前文传送门:

Python从零开始系列连载(1)——安装环境

Python从零开始系列连载(2)——jupyter的常用操作

Python从零开始系列连载(3)——Python的基本数据类型(上)

Python从零开始系列连载(4)——Python的基本数据类型(下)

Python从零开始系列连载(5)——Python的基本运算和表达式(上)


输入输出

输入指的是从输入设备获取数据,这里的输入设备往往指的是键盘,通过input()函数可以实现这一目的


x = input(<提示字符串>)


举个栗子:



运行后,出现一个输入框等待你输入




输入后回车,当我们查看name变量时,显示的就是刚才输入的信息了


小明:我想知道小红的年龄和我是不是一样(其实她知道是一样的)!


于是小明写了个代码让小红输入信息:




结果发现。。。竟然不一样。emmm




可能细心的你已经发现了问题所在!




原来从input()获得的是是字符串类型数据


所以我们要用到之前学的类型转换




这样就行啦,可是,这样好麻烦,怎么样从源头解决呢?




输出就是把结果显示在输出设备(一般是显示器),一般使用print函数




sep参数是规定分隔符选用的是什么


print() 函数还可以用字符串格式化控制输出的形式


常见的格式字符如下表:


看个例子:



我们用%s代替要输出的内容,而后一个%后面你的内容则是真正输出的内容


如果有多个%s,在最后的%后面要加括号将真正输出内容括起来


格式化操作符辅助指令

符号                    作用


-             用做左对齐

+            在正数前面显示加号( + )

#            在八进制数前面显示零('0'),在十六进制前面显示'0x'或者'0X'(取决于

              用的是'x'还是'X')

0            显示的数字前面填充‘0’而不是默认的空格

m          m 是显示的总宽度




如果是浮点数,

%m.nf    m指的是输出总宽度,小数点之后保留n位(四舍五入保存),如果总宽度超过m,按照实际显示




幸好我们学的是Python3


现在压轴演出开始!!!



str.format()


通过{}来代替%,功能更强!




参数可以不按照顺序,也可以使用多次!



赋值运算

赋值,就是往盘子里放一些食品

在Python中,使用' = ' 表示赋值

一般形式为:

变量 = 表达式




这里的 y = x 指的是将 x 变量的值复制一份给 y


关系运算符


关系运算符,说得通俗点就是作比较的比较运算符

还记得这个经典的比较的广告么:



不知道这个孩子现在到底有多强了


比较运算通常是比较两个数值型或者字符串型数据,然后返回一个布尔值


小明:老湿!什么是布尔值?


布尔值就是bool值

它只有两种可能,‘真’或者是‘假’




关系运算符有以下几种:


>                          大于

>=                       大于或等于

<=  =""  =""  =""  =""  =""  =""  =""  =""  =""  =""  ="">

<  =""  =""  =""  =""  =""  =""  =""  =""  =""  =""  =""  ="">

==                       等于(注意和赋值的 = 区分开)

!=                        不等于

is                         比较两个引用是否指向了同一个对象(引用比较)

is not                  比较两个引用是否指向了不同对象(引用比较)


我们举几个例子看一下:




注意,在做数值比较的时候,这里的True相当于1,False相当于0


甚至可以有这种操作:





我们继续:




下面是见证奇迹的时刻:






大家看到没,is和==应该怎么理解,怎么区别呢?


Python中的对象包含三要素:id、type、value

其中id用来唯一标识一个对象,即在内存开辟了一块空间暂时存放这个变量

type标识对象的类型,如之前说过的str,int,float等

value是对象的值

is判断的是a对象是否就是b对象,是通过id来判断的

==判断的是a对象的值是否和b对象的值相等,是通过value来判断的


我们再看看:




a和b的id是一样的,就是说他们的值指的是同一个位置同一个值

而c的id和他们不一样,c指向的值和他们不一样


我们继续:


刚才的没有涉及到字符串的比较


字符串也可以比较大小

规则是:按照英文字母的排序进行比较

abcdefg...


流程是:

首先取两个字符串的第1个字符比较,较大的字符所在的字符串更大

如果第一个字符相同,再取两个字符串的第2个字符比较,较大的字符所在的字符串更大

其余以此类推

如果比到最后都相同,则两个字符串相等

如果某个字符串已经被比较完了,另一个还剩一部分,则剩一部分的字符串比较大

特别要注意的,如果是空字符串和非空字符串比较,空串小


我们举例看一下:




是不是感觉自己萌萌哒




张嘴吃药

再看个例子【邪魅一笑】




hhhhh,这个你知道么


是不是刷新了你的三观


这是因为,这是Python中比较浮点数是否相等机制是他们的差距是否小于一个极小的值来判断

所以是精度问题,你不要纠结啦~


等等


再给你看个宝贝






还可以这样玩




我们解释一下:


常用字符大小关系是:

空字符串<><><><><>


逻辑运算符


逻辑运算符有三种,与 或 非


and:逻辑‘与’运算符,只有当and两边都是真,结果才是真

or:逻辑‘或’运算符,只要当or一边的是真的,结果就是真

not:逻辑非运算符,反转逻辑值


我们看几个例子:




表达式




值得注意的是:


当数值运算时,不同类型的数值会偷偷发生转换类型,然后运算

当int与float运算时,int常常转为float再计算


证明如下:




刚才运算得到的结果b是float了


运算符优先级如下:






    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多