Python学习笔记

1.数据类型

Number(数字)、String(字符串)、List(列表)、Tuple(元组)、Set(集合)、Dictionary(字典)

不可变类型:Number、String、Tuple

List: list=[  ]

Tuple: tuple=()

Set: set={" "," "}

Dictionary: dict={'name':'  ' , 'age':'  '}

其中,列表、字典、集合中的元素可以修改、删除和清空,但元组不可以。

2.print

print默认输出是换行,若要实现不换行,则有

print(x,end="");

3.注释

单行注释:以#开头

多行注释:' ' '或者" " "

4.运算符

算术运算符:

运算符说明实例
+

a+b

-a-b
*a*b
/a/b
%取模(取余)a%b
//取整除(向下取接近除数的整数)

9//2

4

比较运算符:

运算符说明实例
==等于a==b
!=不等于a!=b
>大于a>b
<小于a<b
>=大于等于a>=b
<=小于等于a<=b

 

位运算符:

&、|、^、~、<<(左移)、>>(右移)

幂运算符:**,如 5**2 ,结果位25

数学函数:

abs(x)、exp(x)(返回e的x次幂)、fabs(x)(返回数字的绝对值)、max(x1,x2)、min(x1,x2)、

pow(x,y)(表示x**y运算后的值)、sqrt(x)(返回x的平方根)

随机数函数:

random():随机生成一个实数,在[0,1)范围内

seed([x]):改变随机数生成器的种子seed,

shuffle(s):将序列的所有元素随机排序

uniform(x,y):随机生成一个实数,在[x,y]范围内

字符串内建函数:

count(str,beg=0,end=len(string)):返回str在string里面出现的次数,beg和end是指定范围

encode(encoding='UTF-8'):以encoding指定的编码格式编码字符串

find(str,beg=0,end=len(string)):检测str是否包含在字符串中,在beg和end的指定范围内

upper():转换字符串中的小写字母为大写

5.迭代器与生成器

迭代器是一个可以记住遍历的位置的对象,从集合中的第一个元素开始访问,直到所有的元素被访问结束,迭代器只能往前不会后退。有两个基本方法:liter()和next()。

python的构造函数为__init__(),它会在对象初始化的时候执行,__iter__()方法返回一个特殊的迭代器对象,这个迭代器对象实现了__next__()方法并通过StopIteration异常标识迭代的完成。__next__()方法会返回下一个迭代器对象。

在python中,使用了yelid的函数被称为生成器(generator)。生成器是一个返回迭代器的函数,只用于迭代。

6.日期和时间

print("本地时间为:",localtime)
print("格式化时间为:",time.strftime("%Y-%m-%d %H:%M:%S",time.localtime()))

#获取某月日历
import calendar
cal = calendar.month(2019,8)
print(cal)

不定长函数:

def printinfo(arg1,*vartuple):
    print("输出:")
    print(arg1)
    for var in vartuple:
        print(var,end=" ")
    return;
printinfo(10,20,30)

匿名函数:(lambda表达式)

sum = lambda arg1,arg2:arg1*arg2
print(sum(10,10))

from...import语句:

from语句允许从模块中导入一个指定的部分到当前命名空间中。特别的,还有from...import *

7.文件I/O

input函数:

str = input("请输入:")
print("你输入的内容是:",str)

打开和关闭文件:

open函数:

file object = open(file_name[,access_mode][,buffering])

其中的参数file_name表示文件名,access_mode表示打开文件的模式:只读、写入、追加。默认为只读(r)

fo = open("foo.txt","w")
print("文件名: ",fo.name)
print("访问模式: ",fo.mode)
fo.close()

file.next():返回文件的下一行

file.read():从文件中读取指定的字节数,如果未给定,则读取所有

file.readlines():读取整行,包含\n

file.write(str):将字符串写入文件,返回的是写入的字符长度

file.wirtelines():向文件写入一个序列字符串列表,如果需要换行则要自己加入每行的换行符

8.面向对象与继承

class parent:
    parentAttr = 100
    def __init__(self):
        print("这是父类构造函数")
    def parentMethod(self):
        print("调用父类方法")
    def setArrt(self,attr):
        parent.parentAttr=attr
class child(parent):
    childAttr = 200
    def __init__(self):
        print("这是子类构造函数")
    def childMethod(self):
        print("调用子类方法")
    def setArrt(self,attr):
        childAttr=attr

c=child()
c.childMethod()
c.parentMethod()
c.childMethod()
c.setArrt(300)

修饰符:

__foo__:定义的是特殊方法,一般是系统定义名字,类似__init__之类的

_foo:以单划线开头表示的是protected类型,只允许类本身及其子类访问

__foo:以两个单划线开头的是private类型,只能允许类本身进行访问

9.对象销毁(垃圾回收)

Python使用引用计数这一技术来跟踪和回收垃圾,在Python内部记录着所有使用中的对象各有多少引用,一个内部跟踪变量,称为一个引用计数器。当对象被创建时,就创建了一个引用计数,当这个对象不再需要时(即引用计数变为0时),它被垃圾回收。但是回收不是立即的,由解释器在适当的时机,将垃圾对象占用的内存空间回收。

__del__析构函数,在对象销毁的时候被调用。

10.正则表达式

(1)re.match函数:如,re.match(pattern,string,flags=0)

pattern表示要匹配的正则表达式,string是要匹配的字符串,flags是标志位,用于控制正则表达式的匹配方式。

(2)re.search()函数:如,re.search(pattern,string,flags=0)

两者的区别在于re.match只匹配字符串的开始,如果字符串开始不符合正则表达式,则匹配失败,函数返回None;而re.search匹配整个字符串,直到找到一个匹配。

利用re.sub()函数实现替换和检索,例如:

import re
print(re.match('www','www.python.org').span())  #在起始位置匹配
print(re.match('com','www.python.org'))         #不在起始位置匹配

print(re.search('www','www.python.org').span())
print(re.search('org','www.python.org').span())

phone = "400-888-888-888 #这是一个电话号码"
num = re.sub(r'#.*$',"",phone)   #去除注释
print("电话号码是:",num)

num=re.sub(r'\D',"",phone)       #去除-
print("电话号码是:",num)

(3)re.compile()函数:用于编译正则表达式,生成一个正则表达式对象,供match()和search()两个函数使用。

pattern = re.compile(r'\d+')
m = pattern.search('this is python3.0')
print(m)

(4)findall:在字符串中找到正则表达式所匹配的所有子串,并返回一个列表,如果没有找到匹配的,则返回空列表。

result1 = pattern.findall('python 123 google 456')
result2 = pattern.findall('C 123 Java 456 python 789',0,12)
print(result1)
print(result2)

(5)re.finditer()函数:和findall类似,在字符串中找到正则表达式匹配的所有字串,并把它们作为一个迭代器返回。

it = re.finditer(r"\d+","12abc456def789")
for match in it:
    print(match.group())

(6)re.split()函数:split能够按照能够匹配的子串将字符串分割后返回列表,对于一个找不到匹配的字符串而言,split不会对其进行分割。

sp1 = re.split('\W+','python,Java,C')
print(sp1)     #输出['python','Java','C']
sp2 = re.split('a*','python,C,C++')
print(sp2)     #输出['python,C,C++']

补充:

11.数据库操作

数据库查询操作:

查询MySql使用fetchone()方法获取单条数据,使用fetchall()获取多条数据,rowcount是一个只读属性,并返回执行execute()方法后影响的行数。

更新(UPDATE)和删除(DELETE)操作类似查询语句。

12.JSON

使用Json函数需要导入json库:import json

其中json.dumps():将Python对象编码成JSON字符串

json.loads():将已编码的JSON字符串解码成Python对象

encode():将Python对象编码成JSON字符串

decode():将已编码的JSON字符串解码为python对象

import demjson
json = '{"a":1,"b":2,"c":3}'
text = demjson.decode(json)
print(text)      #output:[{"a": 1, "b": 2, "c": 3}]

 

 

 

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值