Python基础(一)

人生苦短,我用Python。
Pyhon是一种高级语言,为我们提供给了非常完善的基础代码库,覆盖了网络、文件,数据库等大量内容,许多功能不必从零开始编写,直接使用现成的即可。

Python的应用场景:
网络应用,如网站、后台服务
日常需要的小工具,都可以使用Python去开发

Python编程推荐使用Sublime Text编辑器

Python几种常见的数据结构:
list:listPython内置的一种列表。list是一种有序的集合,可以随时添加和删除其中的元素。
示例:citys = ['BeiJing', 'ShangHai', 'GuangZhou']
变量citys就是一个list,用len()函数来计算一个list的长度,用索引来访问list中每一个位置的元素,索引是从0开始的。
如citys[0]代表的就是'BeiJing'
List常见的方法:

  1. len()计算list的长度
  2. append()追加元素到list末尾
  3. insert()插入元素到list指定位置
  4. pop()删除末尾或指定位置元素

tuple:元组是另一种有序列表,与list非常相似,区别是元组初始化后就不能修改。
示例:citys = ('BeiJing', 'ShangHai', 'GuangZhou')

dict:dictPython内置的字典,使用键-值(key-value)存储,具有极快的查找速度。
ageDic = {"张三":16,"李四":20,"王五":21}
要查找李四的年龄是非常快的:ageDic["李四"]
要避免key不存在的错误:
"李四" is in ageDic
ageDic.get("李四", 0)

dict内部存放的顺序和key放入的顺序是没有关系的。

set:set是一组key的集合,key不能重复,所以在set中,没有重复的key。
常用方法:add(),remove()
nameSet = set(['张三','李四','王五'])
nameSet.add('张三')
nameSet.add('赵六')
nameSet的值是'张三','李四','王五','赵六'

函数相关
可变参数

def calc(*numbers):
    sum = 0
    for n in numbers:
        sum = sum + n * n
    return sum

顾名思义,可以传多个参数,如calc(1), calc(1, 2,3, 4)
如果已经有一个初始化好的list或tuple,可以这样传calc(list[0], list[1], list[2]),更快捷的一个方法是calc(*list)

关键字参数

def person(name, age, **kw):
    print('name:', name, 'age:', age, 'other:', kw)

可变参数允许你传入0个或任意个参数,这些可变参数在函数调用时自动组装为一个tuple。而关键字参数允许你传入0个或任意个含参数名的参数,这些关键字参数在函数内部自动组装为一个dict

#例子
person('Michael', 30)
name: Michael age: 30 other: {}

person('Bob', 35, city='Beijing')
name: Bob age: 35 other: {'city': 'Beijing'}
person('Adam', 45, gender='M', job='Engineer')
name: Adam age: 45 other: {'gender': 'M', 'job': 'Engineer'}

extra = {'city': 'Beijing', 'job': 'Engineer'}
person('Jack', 24, **extra)
name: Jack age: 24 other: {'city': 'Beijing', 'job': 'Engineer'}

命名关键字参数
如果要限制关键字参数的名字,就可以用命名关键字参数,例如,只接收city和job作为关键字参数

def person(name, age, *, city, job):
    print(name, age, city, job)
#例子
person('Jack', 24, city='Beijing', job='Engineer')
Jack 24 Beijing Engineer

参数组合
在Python中定义函数,可以用必选参数、默认参数、可变参数、关键字参数和命名关键字参数,这5种参数都可以组合使用。但是请注意,参数定义的顺序必须是:必选参数、默认参数、可变参数、命名关键字参数和关键字参数

def f1(a, b, c=0, *args, **kw):
    print('a =', a, 'b =', b, 'c =', c, 'args =', args, 'kw =', kw)

def f2(a, b, c=0, *, d, **kw):
    print('a =', a, 'b =', b, 'c =', c, 'd =', d, 'kw =', kw)
#示例
f1(1, 2)
a = 1 b = 2 c = 0 args = () kw = {}
 f1(1, 2, c=3)
a = 1 b = 2 c = 3 args = () kw = {}
 f1(1, 2, 3, 'a', 'b')
a = 1 b = 2 c = 3 args = ('a', 'b') kw = {}
 f1(1, 2, 3, 'a', 'b', x=99)
a = 1 b = 2 c = 3 args = ('a', 'b') kw = {'x': 99}
 f2(1, 2, d=99, ext=None)
a = 1 b = 2 c = 0 d = 99 kw = {'ext': None}

args = (1, 2, 3, 4)
kw = {'d': 99, 'x': '#'}
f1(*args, **kw)
a = 1 b = 2 c = 3 args = (4,) kw = {'d': 99, 'x': '#'}
args = (1, 2, 3)
kw = {'d': 88, 'x': '#'}
f2(*args, **kw)
a = 1 b = 2 c = 3 d = 88 kw = {'x': '#'}

对于任意函数,都可以通过类似func(*args, **kw)的形式调用它,无论它的参数是如何定义的

你可能感兴趣的:(Python基础(一))