Python小甲鱼

(1)运算符优先级:

assert() ——用于设置断点

这个关键字为“断言",当其后面的条件为假时,程序自动崩溃并抛出AssertionError的异常。

字符串str()、列表list()、元组tuple() 都属于序列。

(2)函数

  • 函数定义

def myfunction() :

 

  • 括号内部参数为“形参”,运用函数时定义的参数为“实参”。

 

  • 函数文档 查看 xxx.__doc__,或者直接help(函数名)

 

  • 关键字参数(调用函数时用关键字定义参数,从而防止参数顺序输入错误)

def function(name,words)

  • 默认参数(调用函数不用关键字定义时,使用默认值)

def function(name = “小甲鱼”,words = “让编程改变世界”)

  • 收集参数,参数前加*。不确定调用时到底是多少个实参用收集参数

def function(*params)

 

  • 局部变量(函数内部定义的参数,变量。只在函数内部有效)
  • 全局变量(函数外部的定义变量为。处处可用,包括函数内部)

上述二者即使同一个名字,也互相不影响,不相关。(存储地址不同)

  • 与全局变量和局部变量相似,对于某一定义函数内部的函数定义,不可单独调用。

eg.

def Fun1(x)
    def Fun2(y)
        return x*y
    return Fun2



>>>i = Fun1(8)
>>>type(i)
<class 'function'>
>>>Fun1(8)(5)
40
>>>Fun2(5)
Error
  • 匿名函数——lambda 表达式:可省略函数定义过程,使代码更加精简
>>>g = lambda x,y :x+y
>>>g(3,4)
7
  • filter()——过滤器

第一个参数为函数或者NONE,第二个参数,是将这里面所有参数用于函数计算,如果结果为TURE,返回为一个列表

>>>filter(lambda x:x%2,range(10))
[1, 3, 5, 7, 9]
  • map()——映射

第一个参数为函数或者NONE,第二个参数,是将这里面所有参数用于函数计算,并将结果返回。

>>> map(lambda x : x%2,range(10))
[0, 1, 0, 1, 0, 1, 0, 1, 0, 1]

(3)递归

与迭代不同,

思想:分而治之

缺点:运算时间较长

(4)字典/集合

字典:dict = {"key":"value" , "key":"value"}

集合:

>>>set = {1,2,3,4,5,5,4,3,2}  唯一!无序!(无法索引)

>>>set

{1,2,3,4,5}

 

(5)文件

打开文件:

open("file" , "打开方式“)

打开方式有:

r  只读(默认)、w 写入,会覆盖已存在的文件、x 如果文件存在,则报错、 a 写入,如果文件存在,则在末尾追加写入内容、

b 二进制打开、t 文本模式打开(默认)、...

 

文件对象处理方法:

f.close() 关闭文件

 

f.read(size) 按照字节读取,当未给定值或者给定负值时,读取剩余的所有字符,然后作为字符串返回。

    文件指针,读取一次不关闭的话,指针指向末尾,第二次读入无内容。

    f.seek(offset,from) 在文件中重新移动文件指针,从from(0代表起始位置,1代表当前位置,2代表文件末尾)偏移offset个字节

f.readline() 以写入模式打开,读取一行。如果文件存在,则在末尾追加 

  迭代读取每一行

for each_line in f:

     print(each_line)

文件写入:(写入之前确定打开时,是以写入方式打开的!)

f.write(str) 写入字符串

f.writelines(seq) 写入字符串序列,seq应该是一个返回字符串的可迭代对象。

写完后关闭f.close

(6)异常处理

try - except 语句:

   try:

         检测范围

   except Exception{ as reason }

        出现异常(Exception)后的代码处理


eg:

try:
 f = open("wenjianA.txt")
 print(f.read())
 f.close()
except OSError as ass:
    print("文件出错了\n错误的原因是:" + str(ass))

==================== RESTART: C:/Users/Liuy/Desktop/test.py ====================
文件出错了
错误的原因是:[Errno 2] No such file or directory: 'wenjianA.txt'

try - finally语句:

   try:

         检测范围

   except Exception{ as reason }:

        出现异常(Exception)后的代码处理
   finally:
        无论如何都会被执行的内容(如将前面打开的文件关闭)

类:

定义:
eg:


>>>class Rectangle:
    def __init__(self,x,y):   ####对象初始化
           self.x = x
           self.y = y
    def getPeri(self):
           return (self.x + self.y)* 2
    def getArea(self):
           return self.x * self.y

实例化:

>>>rect = Rectangle(3,4)
>>>rect.getPeri()
14
>>>rect.getArea()
12

P42 魔法方法:

标志 两个下划线 “__”

类构造器:

__init__(self)

类析构器:

__del__(self) ##删除类

P43魔法方法:算数运算1

内置(工厂函数)

>>>type(len) ##查阅内置len类的类型
<class "type">

P44魔法方法:算数运算2

原魔法方法(内置)可以修改.

反运算 --- 增量赋值运算 --- 一元操作符 --- 类型转换

P45魔法方法:简单定制

import time as t


class Mytimer():
    def __init__(self):
        self.unit = ["year","month","day","hour","minute","second"]
        self.prompt = "未开始计时!"
        self.lasted = []
        self.begin = 0 
        self.end = 0

        
    def __str__(self):  ###不用最后打印,直接返回字符串
        return self.prompt
    __repr__ = __str__

    def __add__(self,other):
        prompt = "总共运行了"
        result = []
        for index in range(6):
            result.append(self.lasted[index] + other.lasted[index]
            if result[index]:
                          prompt += (str(result[index]) + self.unit[index])
        return prompt

    
    #开始计时
    def start(self):
        self.begin = t.localtime()
        print("计时开始...")
    #停止计时
    def stop(self):
        self.end = t.localtime()
        self.__calc()
        print("计时结束")
    #内部方法,计算运行时间
    def __calc(self):
        self.lasted = []
        self.prompt = "总共运行了"
        for index in range(6):
            self.lasted.append(self.end[index] - self.begin[index])
            if self.lasted[index]:
                self.prompt += str(self.lasted[index]) + self.unit[index]
        #为下一轮计时初始化变量
        self.begin = 0
        self.end = 0 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

Leon_124

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

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

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

打赏作者

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

抵扣说明:

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

余额充值