设为首页 收藏本站
查看: 1034|回复: 0

[经验分享] python学习笔记一:数据类型

[复制链接]

尚未签到

发表于 2015-4-23 07:52:53 | 显示全部楼层 |阅读模式
一、Python文件类型
  1、源代码
  hello.py:



1 #!/usr/bin/python
2 print "hello world"
  2、字节代码:python源文件经编译后生成的扩展名为“pyc”的文件
  编译方法(compile.py):



import py_compile
py_compile.compile('hello.py')
  然后执行:



$ python compile.py
  会生成二进制的 hello.pyc 文件
  3、优化代码:经过优化的源文件,扩展名为 pyo
  在命令行下执行下面的命令优化:



$ python -O -m py_compile hello.py
二、python 变量
  python变量赋值(可变与不可变)

三、python运算符
  1、整数除法 //
  即只取结果中的整数部分:



>>> 3.0 // 2
1.0
>>> 3 // 2
1
  2、求幂运算 **



>>>3**3
27
>>>3**2
9
  3、逻辑与、逻辑或、逻辑非



>>> 1>2 and 3>2
False
>>> 2>1 and 3>2
True
>>>1>2 or 3>2
True
>>>1>2 or 1>3
False
>>> not 1>2
True
>>> not 2>1
False
  4、运算符优先级:
DSC0000.jpg

四、python 数据类型
  1、数字:分整型、长整型、浮点、复数
  其中复数(用j表示):



>>> a=3.14j
>>> type(a)

>>>
  2、字符串:单双引号一样



>>> str1="a"
>>> str2='a'
>>> id(str1)
140710100204544
>>> id(str2)
140710100204544
>>> mail="""tom:
...     i am jack
...     goodbye
... """
>>> print mail
tom:
i am jack
goodbye
>>>
  切片:[start:stop:step]
  即:[开始索引:结束索引:步长值]
  开始索引:同其它语言一样,从0开始。序列从左向右方向中,第一个值的索引为0,最后一个为-1
  结束索引:切片操作符将取到该索引为止,不包含该索引的值。
  步长值:默认是一个接着一个切取,如果为2,则表示进行隔一取一操作。步长值为正时表示从左向右取,如果为负,则表示从右向左取。步长值不能为0
  注明:如果是string[ : ]的模式,那么就是[start:stop]
  示例:



>>>exam="abcdefghi"  
>>>print exam[:-1]
abcdefgh  
>>>print exam[2:]
cdefghi  
>>>print exam[:7:2]
aceg  
>>>print exam[:3:-1]
ihgfe
  注意:最后一行,因为第三个参数是-1,所以是倒序输出的,但是此时的索引并没有倒序排列
  3、列表:处理一组有序项目的数据结构,是可变类型数据,用[]表示,包括了多个以逗号隔开的项目。



>>> l=['jim',25,'male']
>>> l
['jim', 25, 'male']
>>> type(l)

>>> l[0]
'jim'
>>> l[0]='tom'
>>> l[0]
'tom'
>>> l
['tom', 25, 'male']
  空列表:



>>>l=[]
  只有一个值:



>>>l=['abc']
  列表常用方法:
  取值:list[index] 或者 list[start:end:offset]
  追加:list.append(x);
  追加列表:list.extend([x,y]);结果为[...,x,y],注意跟append的区别
  删除:del(list[index]) 或者 list.remove(list[index])
  修改:list[index]=x
  查找:var in list



>>>l=['a',1]
>>>'a' in l
True
>>>'b' in l
False
  4、元组:跟列表类似,只是跟字符串一样是不可变的,即你不能修改元组(只能在内存中重新创建一个)。


  • 元组通过圆括号中用逗号分隔的项目定义
  • 元组通常用在使语句或用户定义的函数能够安全地采用一组值的时候,即被用的元组的值不会改变



>>>userinfo=("tom", 30, "man")
>>>userinfo[0]
"tom"
  空元组:



>>>t=()
  单一元素的元组:



>>>t=(1,)
  注意,不能省略逗号
  用变量接收元组:



>>> t
('jim', 25, 'man')
>>> name,age,gender=t
>>> name
'jim'
>>> age
25
>>> gender
'man'
>>>a,b,c=(1,2,3)
>>>a
1
>>>b
2
>>>c
3
  5、字典:python中唯一的映射类型(哈希表)
  创建方式:
  (1){}



>>>dic={0:0,'a':'abc'}
>>>dic[0]
0
>>>dic['a']
'abc'
  (2)使用工厂方法dict()



>>> fdict=dict([('x',1),('y',2)])
>>> fdict
{'y': 2, 'x': 1}
  (3)fromkeys():字典中的元素具有相同的值,默认为None



>>> d={}.fromkeys(('x','y',0), -1)
>>> d
{'y': -1, 'x': -1, 0: -1}
  字典常用方法:
  (1)、使用键值访问更新
  (2)、del dict1['a']删除字典中键值为a的元素
  (3)、dict1.pop('a') 删除并返回键为'a'的元素
  (4)、dict1.clear()删除字典所有元素
  (5)、del dict1 删除整个字典
  (6)、str(dict1) 转换为字符串
  (7)、get(key[, msg]) 如果key不存在返回msg(没有为空)值
  (8)、dict1.items() 返回键值对元组的列表



>>> d
{'a': 1, 'b': 2}
>>> d.items()
[('a', 1), ('b', 2)]
  (9)、dict1.keys() 返回字典中键的列表



>>> d
{'a': 1, 'b': 2}
>>> d.keys()
['a', 'b']
  (10)、dict1.setdefault(key,default=None) 若key存在则返回其value,否则dict1[key]=default
  (11)、dict1.update(dict2) 将dict2中的键值对添加到字典dict1中,如果有重复就覆盖,否则添加。
  (12)、len(dict1) 返回字典中有多少项



>>> d
{'a': 1, 'b': 2}
>>> len(d)
2
  6、序列:列表、字符串、元组都是序列
  切片:序列后跟一个方括号,方括号中有一对用冒号隔开的可选数字,数字是可选的,冒号是必须的。如:



>>>exam="abcdefghi"  
>>>print exam[:-1]
abcdefgh  
>>>print exam[2:]
cdefghi  
>>>print exam[:7:2]
aceg  
>>>print exam[:3:-1]
ihgfe
  索引:序列后跟一个方括号,方括号中有一个数字(可以是负数)。如:



>>>exam="abcdefghi"  
>>>print exam[0]
a
五、序列基本操作
  1、len:序列长度



>>>exam="abc"  
>>>len(exam)
3
  2、+:连接两个序列



>>>str1="abc"  
>>>str2="d"
>>>str1+str2
abcd
  3、*:重复序列元素



>>>str1="abc "  
>>>str1*3
abc abc abc
  4、in:判断元素是否在序列中



>>>str1="abc "  
>>>'c' in str1
True
>>>'x' in str1
False
  5、max:返回最大值



>>>s='12345'
>>>max(s)
'5'
  6、min:返回最小值



>>>s='12345'
>>>min(s)
'1'
  7、cmp(tuple1, tuple2):比较两个序列值是否相同



>>>str1='abc'
>>>str2='123'
>>>cmp(str1,str2)
1
>>>str1='1'
>>>cmp(str1,str2)
-1
>>>str1='123'
>>>cmp(str1,str2)
0
  六、

运维网声明 1、欢迎大家加入本站运维交流群:群②:261659950 群⑤:202807635 群⑦870801961 群⑧679858003
2、本站所有主题由该帖子作者发表,该帖子作者与运维网享有帖子相关版权
3、所有作品的著作权均归原作者享有,请您和我们一样尊重他人的著作权等合法权益。如果您对作品感到满意,请购买正版
4、禁止制作、复制、发布和传播具有反动、淫秽、色情、暴力、凶杀等内容的信息,一经发现立即删除。若您因此触犯法律,一切后果自负,我们对此不承担任何责任
5、所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其内容的准确性、可靠性、正当性、安全性、合法性等负责,亦不承担任何法律责任
6、所有作品仅供您个人学习、研究或欣赏,不得用于商业或者其他用途,否则,一切后果均由您自己承担,我们对此不承担任何法律责任
7、如涉及侵犯版权等问题,请您及时通知我们,我们将立即采取措施予以解决
8、联系人Email:admin@iyunv.com 网址:www.yunweiku.com

所有资源均系网友上传或者通过网络收集,我们仅提供一个展示、介绍、观摩学习的平台,我们不对其承担任何法律责任,如涉及侵犯版权等问题,请您及时通知我们,我们将立即处理,联系人Email:kefu@iyunv.com,QQ:1061981298 本贴地址:https://www.yunweiku.com/thread-59786-1-1.html 上篇帖子: python开发_python操作mysql数据库 下篇帖子: 教为学:python学习之路(一):python源码安装
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

扫码加入运维网微信交流群X

扫码加入运维网微信交流群

扫描二维码加入运维网微信交流群,最新一手资源尽在官方微信交流群!快快加入我们吧...

扫描微信二维码查看详情

客服E-mail:kefu@iyunv.com 客服QQ:1061981298


QQ群⑦:运维网交流群⑦ QQ群⑧:运维网交流群⑧ k8s群:运维网kubernetes交流群


提醒:禁止发布任何违反国家法律、法规的言论与图片等内容;本站内容均来自个人观点与网络等信息,非本站认同之观点.


本站大部分资源是网友从网上搜集分享而来,其版权均归原作者及其网站所有,我们尊重他人的合法权益,如有内容侵犯您的合法权益,请及时与我们联系进行核实删除!



合作伙伴: 青云cloud

快速回复 返回顶部 返回列表