python基础之语法、文件读写

一、pip的使用

plp是一个现代的,通用的Python包管理工具。提供了对Python包的查找、下载、安装、卸载的功能,便于我们对Python的资源包进行管理。

1.1、安装及配置

win+r 打开cmd
在这里插入图片描述

在安装Python时,会自动下载并且安装pip。

pip -V   //pip 20.2.1
exit()   //cmd退出python环境
pip install
pip uninstall
pip list   //显示已经安装的包
pip freeze  //显示已经安装的包,并且以指定的格式显示

注:建议安装包的路径:D:\download_install\python\Scripts

pip install ipython
pip install --upgrade pip  //安装pip22.1.1

pip -V

Traceback (most recent call last):  //碰见这种情况,
解决:d:\download_install\python\lib\site-packages\pip下的~ip换成pip
1.2、修改pip下载源
pip install 包名 -i 国内源地址
pip install ipython -i https://pypi.mirrors.ustc.edu.cn/simple/
就是从中国科技大学(ustc)的服务器上下载requests(基于python的第三方web框架)
国内常用的pip下载源列表:
http:/mirrors.alyun.com/pypi/simple/       //阿里云
https://pypi.mirrors.ustc.edu.cn/simple/   //中国科技大学
http://oypi.douban.com/simple/             //豆瓣douban
https://pypi.tuna.tsinghua.edu.cn/simple/   //清华大学
http:/pypumirrors.ustc.edu.cn/simple/      //中国科学技术大学

运行方式:

①原始终端

cmd

②使用ipython

pip install ipython -i https://pypi.douban.com/simple

③修改下载源为清华

pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

一般情况下需要安装的东西

pip install APScheduler
pip install Flask
pip install Flask-SQLAlchemy
pip install greenlet
pip install numpy
pip install pandas
pip install paramiko
pip install PyMySQL
pip install SQLAlchemy
pip install scapy
pip install Werkzeug
pip install xmltodict
pip install autopep8
pip install SimpleWebSocketServer
pip install comtypes
pip install matplot
pip install mysql-connector
pip install flake8
pip install xlrd
pip install openpyxl
pip install pyyaml
pip install nacos-sdk-python
pip install flask-cors
第二章、语法基础
2.1、数据类型及类型转换

数据才有类型,变量没有类型,使用type可以查看变量存储的数据类型

容器分类:

序列式容器:字符串、列表、元组

非序列是容器:字典、集合

1)数据类型

①Number(数字)

int(有符号整型)、long(长整型)、float(浮点型)、complex(复数)

②布尔类型bool

True、false

③String(字符串)

常见操作

获取长度len获取字符串长度len(str)
查找内容find找指定内容是否存在,存在:返回第一次索引位置;不存在:返回-1str.find(‘e’)
判断startswith、endswith判断字符串以谁开头/结尾str.startswith(‘w’);str.endswith(‘3’)
计算出现次数:count返回在start与end之间在mystr出现的次数str.count(‘w’)
替换内容:replace替换指定内容str.replace(‘w’,‘0’)
切割字符串:split切割str.split(‘#’)
修改大小写:upper、lower字符串大小写互改str.upper()、str.lower()
空格处理:strip默认去除两侧空格len(s1.strip())
字符串拼接:join字符串拼接s1.join(str)

④List(列表)

列表支持:位置删除(尾部、指定位置删除)、值删除

尾部效率高,不需要移动元素,尾删尾插

缺点:根据关键字查找效率低

优点:根据索引位置查找效率高

list.sort() 排序

增加append在末尾增加元素list.append(‘w’)
insert在指定位置插入元素list.insert(3,‘o’)
extend合并两个列表list.extend(li1)
删除pop删除最后一个list.pop()
remove根据元素的值进行删除list.remove(‘w’)
del根据下标进行删除del list[1]
修改给要修改的列表下标赋值list[0] = ‘a’
inin:存在true;不存在falseif shuru in list:
not innot in:不存在true;存在falseif shuru not in list:

⑤Tuple(元组)

元组与列表类似,元组元素不能修改,元组使用(),列表使用[ ]

元组不支持修改,支持遍历、查找操作

元组比列表更节省空间

元组是序列容器,支持索引、切片

index下标索引tuple1[0]
count
遍历while、for

注:

t1 = (3,)  //<class 'tuple'>   //元组中只有一个元素时,要在尾部添加一个逗号,不然类型就是列表
t = (1)  //<class 'int'>

⑥Dictionary(字典dict)

字典是非序列容器,字典用键值对key=>value存储,键是唯一的,值可以重复

字典查找效率高,但是比较占内存,字典以时间换空间

增加变量名[‘键’] = 数据dict1[‘height’] = [12,23]
删除del 删除指定元素del dict1[‘age’]
clear()
修改通过key查找,进行修改dict1[‘name’] = ‘eeee’
使用key查找dict1[‘name’]
get获取dict1.get(‘name’)

获取不存在的key会报错

字典的4种遍历方法

for key in person.keys():       #字典.key()获取字典的所有key
    print(key)
for value in person.values():    #字典.values()获取字典的所有的value
    print(value)
for key,value in person.items():
    print(key,value)
for item in person.items():       #遍历字典的项/元素
    print(item) 

2)类型转换

int(x)将x转换为一个整数
float(x)将x对转换为一个际点数
str(x)将对象X转换为字符串
bool(x)将对象x转换成为布尔值

注:

①123.456和12ab 字符串,都包含非法字符,不能被转换成为整数,会报错

print(int(“123,456"))

print(int(“12ab"))

2.2、运算符

1)算数运算符

      • / // % ** ()

2)赋值运算符

=

b = a = 10   //可连续赋值
f,g,h = 1,2,3  //连续给多个变量赋值

3)复合赋值运算符

+= -= *= /= //= %= **=

4)比较运算符

== != > >= < <=

5)逻辑运算符

and or not

2.3、输入输出

input()

print()

2.4、流程控制语句

if、if else、elif、for、range

a = 4
if a > 5:
    print('a大于5')
else:
    print('a小于5')
#elif
socle = int(input('输入成绩'))
if socle >= 90:
    print('优秀')
elif 80< socle <90:
    print('中等')
elif 60 < socle < 80:
    print('一般')
elif socle <= 60:
    print('不合格')  
#for
s = 'china'
for i in s:
    print(i)
for j in range(6):   #range(6)表示0-5;range(2,12,4)表示每次循环加42,6,10
    print(j)
2.5、切片

切片是指对操作的对象载取其中一部份的操作。字符率、列表、元组都支持切片操作。

切片的语法:[起始结束:步长],也可以简化使用[起始结束注意:选取的区间从”起始“位开始,结束位的前一位结束(不包含结束位本身),步长表示选取间隔。

str[3:7]    //str= '01234567'  结果3456   起始开始,不包含结束
str[3:7:2]  //结果34   从索引3开始切两个字符
str[3:]    //结果34567   从索引3开始的后面所有
str[:3]     //结果012   开始到索引3
2.6、函数
c = 33
def sum(a,b):
    return a * 2 + b +c
print(sum(1,3))
第三章、文件
3.1、文件的打开与关闭

open(文件路径,模式) w可写r可读

绝对路径:

fp = open('2.txt','w')  #open(文件路径,模式)  w可写r可读  创建了一个2.txt文件
fp.write('我是python创建的文件2.txt,想说hello')
fp.close()  //关闭文件

#open方法默认使用gbk编码,要保存汉字需要设置编码格式为'utf-8'
fp = open('douban.json','w',encoding='utf-8')
fp.write(content)
#简便写法
with open('doub.json'),'w',encoding='utf-8') as fp:
	fp.write(content)
3.2、文件的读写
fp = open('test/2.txt','r')
content = fp.read()       #读文件内容read一个字节一个字节读
content = fp.readline()   #一行一行读,但只能读一行
content = fp.readlines()   #按行读取,读取所有数据,以列表形式返回,列表元素,是一行一行的数据
print(content)
3.3、序列化与反序列化

文件操作,把字符串写入本地文件

而对象(列表、字典、元祖)必须进行序列化,才能写入到文件

因此,对象–>字节序列(序列化) 字节序列—>对象(反序列化)

Python中的JSON模块实现数据的序列化和反序列化。

序列化的2种方式dumps()和dump()

import json
name_list = ['www','dddd']
xl = json.dumps(name_list)   //dumps先序列化
fp.write(xl)
json.dump(name_list,fp)     //dump会直接把对象序列化并写入fp
fp.close()

反序列化的2种方法load、loads

fp = open('2.txt','r')   //
content = fp.read()
json.loads(content)
json.load(fp)    //上面两步合成一步

访问模式

r以只读方式打开文件。文件的指针将会放在文件的开头。如果文件不存在,则报错。这是默认模式。
w打开一个文件只用于写入。如果该文件已存在则将其秘盖。如果该文件不存在,创建新文件。
a追加模式。如果该文件已存在,新内容追加在已有内容之后;文件不存在,创建新文件并写入。
r+打开一个文件用于读写。文件指针将会放在文件的开头。
w+打开一个文件用于读写。如果该文件已存在则将其戳盖。如果该文件不存在,创建新文件。
a+打开一个文件用读写。如果该文件已存在,文件指针将会放在文件的结尾。文件打开时会是追加模式。如果该文件不存在,创建新文件用于读写。
rb以二进制格式打开一个文件用于只读。文件指针将会放在文件的开头。
wb以二进制格式打开一个文件只用于写入。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab以二进制格式打开一个文件用于追加。如果该文件已存在,文件指针将会放在文件的结尾。也就是说,新的内容将会被写入到已有内容之后。如果该文件不存在,创建新文件进行写入。
rb+以二进制格式打开一个文件用于读写。文件指针将会放在文件的开头。
wb+以二进制格式打开一个文件用于读写。如果该文件已存在则将其覆盖。如果该文件不存在,创建新文件。
ab+以二进制格式打开一个文件用于读写。如果该文件已存在,文件指针将会放在文件的结尾。如果该 文件不存在,创建新文件用于读写。
3.4、读取文件的异常处理
try:
    fp = open('tt.ext', 'r')
    fp.read()
except FileNotFoundError:
    print('文件不存在,系统在升级')
  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值