文章

Python基础(四)

Python基础

Python基础(四)

Python基础(四)

一、字符串

字符串驻留机制

对相同的字符串只保留一份拷贝,后续创建相同字符串时,不会开辟新空间,而是把该字符串的地址赋值给新创建的变量

字符串的查询操作

index()查找子串substr第一次出现的位置,如果查找的子串不存在,则抛出ValueError
rindex()查找子串substr最后一次出现的位置,如果查找的子串不存在,则抛出ValueError
find()查找子串substr第一次出现的位置,如果查找的子串不存在,则返回-1
rfind()查找子串substr最后一次出现的位置,如果查找的子串不存在,则返回-1

格式化字符串

  • % 作占位符
%s字符串
%i 或 %d整数
%f浮点数
  • { } 作占位符
name = 'zs'
age = 20
 
# % 作占位符
print('姓名:%s, 年龄: %d' % (name,age))
 
# { } 作占位符
# {0} 表示取format方法的第一个参数
print('姓名:{0}, 年龄: {1}'.format(name,age))

二、函数

函数的创建

def 函数名([输入参数]):
    函数体
    [return ...]
 
# example
def sum(a,b):
    c = a + b
    return c

函数的返回值

  • 函数返回多个值时,结果为元组

    def func(num):
    	odd = []
    	eveb = []
    	for i in num:
    		if i%2:
    			odd.append(i)
    		else:
    			even.append(i)
        return odd,even
    print(func([10,29,34,23,44,53,55])) -> ([29,23,53,55], [10,34,44])

函数的参数

  • 个数可变的位置参数

    使用 * 定义个数可变的位置形参,结果为一个元组

    def func(*args):
        print(args)
    func(10,20,30) -> (10,20,30)
  • 个数可变的关键字形参

    使用 ** 定义个数可变的关键字形参,**结果为一个字典**

    def func(**args):
        print(args)
    func(a=10,b=20,c=30) -> {'a':10, 'b':20, 'c':30}
  • 函数定义时,给形参设置默认值,只有与默认值不符时才需要传递实参

    def fun(a, b=10):
        print(a,b)
     
    fun(100) # 此时a的值为100,b使用默认值10

三、异常处理及类型

异常处理

try:
    可能会出现异常的代码
except 异常类型:
    报错后执行的代码
 
# example
try:
    n1 = int(input('请输入一个整数'))
    n2 = int(input('请输入另一个整数'))
    result = n1 / n2
    print('result:', result)
except ZeroDivisionError:
    print('除数不能为0')
 
# 多个except结构,为了避免遗漏可能出现的异常,可以在最后增加BaseException
try:
    n1 = int(input('请输入一个整数'))
    n2 = int(input('请输入另一个整数'))
    result = n1 / n2
    print('result:', result)
except ZeroDivisionError:
    print('除数不能为0')
except BaseException as e:
    print(e)
 
# try...except...else结构
	# 如果try块中没有抛出异常,则执行else块;如果try中抛出异常,则执行except块
 
# try...except...else...finally结构
	# finally块无论是否发生异常都会被执行

traceback 模块

  • 使用 traceback 模块打印异常信息

    import traceback
    try:
        num = 10 / 0
    except:
        traceback.print_exc()

四、类与对象

类的创建

# 创建类
class Student:
    pass
 
@classmethod -> # 定义类方法
def sum(number):
    print('类方法')
 
@staticmethod -> # 定义静态方法
def sub(number):
    print('静态方法')

对象的创建

# 语法
实例对象名 = 类名()
# 创建对象
stu = Student()
 
# Python同样支持动态绑定属性和方法
stu.gender = 'man' -> 动态绑定属性
def show():
    print('...')
stu.show = show -> 动态绑定方法

对象的继承

# 语法
class 子类名(父类名1, 父类名2...)
 
class Person(object):
    def info(self):
        print('父类')
class Student(Person):
    def info2(self):
        print('子类')
 
stu = Student()
stu.info2() -> 子类

特殊方法和特殊属性

特殊属性__dict__获得类对象或实例对象所绑定的所有属性和方法的字典
特殊方法__len__()通过重写__len__()方法,让内置函数len()的参数可以是自定义类型
特殊方法__add__()通过重写__add__()方法,可使自定义对象具有”+“功能
特殊方法__new__()用于创建对象
特殊方法__init__()对创建的对象进行初始化

五、模块

导入模块

import 模块名称 [as 别名]
from 模块名称 import 函数/变量/

常用内置模块

time时间库
os访问操作系统服务功能的库
urllib读取来自网上(服务器)的数据标准库
jsonJSON序列化和反序列化对象
re在字符串中执行正则表达式匹配和替换
decimal进行控制运算精度
logging提供日志信息功能

第三方模块的安装

pip install 模块名