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)的形式调用它,无论它的参数是如何定义的

©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 216,591评论 6 501
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,448评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 162,823评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,204评论 1 292
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,228评论 6 388
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,190评论 1 299
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,078评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,923评论 0 274
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,334评论 1 310
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,550评论 2 333
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,727评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,428评论 5 343
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,022评论 3 326
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,672评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,826评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,734评论 2 368
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,619评论 2 354

推荐阅读更多精彩内容

  • 开始python基础之前,跟大家分享一个经验(英语大神可以忽略),我也是一个英语渣渣,当初刚刚接触python的时...
    菠萝仔GIS阅读 3,994评论 0 1
  • Python就为我们提供了非常完善的基础代码库,覆盖了网络、文件、GUI、数据库、文本等大量内容,被形象地称作“内...
    smart_yang阅读 263评论 0 1
  • 〇、前言 本文共108张图,流量党请慎重! 历时1个半月,我把自己学习Python基础知识的框架详细梳理了一遍。 ...
    Raxxie阅读 18,952评论 17 410
  • 一、python 变量和数据类型 1.整数 Python可以处理任意大小的整数,当然包括负整数,在Python程序...
    绩重KF阅读 1,695评论 0 1
  • 大家好,我叫周成义,我的坐标是河南三门峡,我的三个标签是传统文化传播践行者,时间管理践行者,积极乐观生活家。今天我...
    周成义阅读 370评论 0 0