临时使用:
可以在使用pip的时候在后面加上-i参数,指定pip源 (注:scrapy为要安装的包)
pip install scrapy -i https://pypi.tuna.tsinghua.edu.cn/simple
数据类型
- 整型(int)
- 浮点型(float)
- 字符串(str)
- 列表(list)
- 元组(tuple)
- 字典(dist)
- 集合(Set)
1.列表(list):
一种数据结构,其中可以包含任何数据类型,甚至可以包含另外一个列表,列表中的成员可以通过序号来访问,每个成员以英文逗号“,”分隔。Python中的列表相当于其他语言的动态数组,即C++中的Vector,Java中的ArrayList
#定义一个空列表
students = []
#向列表添加元素
students.append('zhangsan')
#打印列表中的元素
print(students)
#定义一个newStudents列表,其中包含三个元素
newStudents = ['new1', 'new2',5]
#向students列表中追加一个新列表,使两个列表合二为一
students.extend(newStudents)
print(students)
#通过下标查找元素
print(students[0])
# list游标可是以负数,比如-1表示取最后一个值
print(students[-1])
#切片:前包后不包
students[0:2]
列表常用操作符
列表操作 | 描述 |
---|---|
list.append(obj) | 向列表尾部追加成员 |
list.count(x) | 计算列表中参数x的出现次数 |
list.extend(L) | 向列表尾部中追加另一个列表L |
list.index(x) | 获得参数x在列表中的位置 |
list.inset(index, obj) | 列表指定位置插入元素 |
list.pop() | 删除列表中最后的一个值,并返回被 删除的值 |
list.remove(x) | 在列表中查找括号内的元素,并删除 |
list.reverse() | 将列表中的成员顺序颠倒 |
list.sort() | 将列表中的成员排序(注意成员的数据类型必须是一致的) |
list.clear() | 清空列表,使列表变成一个空的 |
2.元组(tuple):
以圆括号"()"包围起来的数据集合。与列表最大的不同是,元组中的数据一旦确定了就不能被改变。元组可以使用在不希望数据被改变的场合。定义元组时,与列表相似。因为tuple不可变,所以代码更安全。如果可能,能用tuple代替list就尽量用tuple。
- 定义一个元组
tuple1 = ('zhangsan',123,'lisi', 3.5)
#注意:如果定义只有一个元素的元组,不能直接定义为
tuple1 = (1)
# 而是应该定义为:
typle1 = (1,)
3.字典(dict):
(亦称映射)是一种储存键值对的数据类型,与列表不同的是,它存放的是键值映射,并且字典是无序的。它不完全是其他语言所谓的关联数组,而是相当于Java中的HashMap,底层是Hash表实现的快速查找
# 定义一个字典
students = {'shcool':'高中', 'grade':'一年级'}
# 向字典添加数据
students['sex'] = '男'
# 修改字典中某个键值对的值
students['grade'] = '二年级'
# 使用get函数查询
grade = students.get('grade')
# 直接查询
grade = students['grade']
# 删除方法一
del students['grade']
# 删除方法二
students.pop('grade')
BIF (内建函数)
Python内置的函数,全局可见,无需导包即可用
BIF | 功能 |
---|---|
list() | 把一个可迭代对象变成列表 |
tuple() | 把一个可迭代对象变成元组 |
str() | 把对象转化为字符串 |
len() | 得到对象的长度 |
max() | 返回参数中的最大值,参数类型必须一致 |
min() | 返回参数中的最小值,参数类型必须一致 |
sum() | 对可迭代对象求和 |
sorted() | 对可迭代对象进行排序并生成新的对象(注意原对象不变) |
reversed() | 对可迭代对象进行翻转并生成新的对象(注意原对象不变) |
enumerate() | 将一个可遍历的数据对象(如列表、元组或字符串)组合为一个索引序列,同时列出数据和数据下标,一般用在 for 循环中 |
zip(a,b) | 将可迭代的对象作为参数,将对象中对应的元素打包成一个个元组,然后返回由这些元组组成的对象,这样做的好处是节约了不少的内存,可以使用 list() 转换来输出列表 |
enumerate()用法:
seq = ['one', 'two', 'three']
for i, element in enumerate(seq):
print i, element
# 输出结果:
0 one
1 two
2 three
zip()用法:
a = [1,2,3]
b = [4,5,6]
zipped = zip(a,b) # 返回一个对象
list(zipped) # list() 转换为列表
三目运算:
# 比较两个数的大小,并把最大的数赋值给max
max = 6
a = 10
# 传统写法
if a > max:
max = a
# 三目运算表达式写法
max if a > max else a
函数传参
1 def sub(x,y,z): #声明一个求三个数和的求和函数
2 return x + y + z
3
4
5 # 按顺序传参
6 result = sub(4,7,11)
7
8 # 按参数名传参
9 result = sub(z=11,y=7,x=4)
10
11 # 混合传参
12 result = sub(4,z=11,y=7)
Python支持多变量赋值
a, b, c = 2, 3, 5
# 交换两个变量在Python中的写法
a = 2
b = 3
a,b = b,a
Python 函数的多值返回
def getAddress():
ip, port = "192.0.0.12", "8080"
return ip, port
# 接收函数的多返回值时,不需要的值使用“_”操作符丢弃
ip, _ = getAddress()
print(ip)
模块
- Python模块实际上是指包含函数或者是一些类的Python脚本。模块的一个好处是可重用。简单讲,一个.py格式的文件就是一个模块,包则是一个目录,其中包含一组模块和一个init.py文件
模块导入
# 最简单的模块导入
import math
# 调用math模块中的一个函数
math.sqrt(4)
# 导入math模块,并起一个别名
import math as mt
mt.sqrt(4)
# 导入math 模块中的sqrt函数,则在当前脚本内,可以直接 调用该函数
from math import sqrt
sqrt(4)
# 导入math 模块中的所有函数,则可直接调用这些函数,不推荐!易造成命名空间冲突
from math import *
面向对象
- 定义类
class Book:
#实现构造方法
def __init__(self,n,p):
self.name = n
self.price = p
def print_info(self):
print(self.name +" - "+str(self.price))
b = Book("python",25.5)
b.print_info()
- 继承类
class Magazine(Book):
#定义杂志类继承自书类
def __init__(self,name,price,ad):
super().__init__(name,price) #手动调用父类的构造方法
self.advertisement = ad
- 同时继承两个父类
class Student(Human,Study):
pass
操作文件
- 简单快速的文件遍历
def dir_list():
for root, dirs, files in os.walk(path):
for fn in files:
print(os.path.join(root,fn))
- 文本写入-使用上下文管理器
# 文本文件
with open('sample.txt', 'w') as fp:
fp.write('文本文件的写入方法')
# 文本拷贝
with open('test.txt', 'r') as src, open('test_new.txt', 'w') as dst:
st.write(src.read())
界面框架
- TKinter库
- PyQt
Python命名规范
类型 | 公有/外部成员 | 私有/内部成员 |
---|---|---|
模块(module) | my_naming_convention | _my_naming_convention |
包(package) | my_naming_convention | |
类(class) | MyNamingConvention | _MyNamingConvention |
异常(Exception) | MyNamingConvention | |
函数(function) | my_naming_convention() | _my_naming_convention() |
全局/类常量(constant) | MY_NAMING_CONVENTION | _MY_NAMING_CONVENTION |
全局/类变量(variable) | my_naming_convention | _my_naming_convention |
网友评论