Python基础定义
2018-06-23 13:30:02来源:未知 阅读 ()
- Python的解释器种类:
- CPython:
安装Python后,官方提供了一个Python解释器CPython,是通过C语言写的,在命令行下运行Python就是启动Cpython解释器,运用最广泛的一个。
- Ipython:
基于Cpython之上的一个解释器,跟Cpython差不多,只不过在交互式上有所增强;
- Jpython:
用Java语言写的一个python解释器,可以直接将python编译成Java字节码运行;
- PyPy:
它的目标是使python代码执行速度快,使用JIT技术实现的,对python动态编译,
- ironPython
运行在微软的.net平台上
2.Pythong变量:
Python 中的变量不需要声明。每个变量在使用前都必须赋值,变量赋值以后该变量才会被创建。
Python中的,全部大写的变量名代表常量
3.python数据类型:
- 布尔值: (ture|false)
- 数字:
整型(int):
在32位机器上,整数的位数为32位,即:-2**31~~2**31-1,即:-2147483648——2147483647
在64位机器上,整数的位数为64位,即:-2**63~~2**63-1,即:-2147483648——2147483647
长整型(long):
python中没有指定位宽,理论上可以无限大,但受限于内存;但是到python3中没有long了,全部都是正型了。
- 浮点型(float):
是有理数的一个特定子集的集合,Python中精度默认只能是17位精度,所有的语言都是这样的,跟浮点数的存储结构有关系
Python中的工具箱,有个decimal模块,getcontext(),其中prec定义的是精度,默认是28,改之可以调。
1 >>>from decimal import getcontext 2 >>> from decimal import Decimal 3 >>>getcontext() 4 Context(prec=28, rounding=ROUND_HALF_EVEN, Emin=-999999999, Emax=999999999, capitals=1, flags=[], traps=[DivisionByZero, Overflow, InvalidOperation]) 5 >>> b = Decimal(1)/Decimal(3) 6 >>> b 7 Decimal('0.3333333333333333333333333333') ///28个精度值 8 >>> getcontext().prec = 50 9 >>> b = Decimal(1)/Decimal(3) 10 >>> b 11 Decimal('0.33333333333333333333333333333333333333333333333333') ////50个精度值。
- 字符串
在python中,加了引号的字符都被认为字符串,多行用多引号(''' '''),注意字符串的拼接只能是双方都是字符串,不能跨数据类型;
- 列表
列表是数据的集合,可以存任何数据,可以增删改查:
1)创建列表 >>> name = [] >>> name [] >>> name = list() >>> name [] ////定义空列表的两个方法; >>> name = ['ming','long','mng','ting','jun','fei','xiang','fei','alex'] x 2)查询 >>> name[0] 'ming' >>> name[3] 'ting' >>> name[4] 'jun' ////以上是查询列表里的值,其中0、3、4是列表里数据的索引,从0开始; >>> name.index('ming') 0 >>> name.index('fei') 5 ////查询列表里的数据位于列表哪个索引位置; >>> name.count('ming') 1 >>> name.count('fei') 2 ////count() 是查询列表里某个数据重复了多少次; 3)增加列表数据 >>> name.append('xiangmin') >>> name ['ming', 'long', 'mng', 'ting', 'jun', 'fei', 'xiang', 'fei', 'alex', 'xiangmin'] ////append()在列表最后边附加数据; >>> name.insert(0,'qing') >>> name ['qing', 'ming', 'long', 'mng', 'ting', 'jun', 'fei', 'xiang', 'fei', 'alex', 'xiangmin'] >>> name.insert(-1,'wu') >>> name ['qing', 'ming', 'long', 'mng', 'ting', 'jun', 'fei', 'xiang', 'fei', 'alex', 'wu', 'xiangmin'] ////insert()向索引的前面添加值 4)删除 >>> name.pop(0) 'qing' >>> name ['ming', 'long', 'mng', 'ting', 'jun', 'fei', 'xiang', 'fei', 'alex', 'wu', 'xiangmin'] ////pop() 删除指定索引处的数据 >>> name.remove('tong') >>> name ['ming', 'mng', 'ting', 'jun', 'fei', 'xiang', 'fei', 'alex', 'wu', 'xiangmin'] /////reomve()删除指定的数据; >>> name ['mng', 'ting', 'tong', 'wu', 'wu', 'xiang', 'xiangmin', ['JOHN', 'JAckson', 'a'], 'kun', 'fei', 'fei', 'alex'] >>> del name[2] >>> name ['mng', 'ting', 'wu', 'wu', 'xiang', 'xiangmin', ['JOHN', 'JAckson', 'a'], 'kun', 'fei', 'fei', 'alex'] >>> del name >>> name Traceback (most recent call last): File "<stdin>", line 1, in <module> NameError: name 'name' is not defined ////del是全局删的,可以删列表里的值,也可以删列表; 5)排序 >>> name ['alex', 'fei', 'fei', 'kun', ['JOHN', 'JAckson'], 'mng', 'ting', 'tong', 'wu', 'wu', 'xiang', 'xiangmin'] >>> name.reverse() >>> name ['xiangmin', 'xiang', 'wu', 'wu', 'tong', 'ting', 'mng', ['JOHN', 'JAckson'], 'kun', 'fei', 'fei', 'alex'] ////reverse() 反转,sort()排序; 6)拷贝 >>> name ['ming', 'ting', 'wu', 'wu', 'xiang', 'xiangmin', ['JOHN', 'JAckson'], 'kun', 'fei', 'fei', 'alex'] >>> name2 = name.copy() >>> name2 ['ming', 'ting', 'wu', 'wu', 'xiang', 'xiangmin', ['JOHN', 'JAckson'], 'kun', 'fei', 'fei', 'alex'] ////copy() 拷贝列表内容 7)修改 >>> name[0] = 'hong' >>> name[6][0] = 'john' >>> name ['hong', 'ting', 'wu', 'wu', 'xiang', 'xiangmin', ['john', 'JAckson'], 'kun', 'fei', 'fei', 'alex'] >>> name2 ['ming', 'ting', 'wu', 'wu', 'xiang', 'xiangmin', ['john', 'JAckson'], 'kun', 'fei', 'fei', 'alex'] ////我们会奇怪发现,name2是name1的复制品,当name的索引为0处和嵌套的列表都有变化,为何name2的嵌套列表也会变化呢??不应该都不变吗?这是因为copy()只是浅浅copy,它只copy列表第一层的数据,至于嵌套的列表它复制的不是数据,是嵌套列表的内存地址空间,或者是一个内存指针;所以,当name嵌套列表数据变化时,name2里的找的是这个嵌套列表内存空间的值,所以name2的值也会发生变化。 8)切片 >>> name = ['ming', 'long', 'mng', 'ting', 'jun', 'fei', 'xiang', 'fei', 'alex', 'wu', 'xiangmin'] >>> name[:3] ['ming', 'long', 'mng'] >>> name[0:3] ['ming', 'long', 'mng'] ////取索引切片0到3的值,但python列表顾头不顾尾,索引取的是0,1,2的值,其中0可以省略 >>> name[-3:-1] ['alex', 'wu'] ////列表索引取值切片是从左到右的。 >>> name[:] ['ming', 'long', 'mng', 'ting', 'jun', 'fei', 'xiang', 'fei', 'alex', 'wu', 'xiangmin'] ////其中[:]相当于[0:] >>> name[::2] ['ming', 'mng', 'jun', 'xiang', 'alex', 'xiangmin'] ////其中2为步长,也就是每个一个取个值
- 元组
元组是只读的列表,无法修改,使用小括号;如:
name1=("ming","hua")
- 字典
字典是key:value的数据类型,使用大括号创建字典;如:
city = {
'china':'beijing'
'english':'lundun'
}
其中china和english是key,beijing和lundun是键值;
注意:key值是无序的,且必须是唯一的;
增加
>>> city['america'] = 'huashengdun' >>> print(city) {'america': 'huashengdun', 'english': 'lundun', 'china': 'beijing'}
修改
>>> city['america'] = 'Washington' >>> print(city) {'america': 'Washington', 'english': 'lundun', 'china': 'beijing'}
多级字典嵌套
>>> city = { ... 'china':["beijing","hebei",'sichuan','yunnan'], ... 'english':["london","bath",'birmingham'] ... } >>> print(city) {'english': ['london', 'bath', 'birmingham'], 'china': ['beijing', 'hebei', 'sichuan', 'yunnan']} >>>city['english'] += 'derby' {'english': ['london', 'bath', 'birmingham', 'd', 'e', 'r', 'b', 'y'], 'china': ['beijing', 'hebei', 'sichuan', 'yunnan']} >>> city['english'][5] = 'derby' >>> print(city) {'english': ['london', 'bath', 'birmingham', 'd', 'e', 'derby', 'b', 'y'], 'china': ['beijing', 'hebei', 'sichuan', 'yunnan']}
删除
>>> name = { ... "ming":"27", ... "fei":"33", ... "min":"1" ... } >>> name.pop('ming') '27' #删除ming >>> print(name) {'fei': '33', 'min': '1'} >>> name['jun']='30' >>> name['ting']='24' >>> name['long']='31' >>>name {'jun': '30', 'ting': '24', 'fei': '33', 'min': '1', 'long': '31'} >>> name.popitem() ('jun', '30') #随机删 >>> print(name) {'ting': '24', 'fei': '33', 'min': '1', 'long': '31'} >>> del name['fei'] >>> {'ting': '24', 'min': '1', 'long': '31'}
其他操作
#打印字典里的值:values() >>> name = { ... "ming":"27", ... "fei":"22" ... } >>>name.values() dict_values(['27', '22']) #打印字典里的key值 >>> name.keys() dict_keys(['ming', 'fei']) >>> name1 = { ... 'zeze':'88', ... 'xiangfei':'23', ... 'hengxi':'27' ... } #更新字典 >>> name.update(name1) >>> name {'ting': '24', 'longlong': '25', 'xiangfei': '23', 'hengxi': '27', 'zeze': '88', 'ming': '27', 'fei': '22'} #列出字典里的内容 >>> name.items() dict_items([('ting', '24'), ('longlong', '25'), ('xiangfei', '23'), ('hengxi', '27'), ('zeze', '88'), ('ming', '27'), ('fei', '22')]) #循环 >>> for kv,vv in name.items():print(kv,vv) ... ting 24 longlong 25 xiangfei 23 hengxi 27 zeze 88 ming 27 fei 22 第二种循环方法:更高效,不用转换为列表 >>> for i in name:print(i,name[i]) ... ting 24 longlong 25 xiangfei 23 hengxi 27 zeze 88 ming 27 fei 22
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
- python3基础之“术语表(2)” 2019-08-13
- python3 之 字符串编码小结(Unicode、utf-8、gbk、gb2312等 2019-08-13
- Python3安装impala 2019-08-13
- 小白如何入门 Python 爬虫? 2019-08-13
- python_字符串方法 2019-08-13
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash