前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >python 笔记

python 笔记

作者头像
饶文津
发布2020-06-02 14:14:38
2780
发布2020-06-02 14:14:38
举报
文章被收录于专栏:饶文津的专栏饶文津的专栏

IDE:pyCharm

教育版 是free的。 快捷键: Ctrl + Shift + F10 运行 Ctrl + / 行注释/取消行注释

运算符

** 是幂 // 是整除 ps. 真是True,注意大小写

可变参数

*args是可变参数,args接收的是一个tuple;

**kw是关键字参数,kw接收的是一个dict。

命名关键字参数就是限制了参数名字。

可变参数既可以直接传入:func(1, 2, 3),又可以先组装list或tuple,再通过*args传入:func(*(1, 2, 3))

关键字参数既可以直接传入:func(a=1, b=2),又可以先组装dict,再通过**kw传入:func(**{'a': 1, 'b': 2})

使用命名关键字参数时,要特别注意,如果没有可变参数,就必须加一个*作为特殊分隔符:fun(name,*,city)

def hello(greeting, *args):
    if (len(args)==0):
        print('%s~' % greeting)
    else:
        print('%s,%s~~~'%(greeting,','.join(args)))

hello('Hi')
hello('Hi', 'flipped')
hello('hi','a','b','abc')

names=('aa','bb')
hello('hello', *names)

切片

L[起点 : 终点 : 每几个输出一个]

>>>'ABCDEFG'[::2]
ACEG

-1代表倒数第一个元素,或者往右数1。

列表生成式

>>>[m + n for m in 'ABC' for n in 'XYZ']
['AX', 'AY', 'AZ', 'BX', 'BY', 'BZ', 'CX', 'CY', 'CZ']

生成器

>>>g = (x * x for x in range(5))
>>>for n in g:
...        print(n)
...
0
1
4
9
16

杨辉三角:

# -*- coding: utf-8 -*-

def triangles():
    g = [1]
    while True:
        yield g
        g.append(0)
        print('len=%d',len(g))
        g = [g[i] + g[i-1] for i in range(len(g))]

n = 0
for t in triangles():
    print(t)
    n = n + 1
    if n == 10:
        break
[1]
[1, 1]
[1, 2, 1]
[1, 3, 3, 1]
[1, 4, 6, 4, 1]
[1, 5, 10, 10, 5, 1]
[1, 6, 15, 20, 15, 6, 1]
[1, 7, 21, 35, 35, 21, 7, 1]
[1, 8, 28, 56, 70, 56, 28, 8, 1]
[1, 9, 36, 84, 126, 126, 84, 36, 9, 1]

map/reduce/filter

map(f,xx)就是把Iterable(可枚举的)的对象xx(一般是列表)传给f,结果返回一个Iterator(惰性序列)。 reduce(f,xx)就是把Iterable的对象xx依次调用两个参数的函数f:f(f(f(x1,x2),x3),x4)。 filter(f,xx)是根据f(x)为真则保留该元素,否则抛弃,来筛选序列的值。

# -*- coding: utf-8 -*-

#输出1到1000的回文数
def is_palindrome(n):
    return str(n)==str(n)[::-1]
    # 转换为字符串,再利用切片得到倒转的字符串

output = filter(is_palindrome, range(1, 1000))
print(list(output))

排序实例

sorted(['bob', 'about', 'Zoo', 'Credit'], key=str.lower, reverse=True)
['Zoo', 'Credit', 'bob', 'about']

继承: class 派生类名(基类名): 构造析构:

def __init__(self, name, salary):
   ...
def __del__(self):
  ...

属性:

hasattr(emp1, 'age')    # 如果存在 'age' 属性返回 True。
getattr(emp1, 'age')    # 返回 'age' 属性的值
setattr(emp1, 'age', 8) # 添加属性 'age' 值为 8
delattr(empl, 'age')    # 删除属性 'age'

两个下划线开头,声明该属性为私有, 实例不能直接访问,可以用object._className__attrName 访问属性 两个下划线开头,声明该方法为私有方法

匿名函数

关键字lambda表示匿名函数,冒号前面的x表示函数参数。

装饰器

@log
def now():
    ...

把@log放到now()函数的定义处,相当于执行了语句: now = log(now)

偏函数

functools.partial返回一个指定了某些参数默认值的新函数。

模块/包

abc.py作为一个模块。里面的函数fun就是abc.fun。 pakage作为一个包,可以有很多模块,那么abc.py里的fun就是pakage.abc.fun。 包可以有多级目录。 包需要有__init__.py,它本身也是一个模块,名字就是该包的名字。

任何模块代码的第一个字符串都被视为模块的文档注释 __author__记录作者

使用模块

在hello.py中导入sys模块:import sys。sys模块有一个argv变量,用list存储了所有参数。 argv至少有一个元素,因为第一个参数永远是该.py文件的名称'hello.py'。

作用域

类似_xxx和__xxx这样的函数或变量就是非公开的(private)

pip

pip是用来安装python第三方模块(包)的。

正则表达式

包:re 尝试从字符串的起始位置匹配一个模式,如果不是起始位置匹配成功的话,match()就返回none。

re.match(pattern, string, flags=0)

参数

描述

pattern

匹配的正则表达式

string

要匹配的字符串。

flags

标志位,用于控制正则表达式的匹配方式,如:是否区分大小写,多行匹配等等。

search()搜索字符串,找第一个匹配

re.search(pattern, string, flags=0) 以及sub()替换

本文参与 腾讯云自媒体分享计划,分享自作者个人站点/博客。
原始发表:2017-04-07 ,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 作者个人站点/博客 前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • IDE:pyCharm
  • 运算符
  • 可变参数
  • 切片
  • 列表生成式
  • 生成器
  • map/reduce/filter
  • 排序实例
  • 匿名函数
  • 装饰器
  • 偏函数
  • 模块/包
  • 正则表达式
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档