【Python】语法

函数 Function

定义参数

  • 定义参数时默认参数必须是不可变的数据类型,比如int、float、bool、string、tuple(元组), etc.
  • 默认参数一般在必选参数之后,避免错位。
  • 顺序:
    必选参数, 默认参数, 可变参数, 命名关键字参数, 关键字参数
def func(a, b, c=0, *args, **kw):
    print('a=', a, 'b=', b, 'c=', c, 'args=', args, 'kw=', kw)

print(func(1, 2))  
# 输出结果:a= 1 b= 2 c= 0 args= () kw= {}
print(func(1, 2, c=3))  
# 输出结果:a= 1 b= 2 c= 3 args= () kw= {}
print(func(1, 2, 3, 'a', 'b'))  
# 输出结果:a= 1 b= 2 c= 3 args= ('a', 'b') kw= {}
print(func(1, 2, 3, 'a', 'b', x=4))  
# 输出结果:a= 1 b= 2 c= 3 args= ('a', 'b') kw= {'x': 4}
args = (1, 2, 3, 4)
kw = {'x': 5}
print(func(*args, **kw))  
# 输出结果:a= 1 b= 2 c= 3 args= (4,) kw= {'x': 5}

Lambda函数

语法:
lambda [arg1[,arg2],....argn]]:expression

sum = lambda arg1, arg2: arg1 + arg2
print(sum(1, 2)) # 结果是:3

OOP特征

  • 封装:找到变化并且把它封装起来,就可以在不影响其它部分的情况下修改或扩展被封装的变化部分,这是所有设计模式的基础。封装解决了程序的可扩展性。
  • 继承:子类继承父类,可以继承父类的方法及属性,实现了多态以及代码的重用,解决了系统的重用性和扩展性。
  • 多态:接口的多种不同的实现方式即为多态。接口的主要目的是为不相关的类提供通用处理服务。这实现了系统的可维护性和可扩展性。

类 Class

定义类

class A:
    pass


class A():
    pass


class A(object):
    pass
"""
Python 3.X 新增属性和方法
__name__ :属性的名字
__doc__ :属性的文档字符串
__get__(object) :获取对象属性值的方法
__set__(object, value) :设置对象属性值的方法
__delete__(object, value) :删除对象属性的方法 
"""

继承

(1)子类拥有父类的属性和方法。
(2)子类可以创建自己属性和方法。
(3)子类可以对父类的方法进行覆盖实现。
(4)子类可重新定义父类中的属性。
(5)一个父类可由多个子类继承,一个子类也可继承多个父类。
(6)如果父类定义了__init__()方法,子类也定义了自己的__init__()方法并且还要使用父类的__init__()方法,子类需要显式调用父类的__init__()方法。如果子类需要扩展父类的初始化行为,可以添加__init__()方法参数。
(7)当继承的多个父类中有相同的属性或方法时,会继承最前面的父类的属性或方法。

条件表达式

运算符号

分类运算符数学符号含义
关系===等于
关系!= ≠ \ne =不等于
关系>>大于
关系<<小于
关系>= ⩾ \geqslant 大于等于
关系<= ⩽ \leqslant 小于等于
成员in ∈ \in 存在
成员not in ∉ \notin /不存在

循环

控制语句

BreakContinue
跳出整个循环跳出本次循环,继续执行下次循环

字符串 String

Raw字符串格式

s= r'...'

在raw字符串中,所有的字符都是直接按照字面意思来解释,没有转义字符或者不能打印的字符。

字符串格式化符号

格式化符号含义
%c转换成字符(ASCII码,长度为1)
%r用repr()转化
%s用str()转化
%d / %i转化成有符号十进制
%u转化成无符号十进制
%o转化成无符号八进制
%x / %X转化成无符号十六进制
%e / %E转化成科学技术法
%f / %F转化成浮点数
%g / %G%e和%f的简写
%%格式化字符串中带%必须用%%来表示

数字格式化符号

格式化符号含义
{:.2f}保留小数点后两位
{:+.2f}带符号保留小数点后两位
{:.0f}不保留小数
{:0>2d}数字补0(填充左边,宽度为2)
{:x<4d}数字补x(填充右边,宽度为4)
{:,}每三位逗号分隔
{:.2%}百分比
{:.2e}指数记法
{:10d}右对齐, 宽度为10
{:<10d}左对齐, 宽度为10
{:^10d}中对齐, 宽度为10

表达式

列表推导式 List Comprehension

语法:

[表达式 for 迭代变量 in 可迭代对象 [if 条件表达式]]

字典推导式

语法:

{:for 迭代变量 in 可迭代对象 [if 条件表达式]}

三元表达式/条件表达式

语法:

表达式(1)为 True 执行语句 if 条件表达式(1else 表达式(1)为 False 执行语句

元组条件表达式

语法:

(当后面的表达式为假时返回,当后面的表达式为真时返回)[条件表达式]

断言 Assert

常用断言函数

函数名作用
assertEqual(a,b,msg=msg)判断两个值是否相等
assertNotEqual(a,b,msg=msg)判断两个值是否不等
self.assertTrue(a,msg=none)判断变量是否为 True
assertFalse(a,msg=none)判断变量是否为 False
assertIsNone(obj=‘’)判断 obj 是否为空
assertIsNotNone(obj=‘’)判断 obj 是否为非空

上下文管理器:with ... as ... 语句

作用:
----自动分配并释放资源

语法:

with 表达式 [as 指定一个变量名]:
	代码块
	代码块

异常捕获

常见异常

异常名意义
AttributeError某个对象没有属性
Exception通用型异常对象
FileNotFoundError找不到文件
IOError输入输出异常
IndexError索引异常
KeyError键异常
NameError对象名称异常
SyntaxError语法错误
TypeError类型错误
ValueError值错误

处理异常

分别处理异常

try:
	可能出错的代码块
except 异常对象1:
	异常处理代码块
except 异常对象2:
	异常处理代码块

统一处理异常

try:
	可能出错的代码块
except (异常对象1,异常对象2...):
	异常处理代码块

直接抛出异常

num1 = 20
num2 = 0
try:
    num3 = num1 / num2
except ZeroDivisionError as e:
    print(e)

except TypeError as e:
    print(e)

else:
    print("无异常,会被执行")

Finally 语句

语法:

try:
	可能出错的代码块
except:
	代码出错执行的代码块
else:
	代码正常执行的代码块
finally:
	无论代码是否有异常出现都会执行的的代码块
  • 7
    点赞
  • 11
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值