转载 原文Python学习之路【第二篇】-pyc简介、Python常用的数据类型及其用法和常用运算符https://www.cnblogs.com/linupython/p/5880280.html
1、数据类型
#!/usr/bin/env python
# -*- coding:utf-8 -*-
print(type(2/3)) # <class 'float'>
print(type(2*3)) # <class 'int'>
print((1+2)>3) # False
print((1+2)==3) # True
2、字符串
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# strip去除首尾特殊字符
a=" This is a book.\n"
print(a)
a=a.strip()
print(a)
# split按指定分隔符分割字符串
b="Alex Bob Jack HH"
print(b)
b=b.split(" ")
print(b)
# join按指定分隔符连接字符串'sep'.join(seg)
print(' '.join(b))
# format格式转换1
c1="Hi {name}, Let's {do_something}"
d1=c1.format(name='Jack',do_something='python')
print(d1)
# format格式转换2
c2="Hi {0},Let's {1}"
d2=c2.format('Jack','python')
# [:]切片
e="Let's python"
print(e[6:])
print(e[:])
print(e[0:4])
# center字符串居中,均匀填充str.center(length,"char")
print(e.center(20,"*"))
print(e.center(19,"*"))
# find查找字符串首次出现位置
print(e.find("L"))
print(e.find('t'))
# 判断字符串的格式和内容
# isalnum 判断字符串是否有字母和数字组成
# startswith 判断是否以某个字符开头
# endswith 判断是否以某个字符结束
# lower 所有字母转换成小写
# upper 所有字母转换成大写
f="23edtg9v%"
print(f.isalnum())
print(f.startswith("2"))
print(f.endswith("e"))
print(f.lower())
print(f.upper())
3、列表1
#!/usr/bin/env python
# -*- coding:utf-8 -*-
list1=[]
list2=[1,2,3]
print(list1)
print(list2)
# 访问list里的元素1
print(list2[0])
print(list2[1])
print(list2[2])
print(list2[-1])
print(list2[-2])
# 访问list里的元素2(切片)
print(list2[0:3])
print(list2[1:2])
print(list2[1:-1])
print(list2[:])
# 连续切片操作访问元素
name=["Jack","Tim","Jessie","Frank","Mr=Merry"]
print(name[1:4])
print(name[1:4][1])
print(name[1:4][1][:4])
print(name[1:4][1][:4][1])
# 修改某个元素的值
name[0]="Jim"
print(name[0])
print(name[:])
name.insert(1,"Tim1")
print(name[:])
# append追加元素到末尾
name.append("Tim2")
print(name[:])
# 对于定义的空数组,第一次复制时一定要使用append方法追加,如果使用定义列表的方法复制就会报错
# 删除元素(remove)
name.remove("Tim2")
print(name[:])
# 删除元素(pop)
name.pop(1)
print(name[:])
# 删除元素(del)
del name
print(name[:])
# 步长,默认为1
name=['Jack', 'Jim', 'Tim', 'Jessie', 'Frank', 'Merry']
print(name[::])
print(name[::3])
4、列表2
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 判断某个元素是否在列表中in
name=['Jack', 'Jim', 'Tim', 'Jessie', 'Frank', 'Merry']
print("Alex" in name)
print('Alex' not in name)
# 获取元素索引位置index
print(name.index('Jack'))
print("The index is : %s"%name.index("Jack"))
# 统计元素出现次数count
print(name.count("Jack"))
# 合并list,extend
list1=[1,2,3,"Jack"]
list2=[4,5,"Jim"]
list1.extend(list2)
print(list1)
# 正向排序sort
list3=[1,3,5,2,6,5]
list3.sort()
print(list3)
# 列表反转reverse
print(list3)
list3.reverse()
print(list3)
# list的嵌套
list4=[1,1,2,[5,2,5],4]
print(list4[3][:])
# 浅copy,第一层元素独立,嵌套元素共享内存空间
list5=list4.copy()
print(list5)
list5[3][0]=100
print(list5)
print(list4)
print(id(list4[3]))
print(id(list5[3]))
print(id(list4))
print(id(list5))
# 深copy,deepcopy,两者完全独立,需要导入copy,浅copy中list.copy()相当于copy.copy()
import copy
print(list4)
list6=copy.deepcopy(list4)
print(list6)
# 列表遍序1,不能打印索引
for i in list6:
print(i)
# 列表遍序2,同时打印索引enumerate
for i,j in enumerate(list6):
print(i,j)
5、元组
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 一旦定义后不可更改对元素的指向(并非元素一旦定义就不可更改),相当于只读列表
# 元组只支持count和index函数,也可以通过索引来获取元素
# 元组定义1
members=("Jack","Bob","Frank")
print(members)
# 元组定义2,tuple
language=tuple(("C","C++","PYTHON"))
print(language)
# index和count
print(members.index("Bob"))
print(language.count("C"))
6、字典
# 唯一映射类型,采用键值对(key-value)的形式存储数据
# 无序存储,python对key进行哈希函数运算,根据结果决定value存储地址
# key必须可哈希,即不可变,同一个key必须唯一
# 定义
dict={"name":"Alex","age":"25","sex":"boy","address":"beijing"}
print(dict)
# 常用操作
# 访问
print(dict["name"])
# 更新
dict["sex"]="male"
print(dict["sex"])
# 删除1(del)
del dict["address"]
print(dict)
# 删除1(pop)
dict.pop("age")
print(dict)
# 获取字典长度,key值对的个数,len
print(len(dict))
# 常用内置方法
# keys --以列表形式返回字典的所有key
print(dict.keys())
# values --以列表形式返回字典的所有value
print(dict.values())
# items --返回一个包含键值元组的列表
print(dict.items())
# get --返回指定key对应的value,若key不存在则返回默认指定的值,判断key值是否存在
print(dict.get("age",24))
# setdefault --若key在字典中存在,则用默认值覆盖更新原值,否则直接添加键值对到原字典中
dict.setdefault("age",22)
print(dict)
# update --将字典dict2的键值对复制添加到字典dict1中
dict1={'Name':'Alex','Sex':'Male','Add':'Beijing'}
dict2={1:'Beijing',2:'Shanghai',3:'Guangzhou'}
dict1.update(dict2)
print(dict1)
# 字典与列表对比
# 字典占用大量内存,插入和查找速度极快,不会随着key的增加而变慢
# 列表查找和插入的时间随着元素的增加而增加,占用空间小,内存浪费少
# 综上,字典是在用空间换取时间(执行效率)
7、常用运算符
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# 数据运算+,-,*,/,**,%,//(加减乘除幂取整取余)
print("5+2=%s"%(5+2),"5-2=%s"%(5-2),"5*2=%s"%(5*2),"5**2=%s"%(5**2))
print("5%%2=%s"%(5%2),"5//2=%s"%(5//2))
# 比较运算==,!=,>,<,<=,>=,<>
# 赋值运算=,+=,-=,*=,/=,**=,%=,//=
# 逻辑运算and,or,not
# 成员运算in,not in
# 身份运算is,is not
# 按位运算&,|,^,>>,<<,~