Python基础(主要是计算机二级部分)

此文件专门为计算机二级做准备,以及一些其他进阶内容

python二级

python程序的基本语法

python的格式框架

缩进

规范:

  • 一般缩进是4个空格(TAB)

  • 一般一行代码的长度不超过80个字符,若超过则通过“\”反斜杠延续行

>>> for i in rnage(10):
>>>     print("Hello World")
注释

单行注释:#

# this is the comment for single-line

多行注释:# || “”” “”

# the first
# this is the comment for multi-line
# Hello World
# everyone

"""
the secondly
this is the comment for multi-line
Hello World
everyone
"""
分号

位置:一行的末尾加分号(不建议)

空格

位置:运算符两边(不强制加)

python的基本数据类型

数字类型

整数(受制于内存的大小)

类型引导前缀组成
二进制0b0 1
八进制0o0 1 2 3 4 5 6 7
十进制0 1 2 3 4 5 6 7 8 9
十六进制0x0 1 2 3 4 5 6 7 8 9 A B C D E F

浮点数:-10**308~10**308

​ 表示方法:十进制和科学计数法

复数

>>> # 复试格式
>>> a + bj
>>> # 实部
>>> (a + bj).real
a
>>> # 虚部
>>> (a + bj).imag
b

数据类型转换

函数描述
int(x)将x转换成整数
float(x)将x转换成一个浮点数
complex(x)将x转换成一个复数,实部为x,虚部为0
complex(x,y)将x和y转换成一个复数,实部为x,虚部为y
字符串类型

字符串的组成:单引号或双引号作用相同

>>> str = 'str'
>>> str2 = "str"

字符串的连接:用‘+’连接

>>> str1 = 'liu'
>>> str2 = 'hao'
>>> str3 = str1 + str2
>>> str3
'liuhao'

字符串的复制:*

>>> str1 * 2
'liuliu'

转义符

转义字符含义
\n换行
\t横向制表符
\v纵向制表符
\r回车符
\f换页符
\0空值
单引号
"双引号
\\
\a响铃
\b退格

一些字符串中包含反斜杠(\),表示特定的含义,不需要转义字符生效

string = "D:\nothing"		# 此时容易把\n看成换行符
# 此时就要用r或R夹在字符串的前面
string = r"D:\nothing"

字符串的切片

str = "abcd"
s = str[1:2]

字符串相关函数和方法

# len:表示字符串长度
>>> str = "Hello World"
>>> len(str)
11

# ord:将该字符转换成对应的ASCII编码
>>> a = "a"
>>> ord(a)
97
"""
48~57:0~9
65~90:A~Z
97~122:a~z
"""

# chr:与ord相反

# title方法将每个单词首字母大写
>>> b = "hello world"
>>> b.title()
'Hello World'

# upper和lower:将字符串字符大写和小写
>>> b.upper()
'HELLO WORLD'
>>> b.lower()
'hello world'

# rstrip删除字符串末尾空白字符
>>> c = "python   "
>>> c.rstrip()
'python'

# lstrip删除字符串开头空白字符

# strip删除字符串首尾空白字符

基本运算和表达式

命名

规则:

  • 首字符不能是数字
  • 不能和保留字同字
  • 不能有空格
变量

删除变量:del

del a

查看变量内存地址:id

id(a)
表达式

不做讲解

算术运算符

不做讲解

比较运算符

不做讲解

赋值运算符

不做讲解

逻辑运算符
运算符描述
and
or
not

基本输入输出函数

输入函数
str = input("please input your name: ")
输出函数

print格式化字符串

print("Hello World")
符 号描述
%c格式化字符及其ASCII码
%s格式化字符串
%d格式化整数
%u格式化无符号整型
%o格式化无符号八进制数
%x格式化无符号十六进制数
%X格式化无符号十六进制数(大写)
%f格式化浮点数字,可指定小数点后的精度
%e用科学计数法格式化浮点数
%E作用同%e,用科学计数法格式化浮点数
%g%f和%e的简写
%G%f 和 %E 的简写
%p用十六进制数格式化变量的地址
format

在此介绍一个常用的输出函数format

>>>"{} {}".format("hello", "world")    # 不设置指定位置,按默认顺序
'hello world'
 
>>> "{0} {1}".format("hello", "world")  # 设置指定位置
'hello world'
 
>>> "{1} {0} {1}".format("hello", "world")  # 设置指定位置
'world hello world'

设置参数

print("网站名:{name}, 地址 {url}".format(name="菜鸟教程", url="www.runoob.com"))
 
# 通过字典设置参数
site = {"name": "菜鸟教程", "url": "www.runoob.com"}
print("网站名:{name}, 地址 {url}".format(**site))
 
# 通过列表索引设置参数
my_list = ['菜鸟教程', 'www.runoob.com']
print("网站名:{0[0]}, 地址 {0[1]}".format(my_list))  # "0" 是必须的
3.1415926{:.2f}3.14保留小数点后两位
3.1415926{:+.2f}+3.14带符号保留小数点后两位
-1{:+.2f}-1.00带符号保留小数点后两位
2.71828{:.0f}3不带小数
5{:0>2d}05数字补零 (填充左边, 宽度为2)
5{:x<4d}5xxx数字补x (填充右边, 宽度为4)
10{:x<4d}10xx数字补x (填充右边, 宽度为4)
1000000{:,}1,000,000以逗号分隔的数字格式
0.25{:.2%}25.00%百分比格式
1000000000{:.2e}1.00e+09指数记法
13{:>10d}13右对齐 (默认, 宽度为10)
13{:<10d}13左对齐 (宽度为10)
13{:^10d}13中间对齐 (宽度为10)
11'{:b}'.format(11) '{:d}'.format(11) '{:o}'.format(11) '{:x}'.format(11) '{:#x}'.format(11) '{:#X}'.format(11)1011 11 13 b 0xb 0XB进制
eval函数

作用:去掉字符串最外侧的引号

>>> a = eval('3' + '5')
>>> a
35

python的组合数据类型

列表

定义:有序,可以包含任意数据类型

创建列表

_mylist = []

向列表添加元素

# 在列表末尾添加元素
_mylist.append('a')

# 在指定位置添加元素
_mylist.insert('a', 3)

从列表中获取元素

_mylist[0]

从列表中删除元素

# insert
_mylist.remove('a')

# pop
_mylist.pop()
# 删除指定的元素
_mylist.pop(index)

其他方法

# count():某个元素在列表中出现的次数
>>> _list_count = [1, 3, 3, 6]
>>> _list_count.count(3)
2

# extend():扩展列表
>>> _list_a = [1, 2, 4]
>>> _list_b = ['a', 'b']
>>> _list_a.extend(_list_b)
>>> _list_a
[1, 2, 4, 'a', 'b']

# index:返回列表中第一次出现x元素的索引
>>> _list_count.index(3)
1

# reverse():反转列表
>>> _list_a.reverse()
>>> _list_a
['b', 'a', 4, 2, 1]

# sort排序
>>> _list_sort = [5, 3, 2, 8, 7]
>>> _list_sort.sort()
>>> _list_sort
[2, 3, 5, 7, 8]

# clear():清空列表
>>> _list_sort.clear()
>>> _list_sort
[]

列表切片

元组

元组和列表极其相似,不同在于元组元素不可修改

创建元素

a = (1, 2, 4)

更新,删除元素

>>> s = (1, 2, 4)
>>> f = (4, 6, 8)
>>> s + f
(1, 2, 4, 4, 6, 8)
>>> del s
>>> s
Traceback (most recent call last):
  File "<pyshell#40>", line 1, in <module>
    s
NameError: name 's' is not defined

元组的内置函数

# len
# min
# max
# tuple:将列表转换成元素
>>> l = [1, 2, 4]
>>> tuple(l)
(1, 2, 4)

字典

由键值构成的无序集合

创建字典

# 直接创建
dic = {1: 'A', 2: 'B'}

# 通过元组创建
dict(('A', 1), ('B', 2))

访问字典的键和值

>>> _dict['A']
1

更新字典

>>> _dict = { 'A':  1, 'B': 2, 'C': 3 }
>>> _dict['A'] = 3
>>> _dict
{'A': 3, 'B': 2, 'C': 3}
>>> _dict['D'] = 1
>>> _dict
{'A': 3, 'B': 2, 'C': 3, 'D': 1}

删除键值对

>>> del _dict['D']
>>> _dict
{'A': 3, 'B': 2, 'C': 3}

字典的操作方法

# clear():清空字典内容
>>> _dict.clear()
>>> _dict
{}

# copy():返回一个新的新字典,不是副本
>>> _new_dict = _dict.copy()
>>> _new_dict
{'A': 3, 'B': 2, 'C': 3}
>>> id(_dict)
2101405099584
>>> id(_new_dict)
2101405093248

# get():返回指定键的值,不存在返回默认值
>>> _dict.get('C')
3

# keys():返回字典的所有键
>>> _dict.keys()
dict_keys(['A', 'B', 'C'])

# update():把字典的键值更新到另一个字典
>>> _update_dict = {'D': 6}
>>> _dict.update(_update_dict)
>>> _dict
{'A': 3, 'B': 2, 'C': 3, 'D': 6}

# values():以列表形式返回字典的所有值
>>> _dict.values()
dict_values([3, 2, 3])

# items():返回字典中的所有键值对
>>> _dict.items()
dict_items([('A', 3), ('B', 2), ('C', 3)])

集合

集合存储的元素是无序且不能重复的,不能排序

创建集合

_set = {1, 2, 4}

_set = set([2, 3, 5])

访问集合

for i in _set:
    print(i, end=',')

操作符

操作符及运算描述
S-T返回新的集合,包含在S中但不在T 中的元素
S&T(交集)返回新的集合,同时包含在S和T 中的元素
S^T(交集的反集)返回新的集合,包含在S和T 中的非共同元素
S|T(并集)返回新的集合,包含在S和T 中的所有元素
>>> _set1 = {2, 3, 5}
>>> _set2 = {4, 6, 2}
>>> _set1-_set2
{3, 5}
>>> _set1&_set2
{2}
>>> _set1^_set2
{3, 4, 5, 6}
>>> _set1 | _set2
{2, 3, 4, 5, 6}

使用方法

# b.issubset(a):判断b是不是a的子集

# b.issuperset(a):判断b是不是a的超集

# s.union(t):s和t的并集

# s.intersection(t):s和t的交集

# s.difference(t):元素属于s不属于t

# s.symmertric_difference(t):不重复元素

# s.copy():浅复制

python程序的控制结构

基本赋值语句

简单赋值语句
a = 1
序列赋值语句
score1, score2 = 1, 2

顺序结构

分支结构

单分支结构(if)
二分支(if-eles)
多分支结构(if-elif-else)

循环结构

while循环(无限循环)
for循环(遍历循环)

break和continue

break

​ 终止循环语句

continue

​ 中断本次循环

函数

函数的定义和使用

函数的定义
# 格式
# def function(argument):
#     return none
def add(x, y):
    s = x + y
    return s
函数的使用
print(add(1, 2))
函数的返回值
s = add(0, 2)

参数的传递方式

实参和形参

形参:在函数定义时的参数,不是实际的变量

实参:函数调用时传入的参数

位置参数

调用函数时实参的数量和顺序必须和函数声明保持一致

默认值参数
def people(name, age = 12):
    print("Hello World")
    
    
def main():
    people("Rose")

    
if __name__ == "__main__":
    main()
关键字参数
def test(a, b, c):
	print("Hello World")

    
def main():
    people(a = 1, b = 2, c = 3)

    
if __name__ == "__main__":
    main()
可变参数
# *param:接收多个位置参数收集的实参形参一个元组
def func(arg, *param):
    print(param)


def main():
    func("LiuHao", 1, 2, 3)


if __name__ == "__main__":
    main()
    
# **param:接收多个位置参数收集的实参形参一个字典
def func(arg, **param):
    print(param)


def main():
    _dict = {'A': 1, 'B': 2, 'C': 3}
    func("LiuHao", **_dict)


if __name__ == "__main__":
    main()
组合参数
def func(arg, *param1, **param2):
    print(param1)
    print(param2)


def main():
    func("LiuHao", 'A', 'B', x = 1, y = 2)


if __name__ == "__main__":
    main()

变量作用域

不做概述

# global关键字:把变量全局变量
def func():
    a = 1
    global a
    return 1

文件和数据维度

文件类型

文本文件

由若干文本和组成,以换行符‘\n’结尾,扩展名为txt,ini,log

二进制文件

图像文件,音频文件,视频文件,可执行文件,各种数据库文件,各类office文件等,以字节存储

文件的打开和关闭

打开文件:open()
打开方式功能
r以只读方式打开,文件必须存在,不存在异常
w以只写方式打开,存在则打开 ,不存在则创建
x以写方式创建文件,不存在创建,存在异常
a打开一个文件追加,文件存在,新内容写在已有内容后,不存在则创建
b二进制方式打开
t文本文件打开,默认值
+与以上打开方式一起使用
关闭文件:close()

文件的读写

文件的读取方法

read:读取所有内容,如果指针已在文件末尾,则返回空字符串(“”)

>>> f = open("E:\py.txt", 'r')
>>> f.read()
'Hello World'

readline:读取一行内容,若是空行,返回“\n”

>>> f = open("E:\py.txt", 'r')
>>> f.readline()
'Hello World'

readlines:读取所有行,返回一个每行为元素的列表

>>> f = open("E:\py.txt", 'r')
>>> f.readlines()
['Hello World\n', 'Hello python']

seek:定位文件的读写位置

# seek(<偏移位置>[, 起始位置])
# 起始位置:0:文件开头;1:当前位置;2:文件末尾
文件写入方法

write:写入文件,如需换行,加上换行符

writeline:将一个元素为字符串的序列(如列表)整个写入文件

目录

OS模块

# remove:删除文件

# rename:重命名文件
>>> os.rename("test.py", "testpy.py")

# mkdir:在当前目录创建新的目录
>>> os.mkdir("testpy")

# chdir:设置当前目录

# getcwd:显示当前工作路径
>>> import os
>>> os.getcwd()
'C:\\Users\\ASUS\\Desktop'

# rmdir:删除目录
>>> os.rmdir("testpy")

# listdir:返回当前目录下的文件和子目录
>>> os.listdir()
...

数据组织的维度

一维数据

任何可以以序列或集合表示的内容都为一维数据

二维数据

表格数据,由关联关系数据构成,采用二维表格方式组织,对应数学中的矩阵

高维数据

由键值对类型的数据构成,采用对象方式组织,可以嵌套

一维数据的处理

一维数据的表示

lis = ['a', 'b', 'c']

一般是用逗号分开,存储到csv文件格式中

一维数据的处理

f = open('xxx.csv', 'r')
ls = f.read().strip()		# strip去除换行符
item = ls.split(',')		# 以#为间隔打开
f.close()

二维数据的处理

二维数据的表示

lis = [
    ['a', 'b', 'c'],
	['d', 'e', 'f']
]

二维数据的存储

csv存储

二维数据的处理

f = open('xxx.csv', 'r')
ls = []
for line in f:
    ls.append(line.strip('\n').split(','))
f.close()
print(ls)

python计算生态

python计算生态

http://pypi.python.org/pypi

python内置函数

# abs(x):求x的绝对值,如果是复数,返回他的模
>>> abs(3 + 4j)
5.0

# all(x):组合类型变量x中所有元素均为真时返回true,否则返回false;非空返回true
>>> _list = [1, 2, 3]
>>> all(_list)
True

#any:组合类型变量x中有一个元素均为真时返回true,否则返回false;非空返回true
>>> any(_list)
True

# ascii(object):返回一个字符串对象,如果参数中有非ascii字符则用\u,\v,\v替代
>>> ascii("a")
"'a'"
>>> ascii("你好啊")
"'\\u4f60\\u597d\\u554a'"

# bin:把整数x转换成等值的二进制字符串
>>> bin(10)
'0b1010'

# bool(x):将x转换成布尔型

# bytearray(x):返回一个新字节数组且元素可变,每个元素的值的范围是[0, 256),当x是一个字符串,必须给出一种编码方式,以便转化成合适的字节保存
>>> a
bytearray(b'\xe4\xb8\xad\xe5\x9b\xbd')

# bytes(x):与bytearray类似,差别是返回的字节数组不可修改
>>> bytes(2)
b'\x00\x00'

# chr(x):返回Unicode为x的字符
>>> chr(48)
'0'

# complex(r, i)

# dict()

# divmod(a, b):返回a和b的商和余数
>>> divmod(20, 3)
(6, 2)

# range(a, b, s):输出[a, b)以补偿s产生的一个序列
>>> for i in range(1, 12, 2):
	print(i)
1
3
5
7
9
11

# set()

# round(x):四舍五入计算n
>>> round(12.3)
12
>>> round(12.8)
13

# exec(s):计算字符串s作为python语句的值
>>> exec('a = 12 + 5')
>>> a
17

# max():返回参数的最大值
>>> max(1, 2, 4)
4

# min():返回参数的最小值

# sum():对组合数据类型求各元素的和

# type():返回变量x的数据类型
>>> a = 1
>>> type(a)
<class 'int'>

python内置标准库

库的引用
# 导入一个库
import library
# 导入库中的某个方法
from library import method
# 导入库中所有方法
from library import *
turtle库

窗口函数

# setup(width, heigth, startx, starty):画布大小以及画布窗口宽高,窗口在品目的水平其实位置和垂直位置

画笔状态函数

# penup():提起画笔,不再绘制图形

# pendown():放下画笔,开始画

# pensize(width):画笔的宽度

# pencolor(color):画笔的颜色

# color():设置画笔和填充颜色

# begin_fill():在需要填充图形前使用

# end_fill():在填充图形后用

# filling():返回填充的状态,True为填充,False相反

# clear():清空当前窗口,但不改变画笔位置

# reset():清空当前窗口,回到默认值

# screensize():设置画笔的宽和高背景颜色

# hideturtle():隐藏画笔的turtle形状

# showturtle():显示画笔的turtle形状

# isviable():如果turtle可见,返回True

# write():输出中文标签

画笔运动函数

# forward(distance):把画笔向当前方向前进distance距离

# backward(distance):把画笔向当前方向后退distance距离

# right(angle):向右旋转angle角度

# left(angle):向左旋转angle角度

# goto(x, y):移动到坐标(x, y)处

# seth(to_angle):设置画笔当前朝向为to_angle角度,是绝对方向角度值

# home():设置当前画笔位置为原点,向右为正

# circle(radius, extend = None):根据半径radius绘制角度为extend的图形,当没有extend时,绘制整个图形

random库

# random:产生随机数
>>> import random
>>> random.random()
0.39852954665967555

# seed(a=None):初始化随机种子,默认值为当前系统时间,只要种子相同,每次生成的随机数字也相同
>>> from random import*
>>> seed(345)
>>> randint(1, 9)
5

# randint(a, b):随机生成一个[a, b]之间的整数

# uniform(a, b):随机生成一个[a, b]之间的小数
>>> uniform(1, 6)
1.028867913953381

# randrange(start, stop[, step]):生成一个(start, stop)之间以step为补偿的随机整数
>>> randrange(1, 90, 3)
40

# getrandbits(x):生成一个k比特长度的随机整数
>>> getrandbits(5)
3

# choice(seq):从序列类型中随机返回一个元素
>>> _list = [1, 4, 3, 2]
>>> choice(_list)
4

# shuffle(seq):把序列中的元素随机排列,返回打乱后的序列
>>> shuffle(_list)
>>> _list
[4, 1, 2, 3]

# sample(pop, k):从pop类型中随机选取k个元素,以列表形式访问
>>> _list_sample = [1, 4, 6, 7, 32, 4, 8]
>>> sample(_list_sample)
[6, 7, 8]
time库

基于1970年01月01日00分00秒其到现在的总秒数

时间处理

# time():获取当前时间戳
>>> time.time()
1616653849.0040529

# gmtime(secs):获取当前时间戳对于的struct_time对象
>>> time.gmtime(1616653849.0040529)
time.struct_time(tm_year=2021, tm_mon=3, tm_mday=25, tm_hour=6, tm_min=30, tm_sec=49, tm_wday=3, tm_yday=84, tm_isdst=0)

# ctime(secs):获取的世界戳被内部调用location()函数输出当地时间
>>> time.ctime(1616653849.0040529)
'Thu Mar 25 14:30:49 2021'

时间格式化函数

# mktime:将struct_time转化成时间戳
>>> localtime()
time.struct_time(tm_year=2021, tm_mon=3, tm_mday=25, tm_hour=14, tm_min=33, tm_sec=57, tm_wday=3, tm_yday=84, tm_isdst=0)
>>> mktime(localtime())
1616654052.0

# strftime():将struct_time转化成标准格式
>>> strftime("%Y-%m-%d %H:%M:%S", localtime())
'2021-03-25 14:36:53'

# strptime():与strftime相反

python第三方库

第三方库的安装
# pip安装
pip install 库名

# 自定义安装

#文件安装
pyinstaller库
pyinstaller -F demo.py
jieba库
# lcut(s):返回一个列表类型
>>> import jieba
>>> jieba.lcut("你好啊,好久不见了")
Building prefix dict from the default dictionary ...
Dumping model to file cache C:\Users\ASUS\AppData\Local\Temp\jieba.cache
Loading model cost 2.123 seconds.
Prefix dict has been built successfully.
['你好', '啊', ',', '好久不见', '了']

# lcut(s, cut_all=True):全模式,返回一个列表类型
>>> jieba.lcut("你好啊,好久不见了", cut_all=True)
['你好', '啊', ',', '好久', '好久不见', '不见', '了']

# lcut_for_search(s):搜索引擎模式,返回一个列表类型(会出现分词冗余)
>>> jieba.lcut_for_search("你好啊,好久不见了")
['你好', '啊', ',', '好久', '不见', '好久不见', '了']

# add_word(w):向分词自动中添加新词w
>>> jieba.add_word("你好")
>>> jieba.lcut("你好啊,好久不见了")
['你好', '啊', ',', '好久不见', '了']
wordcloud库

预处理:把所有文本进行分词处理,然后用空格拼接,最后调用该对象

words = jieba.lcut(txt)
newtxt = ''.join(words);
wordcloud = wordcloud(font_path='xxx').generate(newtxt)
参数描述
font_path字体文件的完整路径
width生成图片宽度,默认400
heigth生成图片长度,默认400
mask词云形状,默认方形图
min_font_size最小字体,默认4号
max_font_size最大字体,跟随高度变化
font_step字体步进间隔,默认1
stopwords被排除词列表,排除的词不在词云中显示
background_color图片背景颜色,默认为黑色
max_words词云图中最大次数,默认200

其他方向的第三方库

网络爬虫
# requests

# scrapy

# pyspider
数据分析方向
# numpy

# pandas

# sicpy
文本处理方向
# pdfminer

# python-docx

# beautifulsoup4
数据可视化方向
# matplotlib

# seaborn

# mayavi
用户图形界面方向
# pyqt5

# wxpython

# pygtk
机器学习方向
# scikit-learn

# tensorflow

# mxnet
web开发方向
# Django

# pyramid

# flask
游戏开发方向
# pygame

# panda3d

# cocos2d
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

妖怪喜欢风

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值