BS-1python基础知识-1.4字典表dict,元组tuple,文件,类型汇总,

python字典表dict、元组tuple、文件、类)

PyCharm介绍

1.重新创建新的项目
在这里插入图片描述
左侧为之前操作过的项目,右侧中间Creat New Project,创建新项目
2.打开之后
在这里插入图片描述
左侧为给定的项目模板
纯粹的pythonPure Python
右侧:
第一行location:创建的项目位置在哪里
第二行Interpreter:解释器—windows下的python.exe在哪里。验证了python为解释性语言。
由于我用的是anaconda的python,而且需要用到anaconda集成好的许多包,因而用anaconda的解释器
在这里插入图片描述
project interpreters:最后一个,python 3.7 D\Anaconda\python.exe,这样会连带导入anaconda中的包。
新建项目时候没设置好也没关系,可以在进入项目后file—settings,左侧project interpreter中去设置
3.之后的操作
在这里插入图片描述
新建文件在这里插入图片描述
项目名称那里,右击—new—文件模板。
在pycharm中使用交互式命令符
在这里插入图片描述
python console
进去之后,已经帮我们配置好了,直接进入了python交互式环境(下面),且确定了python的运行路径(左上角),新创建的文件自动保存到这个路径下。
Terminal
显示windows的交互式命令行,可以使用windows命令

字典表dict

1.特点:键和值配对,目的:使用某一个键找值
字典表的声明:花括号{}
在这里插入图片描述
另一种声明方式
在这里插入图片描述
字典表中可包含字典表支持嵌套
字典表中的字典表也可通过双重[]来双重检索
在这里插入图片描述
2.操作
放进去新的配对键值:
在这里插入图片描述
简单定义一个新的就可以,不用管顺序。
但是如果只访问不存在的键值就不可以。
在这里插入图片描述
查询字典表中的某一项值,用中括号加索引。[]
在这里插入图片描述
检索某个键值可用.get方法,dict中没有也不会报错
在这里插入图片描述

#,get方法,dict中没有这个键值返回一个默认值
d.get('price',0.0)

只检索键/只检索值.keys方法,.values方法,返回的结果是视图(看起来是列表,其实不是),但可以像列表一样去遍历
在这里插入图片描述
在这里插入图片描述
.items方法:键和值都有
在这里插入图片描述在这里插入图片描述
支持原位改变在这里插入图片描述
合并2个字典表.update方法
在这里插入图片描述
删除dict中的某一项.pop(弹出)方法
在这里插入图片描述
不支持排序,但可以按照特定顺序展示出来:将keys()放入列表
在这里插入图片描述
先打印出keys,再将打印出的视图编到一个列表中,再排序。
在这里插入图片描述
在这里插入图片描述
sorted全局函数可以排序任何可遍历的对象
在这里插入图片描述
3.区分于list
在这里插入图片描述
list有顺序,通过索引下标(顺序数值)来访问,更改list中元素时也要根据顺序数值来。
不能访问及随意加入原本list中不存在的值(这个索引下标不逊在:list index out of range)。添加更改要用到list的方法insert。
在这里插入图片描述

元组tuple

1.任意对象的有序集合
2.通过索引下标访问
3.属"不可变"类型,不支持原位改变,顺序固定
4.长度固定,任意类型,任意嵌套
1.声明
在这里插入图片描述
小括号()
tuple的加法
不用小括号也可以默认为tuple

# 赋值声明
x=(40,)
x=40,
len(x)

2.操作
tuple可遍历
在这里插入图片描述
在这里插入图片描述在这里插入图片描述
推导语法
在这里插入图片描述
访问,index函数-检索,.count函数-统计数量,统计某个元组段在元组中出现的次数。
在这里插入图片描述
3.namedtuple命名的元组-实现类这个东西,避免字典表松散的缺点
是tuple和class类,dict三者的混合体

#导入
from collection import namedtuple
#定义,其中有一个列表,
Employee=namedtuple('Employee',['name','age','department','salary'])
#导入值
jerry=Employee('Jerry',age=30,department='财务部’,salary=9000)
jerry.name
jerry.salary

应用方式就像一个类,类的方法
在这里插入图片描述

文件

知识结构
在这里插入图片描述
1.相当于创建的一个对象,链接到本机上的文件。内部运行过程:open函数
在这里插入图片描述
open基本语法
file=open(‘文件名’,mode)
在这里插入图片描述
2.几种操作模式:
r:read打开文件,只读模式
w:写入内容 write
a:有了一个文件,也有字,写的时候不想影响之前的,追加信息,append
在上述操作之后加参数:比如b(bineary二进制),操作二进制文件,比如+(表示既可读又可写)
实例

#创建文件,新文件要写入内容
myfile=open('hello.txt','w')

之后刷新:就会存在项目路径中
synchronize:使同步,使合拍,即刷新
在这里插入图片描述

#写入内容
myfile.write('优品课堂\n')
myfile.write('hello world!\n')
#保存更改,关闭
myfile.close()
#打开文件可验证
#读取信息,open也可用于打开已经存在的文件,将其赋值于新的变量
f=open('hello.txt')
#read相当于指针,read()指定了所有内容,再次read()就没有内容了。也可以一行一行指定
f.read()
#重新读取,一行读取
f=open('hello.txt')
f.readline()

在这里插入图片描述
在这里插入图片描述
读取成列表readlines方法,读取所有行到列表中
在这里插入图片描述
遍历列表中的行
在这里插入图片描述
指定文件内容的编码类型

f=open('course.txt','w',encoding='utf8')
f.write('优品课堂 python教程\n')
f.write('www.codeclassroom.com')
f.close

在这里插入图片描述
3.读取二进制文件
在这里插入图片描述
后面的rb,r是read,b是bin(bineary)
python中的数据有类型,将不同类型数据往文本中存,可能会导致类型丢失(编程文本).
实例
声明变量,数据
在这里插入图片描述
新建文件,打开文件去编辑,在文件中写入内容(此处写入整数和一个列表)
格式化方法往文件中写入内容
往文件中写入列表,首先要将列表变为字符串(str函数)
在这里插入图片描述
在这里插入图片描述
把数据读取出来,并且保留数据类型
调用字符串的方法:先用/n做分割,再将字符串转换为列表
注意:在python中,想要用文本文件来存储数据类型,麻烦,易出错。
实际开发中,应用“序列化概念”——把在程序运行过程中,原本在内存中表现的数据结构,直接存成序列化为某一个结构,再某个地方(本机中就是一个二进制文件),需要时候再还原回来,还原后能保持之前的结构形态和状态。使用模块pickle
pickle:可以直接存储或读取本地python类型的对象。

# 创建字典表
d={'a':1,'b':2}
# 存为文本文件,可以先将其转换为字符串,但是结果为字符串
# 用pkl方法,w是写入,b是二进制,表示以二进制的方式写入
f=open('datafile.pkl','wb')
#调用pickle模块
import pickle 
# 调用方法将字典表塞入到那个文件中,dump方法,dump(倾倒),将d塞到f里面,dump(对象,目标文件)
pickle.dump(d,f)
# 路径中显示出一个pickle文件
f.close()
#刷新,会看到新增一个pickle文件。二进制文件,用记事本打开没有意义。
# 二进制方法读取
open('datafile.pkl','rb')
#pkl方法读取,load方法导入f
f=open('datafile.pkl','rb')
data=pickle.load(f)
#data是字典表

在这里插入图片描述
close
忘记close方法去关闭打开的文件
with方法
在这里插入图片描述
通过with方法将其放到一个临时的上下文变量中,一旦跳出了执行范围,自动释放操作的f指向的文件对象,自动close。
在这里插入图片描述

数据类型汇总

在这里插入图片描述
1.集合
在这里插入图片描述
序列
可变和不可变
不可变:string
可变:list,tuple,字节数组
映射(mapping),一个分支:字典表
集合set:声明用花括号{},与字典的区别是只有值没有键,且其中不能有重复值。
2.可调用
函数function
生成器Generator
类class
方法
在这里插入图片描述
在这里插入图片描述

# 列表中包含字符串,列表(列表中又包含元组,元组中包含列表和数字),数字
l=['abc',[(1,2),([3],4)],5] 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值