您的位置:首页 > 编程语言 > Python开发

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__

 

 

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: