0
点赞
收藏
分享

微信扫一扫

python基础笔记

westfallon 2022-04-02 阅读 65
python

基础语法

注释

1. # ~~~  
2. '''~~~'''
3. """~~~~"""

缩进

多语句

name = one + \
    two + \
    three
name = (one,
        two,
        three)

输出

print()
格式化输出
占位符替换内容
%s字符串
%d整数
%f浮点数
%x十六进制整数
%c格式化字符及其ASCII码
%o八进制数
%x / %X十六进制数
%e / %E科学计数法
%g / %G%f和(%e / %E)的简写
  1. 方法一
x = "c.c"
y = 1000
print("Hello %s" %"world")
print("Hi %s !"%x)
print("Hi %s ,you have $%d."%(x,y))
print("Hi %s ,you have $%.2f ."%(x,y))
  1. 方法二: format( )
x = "c.c"
y = 1000
print("Hi {0} !".format(x))
print("Hi {0}, you have ${1}.".format(x,y))
print("Hi {0}, you have ${1:.2f} .".format(x,y))
print("Hi {1}, you have ${0:.2f} .".format(y,x))
  1. 方法三: f-string
x = "c.c"
y = 1000
print(f"Hi {x} !")
print(f"Hi {x}, you have ${y}.")
print(f"Hi {x}, you have ${y:.2f} .")

输入

input()

定义变量、赋值

one = 1
two = '2'
one = two = three = 3
four, five = 4, 5

索引

        a   b   c   d   e   f   g   h   i
下标    0   1   2   3   4   5   6   7   8
       -9  -8  -7  -6  -5  -4  -3  -2  -1
 [头下标:尾下标]获取的子字符串包含头下标的字符,**但不包含尾下标的字符**。
s = "abcdefghi"
print(s[2:7])	# bcdefg
print(s[0:])	#abcdefghi
print(s[-9:-5]) #abcd
print(s[0::2])  #acegi

数据类型

判断数据类型

one = 1
two = '2'
type(one) #class int
isinstance(one,int) #Ture
isinstance(one,float) #False

数值(Number)类型

  1. int(整型):正或负整数,不带小数点
  2. long integers (长整型):无限大小的整数,整数最后是一个大写或小写的L
  3. float(浮点型):由整数部分与小数部分组成
  4. bool(布尔型):True,False
  5. complex (复数):由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示
类型转换
函数描述
int(x)将x转换为一个整数。
float(x)将x转换到一个浮点数。
complex(x)将x转换到一个复数,实数部分为 x,虚数部分为 0。
complex(x, y)将 x 和 y 转换到一个复数,实数部分为 x,虚数部分为 y。
数学函数
函数描述引入
abs(x)绝对值
max(1,2···)最大值
min(1,2···)最小值
round()返回浮点数x的四舍五入值
cmp(x,y)x < y 返回 -1, x == y 返回 0, x > y 返回 1Python3已废弃
(x>y)-(x<y)x < y 返回 -1, x == y 返回 0, x > y 返回 1
celi(x)返回数字的上入整数import math
exp(x)返回e的x次幂import math
fabs(x)返回数字的绝对值import math
floor(x)返回数字的下舍整数import math
log(x,[base])返回 x 的自然对数,[base]底数,默认为 eimport math
log10(x)返回以10为基数的x对数import math
modf(x)返回x的整数部分与小数部分import math
pow(x,y)返回x 的 y 次方import math
sqrt(x)返回数字x的平方根import math

字符串(String)

转义字符
转义字符描述
\(在行尾时)续行符
\(不在末尾时间)转义字符
\a响铃
\b退格(Backspace)
\000
\n换行
\v纵向制表符
\t横向制表符
\r\r 后面有多少个字符就替换前面多少个字符
字符串运算符
操作符描述
+字符串连接
*重复输出字符串
[]索引获取字符串中字符
[:]截取字符串中的一部分,遵循左闭右开原则
[::]截取字符串中的一部分,遵循左闭右开原则,间隔
in字符串中包含给定的字符返回True
not in字符串中不包含给定的字符返回 True
r/R所有的字符串都是直接按照字面的意思来使用
%格式字符串
内建函数
函数描述语法
capitalize()将首位(非字母不执行)字母变成大写,其他字母变小写set.capitalize()
count()字符串里某个字符出现的次数str.count(sub(搜索的字符), start(开始位置),end(结束位置))
endswith()判断字符串是否以指定后缀结尾str.endswith(sub(搜索的字符), start(开始位置),end(结束位置))
rfind()返回字符串最后一次出现的位置,如果没有匹配项则返回-1str.rfind(str, beg=0(开始) end=len(str)(结束)
find()检测字符串中是否包含子字符串str.find(sub(搜索的字符), start(开始位置),end(结束位置))
index()和find()一样,但是找不到会报一个异常str.find(sub(搜索的字符), start(开始位置),end(结束位置))
isalnum()字符串至少存在一个字母和数字组成set.isalnum()
isalpha()是否只由字母或文字组成str.isalpha()
isdigit()是否只由数字组成str.isdigit()
isnumeric()是否只由数字组成(Unicode数字,罗马数字,汉字数字等)str.isnumeric()
islower()否由小写字母组成str.islower()
isspace()是否只由空白字符组成str.isspace()
title()所有单词的首个字母转化为大写str.title();
istitle()所有的单词拼写首字母是否为大写,且其他字母为小写str.istitle()
isupper()所有的字母是否都为大写str.isupper()
isdecimal()字符串是否只包含十进制字符str.isdecimal()
join()通过指定字符连接序列中元素后生成的新字符串str(指定的字符).join(sequence(要连接的元素序列))
len()返回对象(字符、列表、元组等)长度或项目个数len(str)
lower()所有大写字母转为小写str.lower()
upper()所有小写字母转为大写str.upper()
swapcase()大小写字母进行转换str.swapcase();
lstrip()返回截掉字符串左边的空格或指定字符后生成的新字符串str.lstrip(chars)
max()返回字符串中最大的字母max(str)
min()返回字符串中最小的字母min(str)
replace()把字符串中的old(原字符)替换成new(新字符),不超过max次str.replace(old, new,[max])
rindex()和rfind()一样,但是找不到会报一个异常str.rindex(str, beg=0(开始) end=len(str)(结束)
rstrip()删除 string 字符串末尾的指定字符str.rstrip(chars)
split()指定分隔符对字符串进行切片str.split(st(分隔符),num)
splitlines()按照行(’\r’, ‘\r\n’, \n’)分隔,返回一个包含各行作为元素的列表str.splitlines(keepends)
strip()移除字符串头尾指定的字符str.strip(chars);
translate()根据参数 table 给出的表转换字符串的字符str.translate(table)

列表(List)

函数&方法
函数描述语法
len()列表元素个数len(list)
max()返回列表元素最大值max(list)
min()返回列表元素最小值min(list)
list()将元组转换为列表list(seq)
append()在列表末尾添加新的对象list.append(obj)
insert()指定对象插入列表的指定位置list.insert(index, obj)
pop()移除列表中的一个元素(默认最后一个元素),并且返回该元素的值list.pop([index=-1])
del移除列表中的一个元素del lisr[index]
remove()移除列表中某个值的第一个匹配项list.remove(obj)
count()统计某个元素在列表中出现的次数list.count(obj)
index()从列表中找出某个值第一个匹配项的索引位置list.index(obj)
extend()在列表末尾一次性追加另一个序列中的多个值(用新列表扩展原来的列表)list.extend(seq)
reverse()用于反向列表中元素list.reverse()
sort()用于对原列表进行排序list.sort( key=None, reverse=[False(默认升序)/True(降序)])
clear()清空列表list.clear()
copy()用于复制列表list.copy()

元组(Tuple)

函数描述语法
len()元组元素个数len(tuple)
max()返回元组元素最大值max(tuple)
min()返回元组元素最小值min(tuple)
tuple()将可迭代系列转换为元组tuple(list)

字典(Dictionary)

函数&方法
函数描述语法
len()计算字典元素个数,即键的总数len(dict)
str(dict)输出字典,可以打印的字符串表示str(dict)
clear()删除字典内所有元素dict.clear()
copy()返回一个字典的浅复制dict.copy()
fromkeys()创建一个新字典,以序列seq中元素做字典的键,val为字典所有键对应的初始值dict.fromkeys(seq,[value])
items()以列表返回视图对象,是一个可遍历的key/value 对dict.items()
keys()返回字典的所有key
values()返回字典的所有values
get()返回指定键的值,如果键不在字典中返回 default 设置的默认值dict.get(key,[value])
setdefault()返回指定键的值,如果键不在字典中,将会添加键并将值设为defaultdict.setdefault(key, default=None)
update()把字典dict2的键/值对更新到dict里dict.update(dict2)
popitem()返回并删除字典中的最后一对键和值dict.popitem()
pop返回并删除字典中给定键 key 所对应的键和值。 否则,返回default值。pop(key[default])
dict(zip())#将两个元组或列表组成一个新的字典dict(zip(keys,values))

集合(Set)

函数&方法
函数描述语法
add()给集合添加元素(存在则不进行操作)set.add(elmnt)
clear()移除集合中的所有元素set.clear()
copy()拷贝一个集合set.copy()
difference()用于返回集合的差集set.difference(set)
difference_update()移除两个集合中都存在的元素set.difference_update(set)
discard()除指定的集合元素set.discard(value)
intersection()返回两个或更多集合的交集set.intersection(set1, set2 … etc)
intersection_update()移除不重叠的元素set.intersection_update(set1, set2 … etc)
isdisjoint()判断两个集合是否包含相同的元素set.isdisjoint(set)
issubset()判断集合的所有元素是否都包含在指定集合中set.issubset(set)
issuperset()判断指定集合的所有元素是否都包含在原始的集合中set.issuperset(set)
pop()随机移除一个元素set.pop()
remove()移除集合中的指定元素set.remove(item)
update()添加新的元素或集合到当前集合中set.update(set)
symmetric_difference()返回两个集合中不重复的元素集合set.symmetric_difference(set)
symmetric_difference_update()移除相同的元素,将两个集合中不重复的元素集合保存到原集合中set.symmetric_difference_update(set)
union()方法返回两个或更多集合的并集set.union(set1, set2…)

推导式(生成式)

列表(list)推导式

# [表达式 for 变量 in 列表] 
[out_exp_res for out_exp in input_list]

# [表达式 for 变量 in 列表 if 条件]
[out_exp_res for out_exp in input_list if condition]

元组(tuple)推导式

(expression for item in Sequence )

(expression for item in Sequence if conditional )

# 返回的是生成器对象
# 使用 tuple() 函数,可以直接将生成器对象转换成元组
tuple(???)

集合(set)推导式

{ expression for item in Sequence }

{ expression for item in Sequence if conditional }

字典(dict)推导式

{ key_expr: value_expr for value in collection }

{ key_expr: value_expr for value in collection if condition }

运算

运算符优先级

运算符描述
**指数 (最高优先级)
* , / , % , //乘,除,取模和取整除
+ , -加法减法
>> , <<右移,左移运算符
&位运算符
^ ,|位运算符
< , =< , > , >=比较运算符
<> , == , !=等于运算符
= %= /= //= -= += *= **=赋值运算符
is , is not身份运算符
in , not in成员运算符
not , and or逻辑运算符

算术运算

运算符描述实例结果(a=5,b=2)
+a+b7
-a-b3
*a*b10
**a**b25
/a/b2.5
//取整a//b2
%取余a%b1

比较运算

运算符描述实例结果(a=10,b=20)
==等于a==bFalse
!=不等于a!=bTrue
<>不等于(python3 已废弃)a<>bTrue
>大于a>bFalse
<小于a < bTrue
>=大于等于a>=bFalse
<=小于等于a<=bTrue

赋值运算

运算符描述
=赋值
+=加法赋值
-=减法赋值
*=乘法赋值
**=幂赋值
/=除法赋值
//=取整赋值
%=取余赋值

逻辑运算

运算符描述
and都为True才为True
or一个为True就为True
not取反

位运算符

运算符描述
&与运算:都为1才为1
|或运算:一个为1就为1
^异或运算: 不同就唯1
~取反运算:
<<左移动运算:
>>右移动运算:

成员运算

运算符描述
in在指定的序列中找到值返回 True,否则返回 False。
not in在指定的序列中没有找到值返回 True,否则返回 False。
x = 1
y = 2
z = [1,3,5]
print(x in z)      #True
print(x not in z)  #False
print(y in z)      #False
print(y not in z)  #True

身份运算

运算符描述
is判断两个标识符是不是引用自一个对象,类似 id(a) == id(b)
is not判断两个标识符是不是引用自不同对象,类似 id(a) != id(b)
a = 20
b = 20
c = 30
print(a is b)  # True
print(a is c)  # False
print(a is c-10)  # True

print(a is not b)  # False
print(a is not c)  # True
print(a is not c-10)  # False

条件语句

if … else

if 判读条件:
    执行语句
else:
    执行语句

if … ellf … else

if 判读条件:
    执行语句
elif 判断语句:
    执行语句

......

else:
    执行语句

for语法

for ... in ...:
    执行语句

while语法

while 条件语句:
    执行语句

break语法

while True:
    break

continue

while Ture:
    continue

函数

语法

# 关键字 函数名 (传参)
    def name(a,b,c):
        执行函数
        return a
        关键字,设置返还值


# 函数调用
name()

传参

#       关键字参数 默认参数 不定长参数(*/**)
def name (a ,       b=2,   *name,**age):

name(1,b=3,*name,**age)

递归函数

def name(a):
    if a==1:
        return 1
    return a*name(a-1)

print(name(10))

闭包

def name():
    def age():
    return age

name()

匿名函数

x=lambda x,y,z:x+y+z
print(x(1,2,3)) #6

global 和 nonlocal关键字

def name():
    global num #修改全局变量
    def name1():
        nonlocal #修改嵌套中作用域中的变量

模块

import语句

form … import … 语句

form … import * 语句

import re

# 同级
import 文件名
# 不同级
import 文件夹.文件
from 文件夹 import 文件

# 重命名
import 变更名 as 文件名

正则表达式

re.match

# 语法:
re.match(pattern, string, flags=0)
参数描述
pattern匹配的正则表达式
string要匹配的字符串
flags标志位,用于控制正则表达式的匹配方式

re.search

# 语法:
re.search(pattern, string, flags=0)
参数描述
pattern匹配的正则表达式
string要匹配的字符串
flags标志位,用于控制正则表达式的匹配方式

re.sub

# 语法
re.sub(pattern, repl, string, count=0, flags=0)
参数描述
pattern正则中的模式字符串
repl替换的字符串,也可为一个函数
string要被查找替换的原始字符串
count模式匹配后替换的最大次数,默认 0 表示替换所有的匹配
flags编译时用的匹配模式,数字形式

函数

函数名描述
group()用于获得一个或多个分组匹配的字符串
start()用于获取匹配的起始位置
end()用于获取匹配的结束位置
span返回 (start(), end())

修饰符 - 可选标志

修饰符描述
^匹配字符串的开头
$匹配结尾
.匹配任意字符,除了换行符
[…][amk] 匹配 ‘a’,‘m’或’k’
[^…]不在[]中的字符
+1个或多个
*0个或多个
?0个或1个
{n}匹配 n 个前面表达式
{n,m}匹配 n 到 m 次前面表达式
a|b匹配a或b
(re)匹配括号内的表达式,也表示一个组
\w匹配数字字母下划线
\W匹配非数字字母下划线
\s匹配任意空白字符,等价于 [\t\n\r\f]。
\S匹配任意非空字符
\d匹配任意数字,等价于 [0-9]。
\D匹配任意非数字
\b匹配一个单词边界
\B匹配非单词边界

OS 文件/目录方法

File(文件) 方法

open(file, mode='r', buffering=-1, encoding=None, errors=None, newline=None, closefd=True, opener=None)  

with open("name.txt","a") as f:
    f.read()
"""
file:        必需,文件路径(相对或者绝对路径)。
mode:        可选,文件打开模式
buffering:   设置缓冲
encoding:    一般使用utf8
errors:      报错级别
newline:     区分换行符
closefd:     传入的file参数类型
opener:      设置自定义开启器,开启器的返回值必须是一个打开的文件描述符。
"""

mode 参数有

模式描述备注
t文本模式(默认)
x创建文件(存在则会报错)
b二进制模式
r只读
r+先读后写写入会替换原先的内容
w只写文件不存在会创建,写入会覆盖原本所有的内容
w+先写后读
a追加只会在末尾追加
a+追加,读只会在末尾追加

file 对象

方法描述
file.close()关闭文件
file.flush()刷新缓冲区,即将缓冲区中的数据立刻写入文件
file.read([size])读取,[size]读取的字节数
file.readline([sizeint])读取整行
fiel.seek(offset,[whence])移动读取指针的位置
fiel.tell()返回文件当前位置
fiel.truncate([size])截取size 个字节,截取后面的所有字节被删除
fiel.write(str)将字符串写入文件,返回的是写入的字符长度
fiel.writelines(str)向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符

excel表格

xlrd

  1. 对表操作
import xlrd
# 打开方式
work_book_1=xlrd.open_workbook("文件")
work_book_2=xlrd.book.open_workbook_xls("文件")

# 获取工作簿中所有sheet表数量
work_book.nsheets

# 获取工作簿中所有sheet表对象
sheets=work_book.sheets()

# 获取工作簿中所有sheet表的名称
sheets_name=work_book.sheet_names()

# 按索引获取sheet对象
sheet_1 = work_book.sheet_by_index(0)
sheet_2 = work_book.sheet_by_name('Sheet2')

  1. 单元格操作
# 获取sheet表单元格对象,单元格数据类型:单元格值
cell_0 = sheet_1.cell(0,0)

# 获取sheet表单元格值
cell_0_value = sheet_1.cell_value(0,0)

# 获取单元格类型
cell_0_value = sheet_1.cell_type(0,0)
  1. 行操作
# 获取sheet表对象有效行数
row_sum = sheet_1.nrows

# 获取sheet表某一行长度
row_len = sheet_1.row_len(0)

# 获取sheet表某一行所有数据类型及值
row_0 = sheet_1.row(0)

# 获取某一行对象数据类型、值,可指定开始结束列
row_0_s = sheet_1.row_slice(0,0,1)

# 获取sheet表对象某一行数据类型,返回一个数组对象
row_0_type = sheet_1.row_types(0)

# 获取sheet表对象某一行数据值
row_0_value = sheet_1.row_values(0)

# 获得sheet对象所有行对象生成器
rows = sheet_1.get_rows()
  1. 列操作
# 获取sheet表某一行所有数据类型及值
row_0 = sheet_1.row(0)

# 获取某一行对象数据类型、值,可指定开始结束列
row_0_s = sheet_1.row_slice(0,0,1)

# 获取sheet表对象某一行数据类型,返回一个数组对象
row_0_type = sheet_1.row_types(0)

# 获取某一列的值
col_0_value = sheet_1.col_values(0)

xlwt

import xlwt

# 新建工作簿中
work_book = xlwt.Workbook()

# 增加sheet表
work_sheet = work_book.add_sheet('Test')


# 写入数据 行 列 内容
work_sheet.write(0,0,text)
work_sheet.write_rich_text(0,0,text)

# 保存文件
work_book.save('Test.xls')

# 合并单元格
work_sheet.merge(2,3,0,3)
# (2,0) (2,3) (3.0) (3,3)
# 合并单元格并写入
work_sheet.write_merge(4,4,0,3,'合并单元格数据')

xlutils

from xlutils.copy import copy

# 复制工作簿
work_book_copy=copy(work_book)

# 读取表
work_sheet_copy=work_book_copy.get_sheet(0)

# 写入数据 行 列 内容
work_sheet_copy.write(0,0,text)

# 保存
work_book_copy.save("text.xls")

错误和异常

try:
    # 执行语句
except:
    # 发生异常时执行
else:
    # 没有异常时执行
finally:
    # 不管有没有异常都会执行


# 抛出异常
raise [Exception [, args [, traceback]]]
# x = 10
# if x > 5:
#     raise Exception('x 不能大于 5。x 的值为: {}'.format(x))

assert(断言)
# 条件为false时执行
assert expression
# 相当于
if not expression:
    raise AssertionError

assert expression [, arguments]
# 等价于:
if not expression:
    raise AssertionError(arguments)

错误类型

BaseException
 +-- SystemExit
 +-- KeyboardInterrupt
 +-- GeneratorExit
 +-- Exception
      +-- StopIteration
      +-- StopAsyncIteration
      +-- ArithmeticError
      |    +-- FloatingPointError
      |    +-- OverflowError
      |    +-- ZeroDivisionError
      +-- AssertionError
      +-- AttributeError
      +-- BufferError
      +-- EOFError
      +-- ImportError
      |    +-- ModuleNotFoundError
      +-- LookupError
      |    +-- IndexError
      |    +-- KeyError
      +-- MemoryError
      +-- NameError
      |    +-- UnboundLocalError
      +-- OSError
      |    +-- BlockingIOError
      |    +-- ChildProcessError
      |    +-- ConnectionError
      |    |    +-- BrokenPipeError
      |    |    +-- ConnectionAbortedError
      |    |    +-- ConnectionRefusedError
      |    |    +-- ConnectionResetError
      |    +-- FileExistsError
      |    +-- FileNotFoundError
      |    +-- InterruptedError
      |    +-- IsADirectoryError
      |    +-- NotADirectoryError
      |    +-- PermissionError
      |    +-- ProcessLookupError
      |    +-- TimeoutError
      +-- ReferenceError
      +-- RuntimeError
      |    +-- NotImplementedError
      |    +-- RecursionError
      +-- SyntaxError
      |    +-- IndentationError
      |         +-- TabError
      +-- SystemError
      +-- TypeError
      +-- ValueError
      |    +-- UnicodeError
      |         +-- UnicodeDecodeError
      |         +-- UnicodeEncodeError
      |         +-- UnicodeTranslateError
      +-- Warning
           +-- DeprecationWarning
           +-- PendingDeprecationWarning
           +-- RuntimeWarning
           +-- SyntaxWarning
           +-- UserWarning
           +-- FutureWarning
           +-- ImportWarning
           +-- UnicodeWarning
           +-- BytesWarning
           +-- EncodingWarning
           +-- ResourceWarning

面向对象(类)

class Name:
    # 名称默认大写开头
    # 执行代码
    def __init__(self):
        self.data=[]
    def name(self):
        # 类方法必须包含参数 self
        print(self)

# 调用
x=Name() #实例化:创建对象
x.name()
举报

相关推荐

0 条评论