学完Python,我决定熬夜整理这篇总结...

时间:2020-09-05 17:38:09   收藏:0   阅读:57

了解Python

Python基础语法

  1. 使用 注释内容 号实现单行注释
  2. 使用 “”" 注释内容 “”"” 三引号实现多行注释
  1. 导入模块 import os
  2. 导入模块中的对象 from os import getcwd
  3. 导入模块并起个别名 import pandas as pd
  1. Python中变量名(标识符)由字母数字下划线组成,并且不能以数字开头,不能和关键字重名
  2. 查看Python中的关键字 keyword.kwlist 或者 help(“keywords”)
  3. Python中变量根据作用域范围分为全局变量(整个模块内使用)和局部变量(在定义的方法和函数内使用)
函数名函数功能
help() 查看帮助信息,help(print)
dir() 查看函数的属性和具有的方法,dir(print)
id() 查看标识符的内存地址,a = 1 print(id(a))
type() 查看数据类型
del() 删除对象
input() 接受输入,输入类型为字符串
len() 查看对象长度

Python数据结构

Python中内置的数据结构有六种:Number(数值)、String(字符串)、List(列表)、Tuple(元组)、Dictionary(字典)、Set(集合)。除此之外还有数组、矩阵等结构需要导入工具包才能使用。

数值

Python3 里支持 int、float、bool、complex(复数)几种类型的数值

字符串

Python中字符串是由一个或多个字符组成的序列,字符个数即为字符串长度。注意Python中没有字符类型,单个字符被认作长度为1的字符串。

列表

列表是一个序列,其中的元素可以是任意的数据类型,并且可以随时地添加或删除元素。

List = [1, 2, 3]      #创建列表
List[1]               #访问元素
List[1] = 0           #修改元素
print(List)           #打印 [1, 0, 3]
a = [1, 2, 3]
b = [4, 5]
print(a * 2)          #打印 [1, 2, 3, 1, 2, 3]
print(a + b)          #打印 [1, 2, 3, 4, 4]
类成员函数功能
list.append(obj) 在列表末尾添加新的对象
list.remove(obj) 移除列表中的某一个值的第一个匹配项
list.insert(index, obj) 将指定对象 obj 插入指定位置 index
list.pop([index = -1]) 移除列表中对应下标位置的元素,默认是最后一个位置
list.reverse() 逆置列表中的元素
list.sort(cmp=None, key=None, reverse=False) cmp为可选参数,如果指定了该参数,会使用该参数的方法进行排序。key是用来进行比较的元素。reverse=False 为升序
enumerate(list) 遍历并获取元素和对应索引,一般用于for循环中
squares = [x*2 for x in list] 列表推导式,批量生成符合规则的元素组成的列表
# 遍历并获取元素和对应索引
animals = [‘dog‘, ‘cat‘, ‘fish‘]
for i in enumerate(animals):
    print(i)

(0, ‘dog’)
(1, ‘cat’)
(2, ‘fish’)

# 列表推导式
squares = [x*2 for x in animals]
print(squares)

[‘dogdog’, ‘catcat’, ‘fishfish’]

元组

元组是一个不可变的有序序列,类似于字符串,但不同的是,元组中的对象可以是任意对象。

Tuple = (1, [‘a‘, ‘b‘], "Python")        #创建元组
print(Tuple)                             #打印 (1, [‘a‘, ‘b‘], ‘Python‘)
print(type(Tuple))                       #打印 <class ‘tuple‘>
t1 = (1)
t2 = (1,)
print("t1 type: ", type(t1), "\n" "t2 type: ", type(t2))

t1 type: <class ‘int’>
t2 type: <class ‘tuple’>

字典

Python中字典的每个元素由一组键-值对组成,其中键是唯一不可变的,如果字典有相同的键,则后面的值会覆盖前面的值。当数据量大时,字典的访问速度比列表快。

# 字典的三种赋值操作
x1 = {‘name‘:‘Caso‘, ‘age‘:18, ‘sex‘:‘man‘}
x2 = dict(name = ‘Caso‘, age = 18, sex = ‘man‘)
x3 = dict([("name", "Caso"), ("age", 18), ("sex", "man")])
print(x1)
print(x2)
print(x3)

{‘name’: ‘Caso’, ‘age’: 18, ‘sex’: ‘man’}
{‘name’: ‘Caso’, ‘age’: 18, ‘sex’: ‘man’}
{‘name’: ‘Caso’, ‘age’: 18, ‘sex’: ‘man’}

# 1.直接使用键获取值,输入不存在的键会报错
print(x1[‘name‘])
# 2.使用 get(key, ["str"]) 方法获取数据
print(x1.get("age"))
# 2.1 使用 get 获取值时,键值不存在会返回 None 或指定的值
print(x1.get("school"))
print(x1.get("school", "school not exist"))
# 3.查看所有的键
print(x1.keys())
# 4.查看所有的值
print(x1.values())
# 5.查看所有的键值对
print(x1.items())

以上代码输出如下:

Caso
18
None
school not exist
dict_keys([‘name’, ‘age’, ‘sex’])
dict_values([‘Caso’, 18, ‘man’])
dict_items([(‘name’, ‘Caso’), (‘age’, 18), (‘sex’, ‘man’)])

x1["school"] = "爱丁堡"
print(x1)

{‘name’: ‘Caso’, ‘age’: 18, ‘sex’: ‘man’, ‘school’: ‘爱丁堡’}

x1["age"] = 25
print(x1)

{‘name’: ‘Caso’, ‘age’: 25, ‘sex’: ‘man’, ‘school’: ‘爱丁堡’}

集合

Python集合中的元素是唯一的,重复的元素会被删除。

keyset = {‘name‘, ‘age‘, ‘sex‘, ‘school‘}
# 使用 in 检查某一元素是否存在
print("score" in keyset)

False

# set.add(obj) 给集合添加元素,如果该元素已存在,则不执行任何操作
keyset.add(‘name‘)
keyset.add(‘score‘)
print(keyset)

{‘score’, ‘name’, ‘school’, ‘sex’, ‘age’}

# set.remove(obj) 移除集合中的指定元素
keyset.remove(‘name‘)
print(keyset)

{‘score’, ‘school’, ‘sex’, ‘age’}

Test = [1, 2, 3, 2, 3, 5]
# 利用集合的唯一性给列表去重
print(list(set(Test)))

[1, 2, 3, 5]

Python控制流

Python中的控制流关键字 if、elif、else、for、while、break、continue.

if 判断语句

Python中的条件控制通过判断条件语句的执行结果是(True or False)来决定所执行的代码块;有多个代码块可以用 if - elif - else,如下:

# 是不是狗?
game = input("请输入: ")
if game == ‘Dog‘:
    print("Oh, you‘re True Dog!")
elif game == ‘not Dog‘:
    print("hh, you‘re not Dog! Congratulation!")
else:
    print("Ok, you are man?")

技术分享图片
需要注意一点,在Python中 0、None、空值均默认为False,其他都为True

for 循环语句

Python中for循环不同于其他语言for循环一点就是,它能接受可迭代对象(如序列)作为其参数,每次迭代其中一个参数。
for循环后面还可以加else,在循环结束后正常执行。

for i in [‘you‘, ‘are‘, ‘true‘, ‘dog‘]:
    print(i)
else:
    print("算了,不和狗计较!")

you
are
true
dog
算了,不和狗计较!

Python中的嵌套循环,eg:输出乘法口诀表

for i in range(1, 10):
    for j in range(1, i+1):
        print("%dX%d=%-2d"%(j, i, j*i), end=" ")
    print()

1X1=1
1X2=2 2X2=4
1X3=3 2X3=6 3X3=9
1X4=4 2X4=8 3X4=12 4X4=16
1X5=5 2X5=10 3X5=15 4X5=20 5X5=25
1X6=6 2X6=12 3X6=18 4X6=24 5X6=30 6X6=36
1X7=7 2X7=14 3X7=21 4X7=28 5X7=35 6X7=42 7X7=49
1X8=8 2X8=16 3X8=24 4X8=32 5X8=40 6X8=48 7X8=56 8X8=64
1X9=9 2X9=18 3X9=27 4X9=36 5X9=45 6X9=54 7X9=63 8X9=72 9X9=81

while 循环语句

Python中的while语句,在循环条件成立下,执行循环体,也可以加else语句。
Python中没有 do-while 语句。

game = [‘life‘, ‘is‘, ‘True‘]
i = 0
while i < 3:
    print(game[i])
    i += 1
else:
    print("未完待续...")

life
is
True
未完待续…

break 和 continue

Python中使用break跳出当前循环,使用continue跳过当次循环

while True:
    game = input("请承认自己很狗!\n")
    if game == "你是真的狗":
        print("好吧,确实狗!")
        break;
    else:
        print("不承认是吧?直到你承认!")
        continue
    print("反正你到不了这里!") # 要么break,要么continue

技术分享图片

Python函数

本文首发于python黑洞网,博客园同步更新

自定义函数 def

自定义一个函数,返回一个序列,使得序列中每个数字都是前两个数字之和(斐波那契数列)

def fibs(nums):
    result = [0, 1];
    for i in range(2, nums):
        val = result[i-1] + result[i-2]
        result.append(val)
    return result
print(fibs(5))

[0, 1, 1, 2, 3]

Python函数中的几种传参方式:

参数类型传入方式
必备参数 必须以正确的顺序传入函数,调用时的数量必须和声明时的一样
关键字参数 函数调用时以等号赋值的形式传入
默认参数 调用函数时,缺省参数值如果没有传入,则被认为是默认值
不定长参数 声明时不会命名。如 args、**kwargs,加 * 号的args是元组,加**号的kwargs存放命名参数,形如key=value的参数,kwargs为字典
def func(a=1, b=2, *args):
    print(a, b)
    print(args)
# 1. 传必备参数
func(0, 4)
# 2. 传关键字参数
func(b=4, a=0)
# 3. 传默认参数
func()
# 4. 传不定长参数
func(1, 2, 3, 4, 5)

0 4
()
0 4
()
1 2
()
1 2
(3, 4, 5)

匿名函数 lambda

Python中lambda用来创建匿名函数,相比于普通函数,匿名函数只是一个表达式,函数体比def简单,只能封装有限的逻辑。

max = lambda x,y : x + y
max(2, 3)

5

Python对象

Python中创建类使用关键字class,并且具备封装、多态和继承的特点。

class Person(object):
    def __init__(self, age, name): # self指实例化的对象
        self.__age = age;
        self.name = name
    def show(self):
        print("My name is %s"%(self.name))
        print("age: %d"%(self.__age))
# 实例化对象
p1 = Person(age=18, name="dog")
p1.show() 
# Python的继承
class Man(Person):
    pass
# 子类实例化
man = Man(age=25, name="Caso")
man.show()

My name is dog
age: 18
My name is Caso
age: 25

默认情况下,属性在Python中都是 public 公有的,该类所在的模块或其他导入了该类的模块都可以访问到。如果想要类中某些属性不想被外界访问或继承可对其私有化。

Python 文件读写

Python中内置了读写文件的函数:open,返回文件对象。
通常用法:open(filename, mode, encoding)

参数值参数说明
filename 传入要访问的文件名称的字符串值
mode 设定打开文件的模式(r:只读、w:写入、a:追加、*b:二进制的形式)
encoding 打开文件的编码格式,默认为 utf-8
f = open("text.txt", ‘w‘) # 打开文件text.txt,当文件不存在时会新建一个
str = input("输入要写入的内容: ")
f.write(str) # 将str内容写入文件
f.close() # 关闭该文件描述符

E:>type text.txt
Caso_卡索

f = open("text.txt", ‘r‘)
print(f.read(6)) # 读取6个字符,并将光标后移6个字符
print(f.read()) # 读取光标所在位置至最后
f.close()

Caso_卡

# 使用with语句进行文件写入
with open("test.txt", ‘w‘) as f:
    f.write("使用with语句进行文件写/读")
# 使用with语句读取文件内容
with open("test.txt", ‘r‘) as f:
    print(f.read())

使用with语句进行文件写/读

Python 异常捕获

程序异常,一般指运行时出现错误(比如被除数为零、列表下标越界、修改字符串等),Python中用于处理异常的关键字有 try、except、final 等。

# 使用 try、except、final 示例程序异常捕获
try:
    print(1/0)
except Exception as e: # Exception 常规错误的基类
    print(e)
finally:  # 退出try时总会执行
    print("最后都会执行finally中的语句")

division by zero
最后都会执行finally中的语句

Python 常用工具库

关于这部分内容准备另写博客进行总结,分为常用标准库一篇,第三方库根据具体库的使用再做总结,最后汇总一篇链接出来。

标准库

Python自带的一些库,如:os、sys、time等模块,打算另写一篇博客总结。
Python标准库之——time模块
Python标准库之——os模块

第三方库

需要自行安装的第三方库。如numpy(科学计算)、pandas(数据处理)等三方库

爬虫实践
本文首发于python黑洞网,博客园同步更新

原文:https://www.cnblogs.com/pythonzhilian/p/13618539.html

评论(0
© 2014 bubuko.com 版权所有 - 联系我们:wmxa8@hotmail.com
打开技术之扣,分享程序人生!