【Python】从简单案列中揭示常用内置函数以及数据类型
前面提到了BIF(内置函数)这个概念,什么是内置函数,就是python已经定义好的函数,不需要人为再自己定义,直接拿来就可以用的函数,那么都有哪些BIF呢?
可以在交互式界面(IDLE)输入这段代码,注意是两边都是双下划线
|
1
|
dir(__builtins__) |
则可以查看不同python版本都有哪些BIF

就看这些就能很明显的看出python3和python2还是有很多区别的,想看哪个BIF的用法就直接help()它看官方文档就行,这里要说的是,python官方的代码其实很少的语法,基本都是很简单的英语,要学编程不可能不学英文的,怎么也要掌握该开发语言的常用术语吧,而且官方文档比其他任何一篇解析来的更正式更准确,要学会去看官方文档。
前一章结尾处你应该看到了运算了,是的,任何一种开发语言都是可以运算,你要把它当计算器用我也没办法。
说到这,自然就牵扯到操作符了:
1.算术操作符
+,-,*(注意是星号,不是字母x),这是数学里都学过的,就不多说了
//,/,% 这几个都是和除法相关的,但代表的都是不同的。先说/,在python2和python3有不同的结果:

上面是python2,下面是python3,/默认在python2里是正常除,但舍去小数部分,如果想达到python3里的结果,也就是该等于多少就等于多少的话,需要后面的高级语法了:

这个【from __future__ import division】语法暂且不说,后面在模块章节会提到,你知道有这个用法就行
你是不是觉得,哇,好坑啊,一个简单的除法运算,还不能得到一个本来该有的结果,是的,python官方得知后,把这个也改进到python3中了,该是多少就是多少
// 取模运算,或者叫取整预算

% 取余数运算

这个取余运算在后面会发挥很大的作用,好好体会
2.比较符:
> 大于
>= 大于等于
< 小于
<= 小于等于
== 等于 (注意这里的== 不等同于is)
!= 不等于 (<> 也表示不等于)
= 表示赋值 (x=y=z 链式赋值)
3.逻辑操作符:
in 属于
or 或(注意与其他语言区别,这里的or不等同于|,|有其他意义)
not in 不属于
is 等同于
前面三个在高中数学里学集合的时候都学过的,不用多说,后面运用的时候你会从中体会
主要是 is ,它是判断是不是自身的用法,比如:


这里的id()是内置函数,可以查看对象的内存空间里的id,由此和is配套使用可以真的判断其不是就是他自己,不过这里都一样的,好像没什么问题对不?因为结果一样,你是不是就会觉得==就是is?并不是的,接着看

这里又用了一个后面才提到的知识,列表,很抱歉,因为知识点就是这么交叉的,为了解释当前的==不等同于is,不得不提到列表,后面会详解,姑且不说这个问题
看到没,此时再用 a is b返回的是False了,但是id还是相同的。所以 == 并不等同于 is 记住这一点就行
4.** 幂运算

5.正负号:
+,- (此时并不是算术操作符里的加减运算)
6.按位运算
&:按位与运算,按位是指将一个数字转换为二进制,然后这些二进制按位进行与运算,即类似and运算
例:>>> a=7&18 #7二进制为111 转换为二进制: 00000111
>>> a #18 为10010 转换为二进制: 00010010,两个作与运算,
2 得: 0000010,为2

|:按为或运算,按位是指将一个数字转换为二进制,然后这些二进制按位进行或运算,即类似or运算 #注意,这里的“|”不等同于“or”(注意与c语言区别)
例:>>> b=7|18 #7二进制为111,转换为二进制:00000111
>>> b #18 为10010,转换为二进制: 00010010
23 # 得 00010111,为23
例:

^:按位异或运算,按位是指将一个数字转换为二进制,然后这些二进制按位进行或运算,不同则是1,相同则是0
例:
>>> c=7^18 #7二进制为111,00000111
>>> c #18为10010, 00010010
21 # 得00010101,为21
~:按位翻转,即~x=-(x+1)
例:>>> a=~18 ~18=-(18+1)
>>> a
-19
<<:按位左移,比如18即为00010010
左移一个单位 00100100,即36,左移一个单位相当于乘以2,左移N个单位则为乘2的N次幂
例;

>>:按位右移,比如18即为00010010
右移一个单位 00001001,即9,左移一个单位相当于除以2,左移N个单位则为除以2的N次幂
例:

你现在应该有疑问了,如果这些操作符混合在一起,怎么计算呢?谁先开始计算,谁最后计算?
所以又有了运算优先级:

是的这是全部的运算优先级,你应该会想,我靠,我学习个编程语言,优先级规则这么多,难道我还要背吗?
不是的,基本不用靠背,你在写代码维护代码的同时你就会自然的记住,而且不用全部记住,通常用的就这些:
优先级从左到右高到低:
幂运算(**),正负号(+,-),算术操作符(*,/,//,%,+,-),比较操作符(<,<=,>,>=,==,!=),逻辑操作符(not,and,or,is)
其实这些优先级基本和数学里的优先级一样的。
唯一要注意的是:
其中,幂运算左边正负号优先级比右边优先级低:

至此,真正的前期概念和规则你已经掌握了,后面将进入真正的洗礼之路了。
【Python】从简单案列中揭示常用内置函数以及数据类型的更多相关文章
- 洗礼灵魂,修炼python(4)--从简单案列中揭示常用内置函数以及数据类型
上一篇说到print语句,print是可以打印任何类型到屏幕上,都有哪些类型呢? 整形(int) 长整型(long) 浮点型(float) 字符型(str) 布尔型(bool) 最常见的就这几种. 在 ...
- python的学习笔记之——time模块常用内置函数
1.Python time time()方法 Python time time() 返回当前时间的时间戳(1970纪元后经过的浮点秒数). time()方法语法: time.time() 举例: #! ...
- Python常用模块中常用内置函数的具体介绍
Python作为计算机语言中常用的语言,它具有十分强大的功能,但是你知道Python常用模块I的内置模块中常用内置函数都包括哪些具体的函数吗?以下的文章就是对Python常用模块I的内置模块的常用内置 ...
- python中常用内置函数和关键词
Python 常用内置函数如下: Python 解释器内置了很多函数和类型,您可以在任何时候使用它们.以下按字母表顺序列出它们. 1. abs()函数 返回数字的绝对值. print( abs(-45 ...
- python中的运算符及表达式及常用内置函数
知识内容: 1.运算符与表达式 2.for\while初步了解 3.常用内置函数 一.运算符与表达式 python与其他语言一样支持大多数算数运算符.关系运算符.逻辑运算符以及位运算符,并且有和大多数 ...
- PYTHON语言之常用内置函数
一 写在开头本文列举了一些常用的python内置函数.完整详细的python内置函数列表请参见python文档的Built-in Functions章节. 二 python常用内置函数请注意,有关内置 ...
- python之迭代器 生成器 枚举 常用内置函数 递归
迭代器 迭代器对象:有__next__()方法的对象是迭代器对象,迭代器对象依赖__next__()方法进行依次取值 with open('text.txt','rb',) as f: res = f ...
- Python的常用内置函数介绍
Python的常用内置函数介绍 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 一.取绝对值(abs) #!/usr/bin/env python #_*_coding:utf-8_ ...
- python常用内置函数整理
1.最常见的内置函数是print print("Hello World!") 2.数学运算 abs(-5) # 取绝对值,也就是5 round(2.6) # 四舍五入取整,也就是3 ...
随机推荐
- [NOIP2017]列队(树状数组)
定义第i行为所有的点(i,j),0<j<m 可以发现,每一行是相对独立的,每一次操作只会影响到当前行和最后一列 考虑每一行和最后一列各开一个树状数组,但这样显然会爆空间 实际上,对于没有离 ...
- Java基础之进制转换
1.十进制与二进制之间的转换 (1)十进制转二进制的方法:使用十进制的数据不断除以2,直到商为0为止,从下往上取余就是对应的二进制. (2)二进制转十进制:使用二进制的每一位乘以2的n次方,n从0开始 ...
- linux 网络编程 1---(基本概念)
1.TCP和UDP协议 共同点:同为传输层协议 不同点: TCP:有连接,可靠 UPD 无连接,不保证可靠 TCP(即传输控制协议): 是一种面向连接的传输层协议,它是能提供高可靠性通信(即,数据无误 ...
- javascript之input字符串不为空
今天我们来讲如何判断这个java中字符串输入是否为空 ------------------------当只有一个input的时候,我们来进行个判断这个值是否为空-------------------- ...
- 北京Uber优步司机奖励政策(1月4日)
滴快车单单2.5倍,注册地址:http://www.udache.com/ 如何注册Uber司机(全国版最新最详细注册流程)/月入2万/不用抢单:http://www.cnblogs.com/mfry ...
- java 字符串与整型相互转换
如何将字串 String 转换成整数 int? A. 有两个方法: 1). int i = Integer. parseInt ([String]); 或 i = Integer.parseInt ( ...
- 使用duplicateweedout
mysql> explain extended select * from cities where id in (select phonecode from countries group b ...
- Qt-QML-C++交互实现文件IO系统
QMl是没有自己的文件IO控制的,这里如果我们需要对文件进行读写操作,那么就需要去C++或者JS完成交互,交互方式有多种,由于我还没有掌握,这里就不介绍具体的交互方式了.这里就简单说明一下我的实现过程 ...
- window上小而美的软件(推荐度按排名)
window上小而美的软件,推荐度按排名 Notepad++ 更好用更强大的笔记本 QTranslate 本地翻译神器 7-zip 解压缩软件 Wox 程序/文件/快捷 神器 1! Everthing ...
- ES6 之 let / const
本博文配合 阮一峰 <ES6 标准入门(第3版)>一书进行简要概述 ES6 中的 let 与 const. 历史遗留问题 由于 JS ES3语法中的 var 提升变量.没有块级作用域,因而 ...