python学习笔记一(语法)
来源:互联网 发布:在div中加js函数 编辑:程序博客网 时间:2024/05/05 14:59
持续更新中
1、list,tuple,dict,set
- list为可变数组,内容可变,定义方式如下:[‘a’, ‘b’, 3, [4, 5] ]。
- tuple为不可变数组,内容不可变,定义方式如下:(‘a’, ‘b’, 3, [4, 5])。
- 只有一个数字的tuple是,需要使用a=(1 ,)方式定义,否则会识别为int型。
- dict为字典,可以主动修改key,定义方式如下:[‘a’:1, ‘b’:2, ‘c’:[4, 5]]
- set为不可存在重复选项的list
2、函数接收可变参数可使用如下方法
def calc(*numbers): sum = 0 for i in numbers: sum += i*i return sumprint(calc(1,2,3,4))
3、函数接收关键字参数可使用如下方法
def info(name, age, **other): print('name: ', name, 'age: ', age, 'other :', other)extra = {'city': 'beijing', 'company': 'baidu'}info('cheng', 25, city:'beijing', 'company':'baidu')info('cheng', 25, **extra)
4、函数接收命名关键字参数可使用如下方法
def info2(name, age, *, city='fuzhou', company): print(name, age, city, company)info2('chengwei', 25, company='baidu')
其中*不需要传入,为标记,说明后面的参数为命名关键字参数,如果没有指定默认值,则该参数为必填参数。
如果已经存在可变参数,则这个*可以省略,如下
def info2(name, age, *args, city='fuzhou', company): print(name, age, city, company)info2('chengwei', 25, aaa, bbb, company='baidu')
5、参数组合
在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数,如下
def info3(name, age, sex='male', *numbers, city='beijing', company, **other): print(name, age, sex, numbers, city, company, other)info3('cheng', 25, 'male', 1, 2, city='fuzhou', company='baidu', school='university')
6、对于任意的函数,都可以使用tuple与dict的组合来传入参数,如下
def info3(name, age, sex='male', *numbers, city='beijing', company, **other): print(name, age, sex, numbers, city, company, other)args = ('xing', 22, 'cheng', 1, 2)kw = {'city': 'fuzhou', 'company': 'wangyi', 'school': 'highschool'}info3(*args, **kw)//输出 xing 22 cheng (1, 2) fuzhou wangyi {'school': 'highschool'}
7、python的切片功能,能够是用在list, tuple,str中,如下
>>> l = range(100)>>> l[1:10][1, 2, 3, 4, 5, 6, 7, 8, 9]>>> l[:10][0, 1, 2, 3, 4, 5, 6, 7, 8, 9]>>> l[-10:][90, 91, 92, 93, 94, 95, 96, 97, 98, 99]>>> l[:10:2][0, 2, 4, 6, 8]>>> l[::5][0, 5, 10, 15, 20, 25, 30, 35, 40, 45, 50, 55, 60, 65, 70, 75, 80, 85, 90, 95]>>> t = (1,2,3,4,5,6)>>> t[:3](1, 2, 3)>>> s = "hello world">>> s[:5]'hello'#python中最简单的将字符串逆序输出的方法>>> s'12345'>>> s[::-1]'54321'
8、装饰器的使用
#!/usr/bin/env python3# -*- coding: utf-8 -*-import functoolsdef log(func): def wrapper(*args, **kw): print('call %s()' % func.__name__) return func(*args, **kw) return wrapper@logdef now(): print('2015-01-01')now()#此时now的__name__属性已经变成了wrapperprint(now.__name__)def log2(text): def decorator(func): def wrapper(*args, **kw): print('call %s(), %s' % (func.__name__, text)) return func(*args, **kw) return wrapper return decorator@log2('hello world!')def now2(): print('2015-01-02')now2()print(now2.__name__)def log3(text): def decorator(func): #使用functools.wraps方法来修改wrapper的__name__属性 @functools.wraps(func) def wrapper(*args, **kw): print('call %s(), %s' % (func.__name__, text)) return func(*args, **kw) return wrapper return decorator@log3('hello world!')def now3(): print('2015-01-03')now3()print(now3.__name__)def log4(text): def decorator(func): #使用functools.wraps方法来修改wrapper的__name__属性 @functools.wraps(func) def wrapper(*args, **kw): print('before call %s(), %s' % (func.__name__, text)) res = func(*args, **kw) print('after call') return res return wrapper return decorator@log4('hello world!')def now4(): print('2015-01-03')now4()# call now()# 2015-01-01# wrapper# call now2(), hello world!# 2015-01-02# wrapper# call now3(), hello world!# 2015-01-03# now3# before call now4(), hello world!# 2015-01-03# after cal
9、高阶函数map,reduce,sorted
sorted的用法
#正常用法>>> sorted([36, 5, -12, 9, -21])[-21, -12, 5, 9, 36]#此外,sorted()函数也是一个高阶函数,它还可以接收一个key函数来实现自定义的排序,例如按绝对值大小排序:>>> sorted([36, 5, -12, 9, -21], key=abs)[5, 9, -12, -21, 36]>>> L = [('Bob', 75), ('Adam', 92), ('Bart', 66), ('Lisa', 88)]>>> def sort_by_name(l):... return l[0]... >>> sorted(L, key=sort_by_name)[('Adam', 92), ('Bart', 66), ('Bob', 75), ('Lisa', 88)]>>> def sort_by_score(l):... return l[1]... >>> sorted(L, key=sort_by_score)[('Bart', 66), ('Bob', 75), ('Lisa', 88), ('Adam', 92)]>>>
0 0
- Python 学习笔记之语法(一)
- python学习笔记一(语法)
- Python学习笔记(一)-- 基础语法
- Python学习笔记(一):基本语法
- python学习笔记(一)基本语法
- [Python]python学习笔记(一)——语法
- Python学习笔记一(Python基础语法)
- python学习笔记(一)基础语法 — 参考创客智造
- Python学习笔记【基础语法篇(一)】
- Python学习笔记(一)基础语法
- Python学习笔记(一) 之 基础语法
- 学习python:语法(一)
- Python笔记(一)--基础语法
- python学习笔记-语法
- python 学习笔记(一)通过做题来熟悉python 的基本语法
- Python 学习(一)基础语法
- Python学习(一)基本语法
- Python学习笔记一 基本语法、变量类型、时间处理
- 二级基础编程练习
- SpringData笔记
- 模拟:simulation,与 仿真:simulation
- Shell部分5
- apue.h配置
- python学习笔记一(语法)
- 详解eNSP下的单臂路由模拟实验配置
- BIOS/UEFI基础——UEFI网络框架之TCP4
- 【9915】乘积最大
- C/C++变量在内存中的分布
- 腾讯勇夺全球游戏霸主地位,“英雄联盟”成基石
- JAVA反射机制
- JS正则表达式检测字符串中特殊符号方法
- C++动态库的编写与类的导出