python学习记录3

一、数值类型

1.数据类型

(1)文本类型:str
(2)数字类型:int、float、complex
·整型(Int) - 通常被称为是整型或整数,是正或负整数,不带小数点。

·长整型(long integers) - 无限大小的整数,整数最后是一个大写或小写的L。

·浮点型(floating point real values) - 浮点型由整数部分与小数部分组成,浮点型也可以使用科学计数法表示(2.5e2 = 2.5 x 102 = 250)

·复数(complex numbers) - 复数由实数部分和虚数部分构成,可以用a + bj,或者complex(a,b)表示, 复数的实部a和虚部b都是浮点型。
complex(real [,imag ]) 创建一个复数
(3)映射类型:dict
(4)序列类型:list、tuple
(5)布尔类型:bool
(6)套装类型:set(集合)、frozenset(冻结集)
(7)二进制类型:bytes、bytearray(字节数组类型)

2.类型转换

对学习记录2中list()、tuple()、str()的扩展

函数描述
list(s )将序列 s 转换为一个列表
tuple(s )将序列 s 转换为一个元组
str(x )将对象 x 转换为字符串
int(x [,base ])将x转换为一个整数
long(x [,base ])将x转换为一个长整数
chr(x )将一个整数转换为一个字符
float(x )将x转换到一个浮点数
repr(x )将对象 x 转换为表达式字符串
eval(str )用来计算在字符串中的有效Python表达式,并返回一个对象
ord(x )将一个字符转换为它的整数值
oct(x )将一个整数转换为一个八进制字符串
hex(x )将一个整数转换为一个十六进制字符串
unichr(x )将一个整数转换为Unicode字符

二、Python模块

1.模块

Python 模块(Module),是一个 Python 文件,以 .py 结尾,包含了 Python 对象定义和Python语句。
把相关的代码分配到一个模块里能让代码更好用,更易懂。
模块能定义函数,类和变量,模块里也能包含可执行的代码。

def print_func( par ):
   print "Hello : ", par
   return

2.import语句

用于引入模块
import module
import 后只能跟包名或函数名
在调用模块中的函数时,需用 模块名.函数名

3.from……import语句

from 语句让你从包/模块中导入一个指定的部分到当前命名空间中

from fib import fibonacci

若把一个模块的所有内容全都导入到当前的命名空间,则用
from……import*

4.命名空间和作用域

命名空间是一个包含了变量名称们(键)和它们各自相应的对象们(值)的字典。一个 Python 表达式可以访问局部命名空间和全局命名空间里的变量。如果一个局部变量和一个全局变量重名,则局部变量会覆盖全局变量。

每个函数都有自己的命名空间。类的方法的作用域规则和通常函数的一样。
如果要给函数内的全局变量赋值,必须使用 global 语句

x = 300
def addx():
    global x
    x += 200

print(x)
addx()
print(x)
输出:300
      500

5.常用内置模块

模块名描述
sys与python解释器及其环境操作相关的标准库
os提供了访问操作系统服务功能的标准库
random可用于生成伪随机数
pickle用于python特有类型与python数据类型之间的转换
json用于使用JSON序列化和反序列化对象
urllib用于读取来自网上(服务器)的数据标准库
re用于在字符串中执行正则表达式匹配和替换
math提供标准运算函数
decimal用于进行精准控制运算精度、有效位数和四舍五入操作的十进制运算
logging提供灵活的记录事件、错误、警告和调试信息等日志信息的功能

random模块:
random() - 用于生成0~1的随机浮点数
randint(start,end):用于生成指定范围内的整数,start为起始数字范围,end为结束数字范围
random.uniform(a,b):用于生成一个指定范围内的随机符点数,两个参数其中一个是上限,一个是下限。如果a > b,则生成的随机数n: b <= n <= a。如果 a <b, 则 a <= n <= b。
randrange([start],stop,[step]):按指定步长生成随机数,与range类似,若start未指定,默认人0开始,step可为正,也可以为负

choice(seq):从非空序列seq中随机选择一个元素,seq需要可为字符串、列表和元组
choices(population, weights=None, *, cum_weights=None, k=1):从population中进行k次随机选择,每次选取一个元素(可能会出现同一个元素被多次选中的情况)
weights:相对权重值,population中有几个元素就要有相对应的权重值,
cum_weights:累计权重值,如相对权重值为[1,2,3,5],则累计权重值为[1,3,6,11]

sample(population, k):从population选择k个元素并组成新的序列,常用于不重复的随机抽样
shuffle(x, random=None):常用于打乱列表中的元素,仅适用于可变序列。

三、日期与时间

1.time模块

获取当前时间

import time
 
localtime = time.localtime(time.time())
print("本地时间为 :", localtime)
输出本地时间为 : time.struct_time(tm_year=2016, tm_mon=4, tm_mday=7, tm_hour=10, tm_min=3, tm_sec=27, tm_wday=3, tm_yday=98, tm_isdst=0)
# tm_isdst -1, 0, 1, 是决定是否为夏令时的旗帜

获取格式化的时间

import time
 
localtime = time.asctime( time.localtime(time.time()) )
print "本地时间为 :", localtime
输出:本地时间为 : Thu Apr  7 10:05:21 2016

格式化日期 strftime()

import time
 
# 格式化成2016-03-20 11:45:39形式
print time.strftime("%Y-%m-%d %H:%M:%S", time.localtime()) 
 
# 格式化成Sat Mar 28 22:24:24 2016形式
print time.strftime("%a %b %d %H:%M:%S %Y", time.localtime()) 
  
# 将格式字符串转换为时间戳(时间间隔是以秒为单位的浮点小数。每个时间戳都以自从1970年1月1日午夜(历元)经过了多长时间来表示。)
a = "Sat Mar 28 22:24:24 2016"
print time.mktime(time.strptime(a,"%a %b %d %H:%M:%S %Y"))
输出:2016-04-07 10:25:09
      Thu Apr 07 10:25:09 2016
      1459175064.0

2.calendar模块

获取某月日历

import calendar
 
cal = calendar.month(2016, 1)
print "以下输出2016年1月份的日历:"
print cal
输出:
以下输出20161月份的日历:
    January 2016
Mo Tu We Th Fr Sa Su
             1  2  3
 4  5  6  7  8  9 10
11 12 13 14 15 16 17
18 19 20 21 22 23 24
25 26 27 28 29 30 31

3.datetime模块

获取当前日期

import datetime

x = datetime.datetime.now()
print(x)
输出2021-08-28 15:48:33.438422

获取年份、星期

import datetime

x = datetime.datetime.now()

print(x.year)
print(x.strftime("%A"))
输出2021
    Saturday

创建日期

import datetime

x = datetime.datetime(2021, 6, 8)

print(x)
输出2021-06-08 00:00:00  #时间默认为0

格式化

import datetime
x = datetime.datetime(2021, 6, 8)
print(x.strftime("%b"))
输出 Jun

4.python中时间日期格式化符号

符号意义
%Y四位数的年份表示(000-9999)
%y两位数的年份表示(00-99)
%m月份(01-12)
%d月内中的一天(0-31)
%H24小时制小时数(0-23)
%I12小时制小时数(01-12)
%M分钟数(00-59)
%S秒(00-59)
%a本地简化星期名称
%A本地完整星期名称
%b本地简化的月份名称
%B本地完整的月份名称
%c本地相应的日期表示和时间表示
%C世纪
%j年内的一天(001-366)
%p本地A.M.或P.M.的等价符
%U一年中的星期数(00-53)星期天为星期的开始
%w星期(0-6),星期天为星期的开始
%W一年中的星期数(00-53)星期一为星期的开始
%x本地相应的日期表示
%X本地相应的时间表示
%Z当前时区的名称
%%%号本身

四、类与对象

1.类

程序进行数据封装的方式。用来描述具有相同的属性和方法的对象的集合
变量——属性
函数——方法

class person :
    def __init__(self,name):   #隶属于某class的函数第一函数为self,代表类的实例
        self.name = name       #__init__为初始化函数,第一个必调用
        #表明name属于class
    def print_name(self):   
        print(self.name)       #额外的第一参数名称,一般为self

2.对象

以某个类为模板定义的数据结构实例,对象中属性、方法可被访问

class person :
    def __init__(self,name):  
        self.name = name     
              
    def print_name(self):   
        print(self.name)
              
Person1 = person("James")
Person1.print_name()

类内部——self.调用属性、方法
类外部——对象名.调用

3.内置类属性 与 特殊方法

类的私有属性
__private_attrs:两个下划线开头,声明该属性为私有,不能在类的外部被使用或直接访问。在类内部的方法中使用时 self.__private_attrs。

__dict__:类的属性(包含一个字典,由类的数据属性组成)
__doc__:类的文档字符串
__name__:类名
__module__:类定义所在的模块(类的全名是’__module__.className’,如果类位于一个导入模块mymod中,那么className.__module__等于 mymod)
__bases__:类的所有父类构成元素(包含了一个由所有父类组成的元组)
__base__:类的第一个父类
a.__class__:输出对象a所属的类
__subclasses__:输出其子类的列表
__mro__:类的层次结构

类的私有方法
__private_method:两个下划线开头,声明该方法为私有方法,不能在类的外部调用。在类的内部调用 self.__private_methods

特殊方法:
__len__:通过重写,让len()的参数可以是自定义类型
__add__:通过重写,可使用自定义对象具有“+”的功能
__new__:创建对象
__init__:对创建的对象进行初始化

dir() 可查看属性与方法

4.面向对象的三大特征

·封装:提高程序的安全性
·继承:提高代码的复用性
·多态:提高程序的可扩展性和可维护性

5.类的继承

让一个类可具有另一个类的一些属性和方法。
通过继承创建的新类称为子类或派生类,被继承的类称为基类、父类或超类。
如果在继承元组()中列了一个以上的类,那么它就被称作"多重继承" 。

class car:    #父类
    def __init__(self,a):
        self.a = a
        
class rac(car):    #子类
    def __init__(self,b):
        self.b = b
        
    def print_b(self):
        print(self.b)
        
asd = rac(12)
asd.print_b()
输出12

6.方法重写

子类继承父类时可对父类方法修改
同一父类可能有多个子类有同名方法,功能不同
实现多态

class car:
    def __init__(self,brand):
        self.brand = brand
    def print_x(self):
        print(self.brand)
        
class audi(car):
    def __init__(self,types):
       self.brand = "Mac"
       self.types = types
     def print_x(self):
        print(self.brand + self.types)
        
a = audi("macbook")
a.print_x()
输出Macmacbook

7.object类

object类是所有类的父类,所有类都有object类的属性和方法

object有一个__str__()方法,返回一个对于对象的描述,对应于内置函数str()常用于print(),查看对象的信息,所以常会对__str__()重写

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值