列表

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)
最后修改:2020 年 10 月 18 日
如果觉得我的文章对你有用,请随意赞赏