Python开发【第二篇】:Python基础知识
2016-09-14 13:15
232 查看
Python基础知识
一、初识基本数据类型
类型:
int(整型) 在32位机器上,整数的位数为32位,取值范围为-2**31~2**31-1,即-2147483648~2147483647 在64位系统上,整数的位数为64位,取值范围为-2**63~2**63-1,即-9223372036854775808~9223372036854775807 long(长整型) 跟C语言不同,Python的长整数没有指定位宽,即:Python没有限制长整数数值的大小,但实际上由于机器内存有限,我们使用的长整数数值不可能无限大。 注意,自从Python2.2起,如果整数发生溢出,Python会自动将整数数据转换为长整数,所以如今在长整数数据后面不加字母L也不会导致严重后果了。 float(浮点型) 浮点数用来处理实数,即带有小数的数字。类似于C语言中的double类型,占8个字节(64位),其中52位表示底,11位表示指数,剩下的一位表示符号。 complex(复数) 复数由实数部分和虚数部分组成,一般形式为x+yj,其中的x是复数的实数部分,y是复数的虚数部分,这里的x和y都是实数。 注:Python中存在小数字池:-5 ~ 257
1、数字
更多2 是一个整数的例子。
长整数 不过是大一些的整数。
3.23和52.3E-4是浮点数的例子。E标记表示10的幂。在这里,52.3E-4表示52.3 * 10-4。
(-5+4j)和(2.3-4.6j)是复数的例子
2、布尔值
真或假 1 或 0
3、字符串
"hello world"万恶的字符串拼接: python中的字符串在C语言中体现为是一个字符数组,每次创建字符串时候需要在内存中开辟一块连续的空,并且一旦需要修改字符串的话,就需要再次开辟空间,万恶的+号每出现一次就会在内从中重新开辟一块空间。 字符串格式化
name = "alex" print "i am %s " % name #输出: i am alex
PS: 字符串是 %s;整数 %d;浮点数%f
字符串常用功能:- 移除空白
- 分割
- 格式化
- 长度
- 索引
- 切片
- 查找
- 其他
# 默认去除前后空格,()中可指定 username.strip()
分割:
# 分割 a='abc,ddc,adc' b=a.split(',') # 按符号合并 print('|'.join(a))
格式化:
# 格式化 msg='Hello,{name},I age is{age}' msg_print=msg.format(name='luke',age=101) print(msg_print) ------------------------------------------------ msg2='ha{0},ddd{1}' print(msg2.format('luke',33)) #简单格式化 a='yy' b=12 print('你好 我是%s,我的年龄是%d'%(a,b))
长度:
#长度 a='yy ddd hh' num=a.count('y') print(num) ----------------------- num=len(a) print(num)
索引:
# 索引 a='yy ddd hh' print(a[1])
切片:
# 切片 a='yy ddd hh' print(a[0:4])
查找:
# 查找 -1代表没找到 a='yy ddd hh' b=a.find('h') print(b)
其他:
# 填充字符 print(a.center(40,'-'))
# 判断是否为数字 age=12 age.isdigit()
# 判断是否有特殊字符,有为(False),没有为(True) a='yy!sdf' print(a.isalnum())
#判断以什么字符结尾 a='yy!sdf' print(a.endswith('df'))
# 大小写转换 a='yysdf' b='YYYDIS' print(a.upper()) print(b.lower()) print(a.upper().lower())更多
4、列表
创建列表:name_list = ['tlh', 'hello','seven', 'eric'] 或 name_list = list(['tlh','hello','seven', 'eric'])
注:操作前必须创建列表
基本操作:
- 索引
- 切片
- 追加
- 删除
- 长度
- 循环
- 包含
- 其他
索引
# 修改 name_list[0]='n' # 获取 name=name_list[3]
切片
# 直接取元素 print(name_list[0]) # 取列表中的一段 print(name_list[0:])# 表示取全部 print(name_list[1:3])# 取第一到二个元素 # 步长 print(name_list[0::2])
追加
# 在最后面追加 name_list.append('dd') print(name_list) #插入 name_list.insert(3,'dd') print(name_list)
删除
# 删除列表多个值(删除内存中的值) del name_list[0:2] # 删除所有 del name_list # 删除列表单个值 name_list.remove('tlh')
长度
#值为tlh的有几个 a=name_list.count('tlh')
包含
# in用于包含 if 'tlh' in name_list: print('正确') name_list = ['tlh', 'hello','seven', 'eric'] name_new_list=['cc','dd'] #包含另一个列表 name_list.extend(name_new_list) print(name_list)
循环
for i in range(name_list.count('tlh')): name_tag=name_list.index('tlh') name_list[name_tag]=999999999其他: 直接获取元素
print(name_list)
# 直接从列表中获取 name_list.pop(2) #获取最后一个 name_list.pop()反转
#反转 name_list.reverse() print(name_list)排序
# 排序 name_list.sort()复制
# 复制是共享一份数据,而嵌套的数据是内存的地址。分为浅cope和深cope #浅cope,最外面一层, name_list.copy() #深cope,完全复制一份,独立 import copy copy.deepcopy()更多
5、元组(有序且只能传数字)
创建元组:ages = (11, 22, 33, 44, 55) 或 ages = tuple((11, 22, 33, 44, 55))基本操作: 更多
7、set集合
set集合,是一个无序且不重复的元素集合
如:{"123","456","789"},{"abc","dce"}
#新建 s1={11,22,33} s2=set() s3=set([11,22,33])
常用操作:
- 新增
- 差异
- 删除
- 父、子序列
- 循环
- 长度
- 其他
新增
#增加 s=set() s.add(123)
#迭代增加
s1=set()
l1=[11,22,33,11]
l2=(11,22,44,55)
l3='abcdeadd'
s1.update(l1)
s1.update(l2)
s1.update(l3)
差异
#查找差异(不改变原值) s1={11,22,33} s2={22,33,44} #1、A中存在,B中不存在 s3=s1.difference(s2) # 2、对称差集 s3=s1.symmetric_difference(s2) ------------------------------------------------ #查找差异(改变原值) s1={11,22,33} s2={22,33,44} #1、A中存在,B中不存在结果更新到A s1.difference_update(s2) # 2、对称差集更新到A s1.symmetric_difference_update(s2) ------------------------------------------------- #交集 s3=s1.intersection(s2)
s1.intersection(s2)
s4=s1.isdisjoint(s2)如果没有交集,返回True,否则返回False
#并集
s3=s1.union(s2)
结果:{11,22,33,44}
s1.union(s2)
删除
#移除指定元素 s1={11,22,33} s2={22,33,44} #1、不存在不保错 s1.discard(11) #2、随机移除 ret=s1.pop() #3、不存在报错 s1.remove(11)
父、子序列
父序列包含子序列 s1={11,22,33} 父序列 s2={22,33} 子序列 #判断s2是否是s1的子序列,是返回True,否返回False s3=s2.issubset(s1) #判断s1是否是s2的父序列,是返回True,否返回False s3=s1.issuperset(s2)例
三元运算(三目运算),是对简单的条件语句的缩写
# 书写格式 result = 值1 if 条件 else 值2 # 如果条件成立,那么将 “值1” 赋值给result变量,否则,将“值2”赋值给result变量
运算符优先级:
更多内容:
http://www.runoob.com/python/python-operators.html
三、数据结构中特殊的方法
在列表、字典、元组、集合或者其他中,都会有__init__这样的特殊方法,它是在我们对方数据进行操作时,在python内部自动帮我们执行的方法。后续会在面向对象篇中写到。
查看:
print(dir(list))
如:
li=[11,22,33] #执行list __init__ li() #执行list __call__ li[0] #执行list __getitem__ li[0]=123 #执行list __setitem__ def li[1] #执行list __delitem__
相关文章推荐
- [转] 适用于 PHP 开发人员的 Python 基础知识
- windows上Python开发--3.Django的基础知识
- 适用于 PHP 开发人员的 Python 基础知识
- 适用于 PHP 开发人员的 Python 基础知识
- Python全栈开发之17、tornado和web基础知识
- 适用于PHP开发人员的Python基础知识
- Linux Python基础知识学习,使用Eclipse与Pydev搭建python开发环境
- 1. Python开发--基础知识
- python 爬虫开发所需基础知识 - urllib库的基本使用
- python基础语法知识 第二篇
- [转] 适用于 PHP 开发人员的 Python 基础知识
- windows上Python开发--3.Django的基础知识
- 适用于 PHP 开发人员的 Python 基础知识
- 适用于 PHP 开发人员的 Python 基础知识
- C#开发-基础知识及有用技巧
- 每一个软件开发人员绝对必须掌握的关于 Unicode 和字符集的最基础的知识 - A
- Windows Mobile开发基础知识
- AT91AM9200 USB HOST开发(二)—— USB基础知识介绍
- python模块之bsddb: bdb高性能嵌入式数据库 1.基础知识
- C#基础知识和开发技巧