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]