列表
list1=[1,2,3]
lits1.inset[索引,数据]指定索引插入数据
list1.appedn('456')追加输入数据
打印效果 list1= [1,2,3,'456']
list1.extend([1,2])或者('1,2') 添加列表,
打印效果 list1= [1,2,3,1,2] 或者list1= [1,2,3,'1','2']
def list1[2] 内存删除索引指定的数据
list1.remove[数据] 删除第一个出现的数据
list1.pop(),删除指定索引数据,不指定删除最尾,可以
a = list1.pop(),用变量接收删除的数据
list1.clear() 清空列表
list1.index(数据) 返回索引的值
list1.count(数据) 查看数据出现的次数
list1.srot() 列表升序排序
list1.srot(reverse=True)列表降序排序
list1.reverse() 列表反转排序
涉及取值用中括号,涉及方法用小括号
enumerate()枚举地址跟数据
for i in enumerate(list1)
print(i,end=',')
输出结果 (0,1),(1,2),(2,3)
列表单个索引取值如果超出会报错,利用切片[:100],超出也不会报错
例子:a[1,2,3,4,5]
a[::2] 从头到尾,每隔2位取值,0开头不用写,取到最尾也可以不用写
结果 1,3,5
a[::-1]反方向取值
结果 5,4,3,2,1
a[5:1:-1]
结果 5,4,3,2
字典
adict1={'name':'lili','age':19}
adict1.keys() 打印所有键的值
adict1.values() 打印所有键对应的数据
adict1.items() 打印(键,数据),,以元组形式输出
输出结果 dict.items([('name','lili'),('age',19)])
adict1['name'] 输出键的值,如果不存在会报错
adict1.get['name'] 输出键的值,不存在会返回None
adict1.setdefault('height',1.75) 新增,没办法添加已有键
adict1.update({'height':1.75}) 更新字典,没有会增加,已有会覆盖
adict1['name'] ='lucy' 存在会覆盖,不存在会增加
del adict1 删除列表
adict1.pop(键值) 删除指定键及数据,不存在会报错
adict1.popitem()
删除最后一个,字典是无序的,在python2中,不知道每次最后的是 哪一组键值对
adict1.clear()清空列表
adict1={'name':'lili','age':18}
for k,v in adict1.items():
print(k,v)
#输出结果,name lili
age 18
for的完整语法
for i in list:
if
print(找到)
else:
print(找不到)
把else放在for语句下,如果循环判断不符合,最后输出找不到,
把else放在if 下,会每次都输出
不加else,会在找到后,还打印找不到
字符串
字符串分几大类
判断类型 9个方法
查找替换 7个
大小写转换 5
文本对齐 3
去除空白 3
拆分与连接 5
查看字符串长度
len(str)
查看子字符串在大字符串中出现的次数
str.count('小字符串'),查看在str中出现的次数
统计子字符串在大字符串中第一个出现的位置
str.index('小字符串')
不存在会报错
字符串的切片操作,同列表
字符串的判断
num_str = "1.1"
都不能判断小数
print(num_str.isdecimal()) # False
print(num_str.isdigit()) # False
print(num_str.isnumeric()) # False
unicode 字符串
num_str = "u00b2"
print(num_str.isdecimal()) # False
print(num_str.isdigit()) # True
print(num_str.isnumeric()) # True
中文数字
num_str = "一千零一"
print(num_str.isdecimal()) # False
print(num_str.isdigit()) # False
print(num_str.isnumeric()) # True
str.startswith('h')字符串以指定字符开始
str.endswith('h')字符串以指定字符结束
查找指定字符串
index()如果不存在会报错
str.find('h')
不存在返回-1
替换字符串
replace方法后,不会覆盖原来的内容,会返回一个新的字符串
str1 = str.replace('world','python')
转换字符串为小写
str.lower()
转换字符串为大写
str.upper()
str.strip()去除首尾空白字符
str.strip.center(20,' ')去除首尾空白字符,居中对齐
切割字符串
list=str.split() 默认空白字符,去除空白字符,并以空白位置组成列表
字符串拼接
把列表中的字符串拼接成一个字符串
list1 = ['h','o','o']
ret = ','.join(list1)
输出ret,结果'h,o,o'
- 支持列表,字符串,元组
[1,2]+[3,4] 打印 [1,2,3,4] - 重复 支持列表,元组,字符串
['1']*3 打印 ['1','1','1']
in 判断元素是否存在,支持字符串,元组,列表,字典
(1,2)<(1,3). 返回True
去重
集合去重
list1= [1,4,1,2,3,1]
new_list1=list(set(list1()))
打印 [1,2,3]
循环去重
for i in list1:
if not i in new_list1:
new_list1.append(i)
print(new_list1)
打印 [1,4,2,3]
new_list1.sort()
print(new_list1)
打印[1,2,3,4]
文件的读写
#win是gbk格式,python是unicode格式,不同格式无法处理,要转码。'r'是默认值,读模式,只能读,不能写,写模式是'w',写模式是创建,会覆盖新文件。'a'是追加,可读可写
a+ 读写文件,可读可写,写在最后
w+ 写读文件,可写可读,创建一个新文件,文件名如果相同,等于覆盖了原文件。
f = open('文件名','r',encoding = 'utf-8')#文件句柄,把文件的大小,位置等赋给f
data = f.read()
data1 = f.read()#data1会读不到东西,因为data读完之后,光标停在了末尾
f.write()#写操作
f.clear()#关闭
f.readlines()#按行读文件,文件大时很少用,都是以下方式来处理文件的读
#f变成叠代器,读一行,处理一行。
count = 0
for line in f:
if count ==9:
print(line)
count += 1
continue
f.tell()#查看光标位置,按字符来数,一个字母,就算一位。
f.seek()#返回0位置,可以加数字,回到指定字符位置
f.encoding#打印文件格式
f.fileno()#返回编号 ,操作系统专门处理接口io的编号
f.name #文件名
f.readble()#判断文件是否可读 writeble 判断 是否可写
f.flush()#刷新的意思,强制写入硬盘,不等缓存满了再写
例子:打印进度条
import sys
import time
for i in range(100):
sys.stdout.write("#")
sys.stdout.flush()#flush强制输出到终端,会慢慢显示出来,不等缓存满了再打印,如果不加,会全部输出,
time.sleep(0.1)
f.truncate()#截断,不写就是清空文件,写入数字就是从0开始到数字位置,后面全清空。
文件的修改
#a文件中有aaa,bbb,ccc三行,
f = open("a","r",encoding = 'utf-8')
f_new = open('b.txt','w',encoding = 'utf-8')
for line in f:
if "aaa" in line:
line = line.replace("aaa","kkk")
f_new.write(line)
f.close()
f_new.close()
with open('aa','a',encoding='utf-8') as f ,/
open('bb','a',encoding='utf-8') as f_new
pass
这样可以比较清晰看清打开了几个文件。
字符编码与转码
ascii码,只能存字母跟特殊字符,每个占一个字节,8位。不能存中文。
unicode 万国码,每个码占两个字节,16位
如果全用unicode,本来2m的文件,变成了4m
出现了‘utf-8',可变长的字符码,默认英文按ascii码存储,中文按3个字节。
特殊用法:
input输出框显示默认值
#利用input无输入时返回None,加if语句判断,无输入把显示的默认值赋给name,达到默认输入的结果
dict1 = {
"name":"小李",
"age":18
}
name = input('请输入姓名:dict1["name"]')
if len(name) == 0:
name = dict1["name"]
打印动态进度条
import sys
import time
for i in range(30)
sys.stdout.write("#")
sys.stdout.flush()
time.sleep(0.05)
3 条评论
你的文章让我感受到了不一样的风景,谢谢分享。 http://www.55baobei.com/ax7BaopUyc.html
::funny:82::
::funny:86::