运行环境

IDE: PyCharm
解释器:python3.6.4
Python 是一门有条理的和强大的面向对象的程序设计语言,代码从上到下依次执行

列表

name_list=["小明","小主"]
print(name_list[1])
# 查询索引
name_list.index("小明")
#修改
name_list[0]="小哥"
#添加
#append 方法可以向列表的末尾追加数据
name_list.append("小库")
#insert 方法可以在列表的指定索引位置插入数据
name_list.insert(1,"小晓")
#extend方法可以在列表末尾追加一个列表的完整内容
temp_list=["假人","真人"]
name_list.extend(temp_list)
#删除
#remove 方法可以从列表中删除指定数据 如果有多个一样的数据 删除第一个
name_list.remove("小主")
#pop方法默认可以删除列表中最后的一个数据
name_list.pop()
#pop方法可以指定删除元素的索引
name_list.pop(2)
#del关键字删除数据 关键字本质是用来将一个变量从内存中删除的
#后续的代码就不能再使用这个变量了
#del name_list[1]

#列表中有多少个元素
list_length = len(name_list)

#conut 方法可以统计列表中某个数据出现的 次数
print("列表中包含 %d 个元素" % list_length)
#clear 方法可以清空列表
name_list.clear()

#排序
name2_list=["how","kool","koot","buool"]
num_list =[34,4,5,65]
#升序
#num_list.sort()
#name2_list.sort()
#降序
#num_list.sort(reverse=True)
#name2_list.sort(reverse=True)

#逆序(翻转)
name2_list.reverse()
num_list.reverse()
print(num_list)
print(name2_list)

#print(keyword.kwlist)
#使用迭代遍历列表
"""
顺序的从列表中依次获取数据,每一次循环过程中,数据都
会保存在my_name 这个变量中,在循环体内部可以访问到
当前这一次获取到的数据
"""
for my_name in name2_list:
    print("我的名字是 %s" % my_name)

元组

#元组  一旦定义不可修改
name_Tuple=("werw","toll","dxr")
empty_tuple=()#空元组
single_tuple=(5,)#只含一个元素的元组要加逗号
print(name_Tuple[1])#取值
print(name_Tuple.index("dxr"))#去索引
print(name_Tuple.count("toll"))#统计计数
print(len(name_Tuple))

#使用迭代遍历元组
for my_Tuple in name_Tuple:
    #使用格式字符串拼接my——Tuple,不方便  因为保存的类型可能不同
    print(my_Tuple)
#元组与列表相互转换
#元组————>列表
#list(name_Tuple)
#列表————>元组
#tuple(name2_list)

字典

#字典
#字典是一个无序的数据集合,使用print函数输出字典时,通常输出的顺序和定义的顺序是不一致的!
xiaoming ={"name":"小明","age":19,"gender": True}
print(xiaoming)
#取值
print(xiaoming["name"])
#增加/修改  如果key不存在添加键值对  存在为修改
xiaoming["height"]=1.80
#删除
xiaoming.pop("age")
#统计键值对数量
print(len(xiaoming))
#合并字典
#如果被合并的字典中包含已经存在的键值对,会覆盖原有的键值对
temp_dict ={"weigth":134}
xiaoming.update(temp_dict)
#清空字典
#xiaoming.clear()
#遍历字典
for k in xiaoming:
    print("%s - %s" %(k,xiaoming[k]))

card_list =[
    {"name":"张三",
     "age" : 23},
    {"name":"李四",
     "age":22}
]
for card_info in card_list:
    print(card_info)

字符串处理

str1 ="hello python"
print(str1[4])
#遍历字符串的各个元素
# for c in  str1:
#     print(c)
#统计字符串长度
print(len(str1))
#统计某个(子)小字符串出现的次数
print(str1.count("o"))

#某一子字符串出现的位置 如果使用index传递的子字符串不存在, 程序会保错
print(str1.index("llo"))
print(str1.rindex("llo"))#从右边开始查找
#判断空白字符
space_str ="    \t\n\r"
print(space_str.isspace())
#三个判断数字方法
#都不能包含小数
num_str ="1"

print(num_str.isdecimal())#不可以使用\u00b2这是平方符号
print(num_str.isdigit())#可以使用\u00b2这是平方符号
print(num_str.isnumeric())#可以使用\u00b2这是平方符号 可以使用中文数字 如一千六


#判断是否以指定字符串开始
print(str1.startswith("hello"))
#判断是否以指定的字符串结束
print(str1.endswith("python"))
#查找指定的字符串 即求索引
#index方法也可以查找指定的字符串在大字符串中的索引
#find方法如果指定的字符串不存在会返回-1 index是报错
print(str1.find("llo"))
#替换字符串 str.replace("旧字符串","新字符串")
#replace 方法执行完成之后,会返回一个新的字符串
#注意:不会修改原有的字符串的内容
str1.replace("world","python")

#判断是否某一个元素是否在另一个元素中存在 返回值为true false
print("1" in "1,2,3")
print("1" not in "1,2,3")
#文本对齐
#str1.rjust()#右对齐
#str1.ljust()#左对齐
print(str1.center(20," "))#居中 即默认在左右两侧生产英文空格

#去除空白字符
# str1.rstrip()#清除右边空白字符
# str1.lstrip()#清除左边空白字符
# str1.strip()#清除左右空白字符

#拆分和连接
poem_str ="静夜思\t 李白\t 举头望明月\t 低头思故乡"
poem_list = poem_str.split()#默认为空格作为分割符
print(poem_list)

#合并字符串  使用" "为分隔符   list--》str
result_poem =" ".join(poem_list)
print(result_poem)

#切片
num_str2="0123456789"
#num_str2[开始:结束(不包括):度长] 倒数 用负值 -1为倒数第二个
print(num_str2[2:6])
print(num_str2[:])
print(num_str2[::2])
print(num_str2[2:-1])
print(num_str2[-1::-1])#实现了字符串倒序显示