Python入门学习过程(47)

今天学了个知识点:1.如何编写注释,该编写什么样的注释。2.python之禅。3.列表是什么。4.访问列表元素。5.索引从0而不是1开始。6.使用列表中的各个值。

python大大的图

图片发自简书App

我的图

图片发自简书App

1.如何编写注释,该编写怎样的注释。

在python中,注释用(#)标识,井号后面的内容都会被python解释器忽略。这里有两个问题:(1)# -*- coding: utf-8 -*-为什么会起作用。(2)真的是所有的井号都会被忽略吗,有没有特例。

(1)我们都知道# -*- coding: utf-8 -*-是声明文件编码的注释,它必须要放在第一行或者第二行,有了这一句话我们才能在里面写中文。否则python会默认使用ASCII编码,写中文时会报错。其实不仅是允许写中文,要写其他的语言也是可以的,这一句话让python容纳多种字符。这一句话是有作用的,事实上python任然会忽略这句代码,但是它却可以作为“黑客”或者解决问题的方法来指定文件的格式。

(2)哈哈,如果井号在单引号或者双引号里面当然就直接输出了呀。一般单引号或者双引号里面的句子不长,我们要写注释的话也会写在它们的后面。但是在三引号里一般是用作注释的,三引号表示换行,里面会有很多内容,会使用井号来注释,而且井号里面的注释内容会被直接输出。而且由于三引号具有换行的特性,它自己可以变成注释,只要你不把它输出。不知道大家是否还记得这个图

图片发自简书App

编写注释的主要目的是阐述代码要做什么,以及是如何做的。清晰简洁的注释便于自己检查代码,也便于别人读懂你的代码。

2.python之禅

只需在解释器中执行命令import this,python就会把编码的一系列原则告诉我们。

Beautiful is better than ugly.优美胜于丑陋(Python 以编写优美的代码为目标)

Explicit is better than implicit.明了胜于晦涩(优美的代码应当是明了的,命名规范,风格相似)

Simple is better than complex.简洁胜于复杂(优美的代码应当是简洁的,不要有复杂的内部实现

Complex is better than complicated.复杂胜于凌乱(如果复杂不可避免,那代码间也不能有难懂的关系,要保持接口简洁)

Flat is better than nested.扁平胜于嵌套(优美的代码应当是扁平的,不能有太多的嵌套)

Sparse is better than dense.间隔胜于紧凑(优美的代码有适当的间隔,不要奢望一行代码解决问题)

Readability counts.可读性很重要(优美的代码是可读的)

Special cases aren't special enough to break the rules.Although practicality beats purity.即便假借特例的实用性之名,也不可违背这些规则(这些规则至高无上)

Errors should never pass silently.Unless explicitly silenced.不要包容所有错误,除非你确定需要这样做(精准地捕获异常,不写 except:pass 风格的代码)

In the face of ambiguity, refuse the temptation to guess.当存在多种可能,不要尝试去猜测

There should be one-- and preferably only one --obvious way to do it.而是尽量找一种,最好是唯一一种明显的解决方案(如果不确定,就用穷举法)

Although that way may not be obvious at first unless you're Dutch.虽然这并不容易,因为你不是 Python 之父(这里的 Dutch 是指 Guido )

Now is better than never.Although never is often better than *right* now.做也许好过不做,但不假思索就动手还不如不做(动手之前要细思量)。你可以将余生都用来学习python和编程的纷繁难懂之处,但这样你什么项目都完不成。不要企图编写完美无缺的代码;先编写行之有效的代码,再决定是对其做进一步改进还是转而去编写新代码。

If the implementation is hard to explain, it's a bad idea.If the implementation is easy to explain, it may be a good idea.如果你无法向人描述你的方案,那肯定不是一个好方案;反之亦然(方案测评标准)

Namespaces are one honking great idea -- let's do more of those!命名空间是一种绝妙的理念,我们应当多加利用(倡导与号召)

3.列表是什么

列表由一系列按特定顺序排列的元素组成。列表中可以加入任何元素,其中的元素之间也可以没有任何关系。鉴于列表通常包含多个元素,给列表指定一个表示复数的名称(如letters、digits或names)是个不错的主意。在python中,用方括号([ ])来表示列表,并用逗号来分隔其中的元素。

当然我们也可以不直接把一个完整的列表写出来。我们可以定义一个空列表,再一点一点的往里面加元素(用列表名.append()),最后打印列表时的结果是一样的

图片发自简书App
图片发自简书App

4.访问列表元素

列表是有序集合,因此要访问列表的任何元素,只需将该元素的位置或索引告诉python即可。要访问列表元素,可指出列表的名称,再指出元素的索引,并将其放在方括号内。从列表bicycles中提取第一款自行车print(bicycles[0]),当请求获取列表元素时,python只返回该元素,而不包括方括号和引号,非常简洁。当然我们也可以对输出的内容规范其格式。还记得我们在第二章学了三种修改字符串大小写的方法,分别是:print(bicycles[0].title()),print(bicycles[0].upper())和print(bicycles[0].lower())。

图片发自简书App
图片发自简书App

我们需要注意的是这些修改大小写的方法只能针对列表中的元素,不能针对整个列表。因为列表并没有这些属性

图片发自简书App
图片发自简书App

5.索引从0而不是1开始

在python中,第一个列表元素的索引为0,而不是1。第二个列表元素的索引为1。根据这种简单的计数方式,要访问列表的任何元素,都可将其位置减1,并将结果作为索引。python为访问最后一个列表元素提供了一种特殊语法。通过讲索引指定为-1,可让python返回最后一个列表元素。这种语法很有用,因为你经常需要在不知道列表长度的情况下访问最后的元素。这种约定也适用于其他负数索引,例如,索引-2返回倒数第二个列表元素,索引-3返回第三个列表元素,以此类推。如果我现在想返回列表的倒数第二个元素,我可以有如下两种写索引的方式

图片发自简书App
图片发自简书App

最终它们的结果都是

图片发自简书App

如果我现在想返回最后两个列表元素,我可以有两种写索引的方式

图片发自简书App
图片发自简书App

最终它们的结果都是

图片发自简书App

6.使用列表中的各个值

对于理解for循环里的内容,我们需要有一点补充知识。函数len()用于返回字符串、列表、字典、元组等长度。函数range()返回一个列表,列表里写的是各个元素的索引。

图片发自简书App
图片发自简书App

这个for循环说的是,我们循环列表中每个元素的索引(range(len(bicycles))),打印出这个元素(bicycles[i])和双引号内的=>以及这个元素对应的索引(i)

for循环的第二种写法我尝试了用列表去写,我想的是原来我们的i代表的是数字,现在我们的i代表列表里的元素。我们最后打印的结果只要保证=>的左边是元素,右边是数字就好了。但是这么写右边的数字如果不写循环是没有办法单个输出的。

图片发自简书App

于是我参考了Candice Hu同学的建议,写了一个字典,用for循环对字典里的value和key进行输出

图片发自简书App
图片发自简书App

可像使用其他变量一样使用列表中的各个值。例如,你可以使用拼接根据列表中的值来创建消息。

图片发自简书App

最后两行代码尝试从列表中提取第一款自行车,并使用这个值来创建一条消息。我们使用bicycles[0]的值生成了一个句子,并将其存储在变量message中,输出是一个简单的句子,其中包含列表中的第一款自行车

图片发自简书App

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

推荐阅读更多精彩内容

  • http://python.jobbole.com/85231/ 关于专业技能写完项目接着写写一名3年工作经验的J...
    燕京博士阅读 7,486评论 1 118
  • 文/Bruce.Liu1 1.Python前世今生 1.1.Python历史 Python的创始人: Guido ...
    BruceLiu1阅读 11,652评论 3 120
  • 一 Python彩蛋import this Python有个彩蛋,比如在交互模式下输入import this,便会...
    o舞夜醉猫_阅读 501评论 1 0
  • 白莲花/翟德生 洁白的白莲花 静静地盛开在水中央 微风飘来 淡淡的荷香 没有蜻蜓来点水 只有红鱼戏荷塘 何妨 闲云...
    翟德生阅读 420评论 6 30
  • 《温暖在心上》 ——农村攻坚脱贫之歌 作词:卢木鸟 作曲:姜 山 演唱:涓 子 编曲:姜 山 混编:阿 影 曲风...
    華狐发布阅读 395评论 0 0