第一单元 python准备
1.1 python环境的安装
1.打开网页
Welcome to Python.orgThe official home of the Python Programming Languagehttps://www.python.org/
2.选择下载自己的系统
3.进行安装
4.测试是否安装成功
- 打开命令管理器成功就显示版本
- 失败就报错(没有选择add python to path)
5.手动配置python
- 点开属性
- 选择高级系统 > 环境变量 > path
- 根据自己的路径 添加path
- 最后在终端里面测试是否安装成功
1.2 PyCharm的下载
1.下载点击安装
2.编辑设置
1.3 PIP的使用
1.简介
pip是一个现代的,通用的python包管理工具。提供了对python包的查找,下载,安装,卸载的功能,便于我们对python的资源包进行管理。
2.安装
在安装python时,会自动下载并且安装。
3.配置
- 在终端里面输入pip -V 可以查看pip版本。
- 如果出现一下,再次去环境变量新建path(上文提到)
4.使用pip管理python包
- pip install <包名> 安装指定的包
- pip uninstall <包名> 删除指定的包
- pip list 显示已经安装的包
- pip freeze 显示已经安装的包,并且以指定的格式显示
5.修改pip下载源
运行pip install命令会从网站上下载指定的python包,默认从国外网站下载,速度会很慢。
格式:pip install 包名 -i 国内源地址
国内的常用pip下载源:
镜像站名 网址
阿里云开源镜像站 http://mirrors.aliyun.com/
网易开源镜像站 http://mirrors.163.com/
搜狐开源镜像 http://mirrors.sohu.com/
浙江大学开源镜像站 http://mirrors.zju.edu.cn/
清华大学开源软件镜像站 https://mirrors.tuna.tsinghua.edu.cn/
中国科学技术大学 http://mirrors.ustc.edu.cn/
腾讯开源镜像站 http://mirrors.cloud.tencent.com/pypi/simple
豆瓣开源镜像站 http://pypi.douban.com/simple/
1.4运行python程序
1.终端运行
- 在python解释器书写代码(python 路径)
- 安装ipython
2.使用PyCharm
第二单元 Python
2.1注释
1.单行注释
" 以#开头 "
2.多行注释
" 以...开头,以 ...结尾 "
2.2 Python变量
1.变量命名的规则
-
变量名必须以字母或下划线字符开头
-
变量名不能以数字开头
-
变量名称只能包含字母数字字符和下划线(Az、0-9 和 _ )
-
变量名区分大小写(age、Age和AGE是三个不同的变量)
2.变量的格式:
变量的名字 = 变量的值
3.变量的类型
4.查看数据类型(type(变量名))
5.类型转换
print(int("123"))#123 将字符串转换成为整数
print(int(123.78))#123 将浮点数转换成为懿数
print(int(True))#1布尔值True转换成为整数是 1print(int(False))#0 布尔值False转换成为整数是 0
注意:
123.456 和 12ab 字符串,都包含非法字符,不能被转换成为整数,会报错print(int("123.456"))print(int("12ab"))
2.3运算符
1.算法运算符
注意:
1.混合运算时,优先级顺序为:**高于|*/%//高于|+-,为了避免歧义,建议使用()来处理运
算符优先级。
2.不同类型的数字在进行混合运算时,整数将会转换成浮点数进行运算。
3.字符串的加法,是进行拼接的
4.字符串加法两边都是字符串才可以进行
5.字符串的乘法,是进行多次重复
2.赋值运算符
# 单个变量赋值
>>> num = 10
>>> num=10
#同时为多个变量赋值(使用等号连接)
>>> a = b = 4
>>> a=4 ,b=4
#多代变量赋值(使用逗号分隔)
>>> num1 , f1, str1 =100, 3.14, "hello"
>>> num1=100 , f1=3.14 ,str=“hello”
3.复合赋值运算符
4.比较运算符
5.逻辑运算符
2.4输入输出
1.输出(print(' '))
- 普通输出
print('hello')
- 格式输出
# %s 代表的是字符串 %d代表的是数值 age =18 name ='红浪漫晶哥' print('我的名字是%s,我的年龄是%d' %(name,age))
2.输入(input(' '))
password = input('请输入您的银行卡密码')
print('我的密码是:%s'% password)
name = input('请输入您的名字")
print('我的名字是:%s'% name)
2.5流程控制语句
1.if语句
if 要判断的条件:
条件成立时,要做的事情
gender = True
if gender == True:
print('你是一个男性')
2. if-else语句
if 条件:
满足条件时的操作
else:
不满足条件时的操作
age = 18
if age >= 18:
print("我可以去红浪漫了")
else:
print(“未成年,不允许去”)
3.elif语句
if xxx1:
事情1
elif xxx2:
事情2
elif xxx3:
事情3
score = int(input('请输入您的成绩'))
if score >= 90:
print('优秀')
elif score >= 80
print('良好')
elif score >= 70
print('中等")
elif score >= 60
print('及格')
4.for循环
一个一个的输出 叫做循环 也叫做遍历
for循环
格式:
for 变量 in 要遍历的数据
方法体
- 字符串
s ='china’
for i in s:
print(i)
>>> c h i n a
- rang(5)
range(5)0~4左闭右开区间(0,5)
for i in range(5)
print(i)
>>> 0 1 2 3 4
- range(1,6)
range(1,6) range(起始值,结束值)
# 左闭右开区间
for i in range(1,6)
print(i)
>>> 1 2 3 4 5
- range(1,10,3)
range(1,10,3)
#range(起始值,结束值,步长) 左闭右开区间
for i in range(1,10,3)
print(i)
>>> 1 4 7 10
2.6数据类型高级
1.字符串高级
字符串的常见操作包括:
1.获取长度:len
len函数可以获取字符串的长度
2.查找内容:find
查找指定内容在字符串中是否存在,如果存在就返回该内容在字符串中第一次出现的开始位置索引值,如果不存在,则返回-1.
3.判断:startswith,endswith
判断字符串是不是以谁谁谁开头/结尾
4.计算出现次数:count
返回 str在start和end之间 在 mystr里面出现的次数
5.替换内容:replace
替换字符串中指定的内容,如果指定次数count,则替换不会超过count次
6.切割字符串:split
通过参数的内容切割字符串
7.修改大小写:upper,ower
将字符串中的大小写互换
8.空格处理:strip
去空格
9.字符串拼接:join
字符串拼接
length: s='china'
print(len(s)) >>>5
find: s1='china'
print(s1.find('a')) >>>
2.列表高级
char_list =['a','c','d']
char_list.insert(1,'b')
print(char_list)
>>>['a','b','c','d']
- 添加元素(append,insert,extend)
append:追加,在列表的最后添加数据
food_list =['铁锅炖大鹅','酸菜五花肉’]
food_list.append('小鸡炖蘑菇')
print(food_list)
>>>['铁锅炖大鹅' ,'酸菜五花肉' ,'小鸡炖蘑菇']
insert:插入,index的值就是你想插入的值的下标
char_list =['a','c','d']
char_list.insert(1.'b')
print(char_list)
>>>['a','b','c','d']
extend:通过extend可以将另一个列表中的元素逐一添加到列表中
a =['a''b','c']
b = ['d','e','f']
a.extend(b)
print(a)
print(b)
>>> ['a''b','c','d','e','f'] 把b的内容添加到a里面
['d','e','f'] b的内容保持不变
- 修改元素
city_list =['北京','上海'"深圳''武汉"'西安']
print(city_ list)
city_list[4]='大连'
print(city_list)
>>>['北京','上海'"深圳''武汉"'西安']
['北京','上海'"深圳''武汉"'大连']
- 查改元素( in , not in )
food list =['锅包肉"'汆白肉"'东北乱炖"]
food = input('请输入您想吃的食物')
if food in food list:
print('在')
else:
print('不在,一边拉去')
- 删除元素(del,pop,remove)
del:根据下标来删除元素
a_list=[1,2,3,4,5]
print(a_list)
del a list[2]
print(a list)
>>> [1,2,3,4,5]
[1,2,4,5]
pop:是删除最后一个元素
b_list = [1,2,3,4,5]
print(b_list)
b_list.pop()
print(b_list)
>>> [1,2,3,4,5]
[1,2,3,4]
remove:根据元素直接删除列表中的数据
c_list =[1,2,3,4,5]
print(c_list)
c_list.remove(3)
print(c_list)
>>> [1,2,3,4,5]
[1,2,4,5]
3.元组高级
-
元组和列表的区别
- 元组用(),列表用 [ ]
- 元组中的元素是不可以被修改的,列表中的元素是可以被修改的
- 元组中只有一个元素时,它的类型为整数
a_tuple=(5)
print(type(a_tuple))
>>> int
- 定义只有一个元素的元组,需要在唯一元素后加逗号
b_tuple=(5,) print(type(b)) >>> tuple
4.切片
切片是指对操作的对象截取其中一部分的操作。字符串、列表、元组都支持切片操作。
切片的语法:[起始:结束:步长],也可以简化使用[起始:结束]
- 注意:选取的区间从“起始“位开始,到“结束“位的前一位结束(不包含结束位本身),步长表示选取间隔。索引是通过下标取某一个元素,切片是通过下标去某一个元素。
s='hello world'
print ( s[4] ) >>> hel #[0-4)左闭右开
print ( s[3:7] ) >>> lowo #[3-7)
print ( s[1:] ) >>> lloworld #1以后的
print ( s[:4] ) >>> hell #4之前的
print ( s[1:5:2] ) >>> elw #[1-5)步长为2
5.字典高级
- 查看元素
person ={'name':'jack','age':'21'}
第一种方法:
print(person['name'])
print(person['age'])
第二种方法:
print(person.get('name'))
print(person.get('age'))
- 修改元素
person ={'name':'jack','age':'21'}
person['name']='lucy'
- 添加元素
person ={'name':'jack','age':'21'}
person['sex']='男'
- 删除元素
person ={'name':'jack','age':'21'}
del(删除结构,全部都没有):
del person['name']
clear(清空内容,没有数据):
person.clear()
- 遍历
(1)通历字典的key
for key in person.keys():
print(key)
(2)遍历字典的value
for value in person.values():
print(value)
(3)返历字典的key和value
for key,value in person.items():
print(key,value)
(4)遍历字典的项/元素
for item in person.items():
print(item)
2.7函数
1.定义函数
格式:
def 函数名():
方法体
举例:
def f1():
print('hello')
2.调用函数
直接调用函数名
def f1():
print('hello')
f1()
3.函数参数
def f1(a,b):
c=a+b
print(c)
f1(2,3)
调用的参数是实参,定义的参数是形参
4.函数返回值
def f1(a,b):
c=a+b
return c
num=f1(2,3)
print(num)
2.8文件
1.文件的打开和关闭
- 文件的打开(可以打开已有的文件,也可以创建一个新文件)
格式:
open(文件的路径,模式)
文件名:已存在的话就打开,没有就直接创建后再打开(是在编辑器里面创建)
模式:主要是w(可写,write)r(可读,read)
举例:
1.文件创建
open('a.txt','w')
2.文件夹里面的文件创建
open('demo/a.txt','w')
3.给文件里面写内容
f1=open('a.txt','w')
f1.write('hello')
注意:
可以创建一个文件或者文件夹里面的文件,文件夹需要手动在编辑器里面创建
- 文件的关闭
f1=open('a.txt','w')
f1.write('hello')
f1.close()
2.文件的读写
- 文件的写入
1.
f1=open('a.txt','w')
f1.write('hello')
f1.close()
结果是:hello
2.
f1=open('a.txt','w')
f1.write('hello'*5)
f1.close()
结果是:5行的hello
但再次刷新重新运行代码时,a.txt里面也还是5行代码
3.f1=open('a.txt','a')
f1.write('hello'*5)
f1.close()
结果是:5行的hello
但再次刷新重新运行后,a.txt里面就会一直追加5行的hello,因为‘a’是append追加
- 文件的读取(在控制台里面显示)
1.f1=open('a.txt','r')
content=f1.read()
print(content)
read:按字节读取
2.f1=open('a.txt','r')
content=f1.readline()
print(content)
readline:一行一行读取,但效率低
3.f1=open('a.txt','r')
content=f1.readlines()
print(content)
readlines:按行读取,但会以列表的形式返回[''],
3.序列化和反序列化
序列化:一个对象(列表,元组,字典)要写入一个文件里,需要将对象序列化,才可以写入文件里。就是将内存中的数据转换为字节序列,保存在文件里。
对象—>字节序列—>序列化
字节序列 —>对象—>反序列化
f1=open('a.txt','w')
a_list=['a','b'}
f1.write(a_list)
默认情况下,直接将对象写入文件里会报错
- 序列化
dumps
f1=open('a.txt','w')
a_list=['a','b'}
import json #导入json模块到该文件内
a=json.dumps(a_list) #序列化,将python对象变成字符串的形式
f1.write(a) #将a写入文件里
f1.close()
dump
f1=open('a.txt','w')
a_list=['a','b'}
import json
json.dump(a_list,f1)
f1.close()
- 反序列化
loads
f1=open('a.txt','r')
content=f1.read()
import json
result=json.loads(content)
print('result')
load
f1=open('a.txt','r')
import json
result=json.load(f1)
print(result)