Py学习  »  Python

此篇Python入门笔记已帮助我司上万名本科实习生入门!学不会找我

Python学习交流 • 6 年前 • 540 次点击  

由于公司成立了非常之久,所以每年都会有实习生到公司来实习,但是能坚持下来的确实不多。不说这个话题,就讲Python入门吧,很多小伙伴都是门外汉,那么该怎么入门,怎样入门能快点?今天就给大家一篇教程,从零出发才是最好的,加油,祝大家早日找到自己心仪的工作!

4. 反馈

现在,你可以执行一些简单,或者再复杂一点的计算了。比方说,你或许打算写一段程序来计算圆形的面积而不是矩形的:

foo现在包含input函数本身(所以它事实上可以象foo(“What is your age?”)这样使用;这被称为动态函数调用),而bar包含用户键入的值。

这里的elif是意思为“else if”的神秘代码:)。所以,如foo等于1,做某件事;否则,如果foo等于2,那么做另外的一些事,等等。你也可以在程序中加入其它的选项——象三角形以及任意多边形。随你的便。

这个例子中的新东西……

1. 有些有用的函数被存储在模块中而且可以被导入。此例中我们从python自带的time模块中导入了函数sleep(它休止给定的多少秒的时间)。(做你自己的模块当然也是可能的……)

练习2:

7. 深入函数

上面的练习怎么做?难吗?还不太清楚函数?别担心——我还没完成我的话题呢。

我们构建函数时使用的萃取方法称为过程抽象,许多编程语言把关键字过程同函数一样使用。事实上,这两个概念是不一样的,但是在python中它们都被称为函数(因为它们或多或少以同样的方式定义和使用)。

函数和过程(在其它语言中)的区别在哪里呢?嗯——就像你在前面的段落里看到的那样,函数可以返回一个值。区别就是过程并不返回这样的值。许多时候,用这种方法把函数划分为两种类型——返回值的和不返回值的——是很有用的。

打印出内容是它一方面的作用,因为这是这个函数唯一需要做的事,它其实是一个典型的所谓过程。但是……它事实上没有改变它的运行环境,是不是?它怎样才能改变呢?让我们试一下:

了解对象(随后谈到)后,你会发现更好的解决这个问题的办法是使用一个有age属 性和setAge方法的对象。在数据结构那段,你也将会发现一些函数改变它的环境的更好的

例子。

好了——那么真正的函数是什么样?什么是函数呢,事实上?数学函数象一种“机

器”,获得输入然后计算结果。它会每次返回同样的结果,如果每次提供它同样的输入。

例如:

9. 更多类型-数据结构

现在——你已经知道了不少:怎样输入输出,怎样设计复杂的运算法则(程序)来执行数学运算,但是好戏还在后头呢。

截止目前我们都在程序中使用了哪些成份呢?数字和字符串,对不对?没意思的种类……现在让我们引入两三个其它的成份来让事情变得更有意思些。

数据结构是种组织数据的成份。(惊奇,吃惊……)单个的数据没有什么真正的数据结构,是不是?但是假设我们需要很多数放在一起作为一个成份——那就需要某种结构。

例如,我们可能想要一个数据列表。那很容易:

这个例子中的新东西……

内建函数range事实上返回一个列表,可以象所有其它列表那样使用。(它包括第一个数,但是不包括最后一个数。)

列表可以当作逻辑变量使用。如果它非空,则为true,否则为false。因此,while candidates意思是“while名称candidates的列表非空时”或者简单的说“while存在candidates时”。

你可以用if someElement in somelist来检查一个元素是否在列表中。

你可以用someList.remove(someElement)来删除someList中的someElement。

你可以用someList.append(something)为一个列表添加元素。事实上,你也可以使用“+”(象someList = someList+[something])。但是效率不是太高。

你可以通过在列表名之后加上用括号括起来的表示某元素位置的数字(很奇怪,列表的第1个元素,位置是0)来获得列表的某个元素。因此someList[3]是someList 列表的第四个元素(依次类推)。

你可以使用关键字del删除变量。它也可以用来删除列表中的元素(就象这里)。

因此del someList[0]删除someList 列表中的第一个元素。如果删除前列表是[1, 2, 3],删除后就变成了[2, 3]。

我们还有个叫result的列表,它任何时间都包含着最新的结果。最初的时候,它只包含1。我们还有个叫base的变量。每次循环,我们删除是它的倍数的数字(它总是候选列表中最小数)。每次循环之后,我们知道剩下的最小的数是素数(因为所有可以分解的数我们都删除了)。

因此,我们把它加入result,并把它设为新的base,然后从列表里移除它(这样就不会对 它重复计算了)。当候选列表为空时,result列表将包含所有的素数。精巧吧,哈!

思考一下:第一次循环有什么特别吗?那时base 是2,但它一样经过了筛选。为什 么?为什么这不发生在其它的base值身上?我们打算移除product时能否确定它在候选列 表中呢?为什么?

接下来是什么呢?哦,是的……索引。还有切片。它们是从python列表中获得单个 元素的方法。你已经见到了普通的索引行为。它相当简单。事实上,我已经告诉了你所有 你需要知道的关于它的东西,除了一件事:负数索引从列表的末尾向前计算。所以, someList[-1]是someList的最后一个元素someList[-2]是它之前的一个元素,依次类推。

切片,仍然,对你来说是陌生的。它和索引相似,除了切片可以获得列表中的所有的

元素,而不仅仅是单个的元素。这如何做呢?象这样:

那么——在python中我们如何做呢?我们不能直接制造一个对象。不能直接制造一个

炉子,而是做一个菜谱来描述炉子应该是什么样。这份菜谱因此就描述了一个被我们称为

炉子的一类对象。一个非常简单的炉子类可能是这样:

myOven.spam现在将包含mySpam。怎么回事?因为,我们调用一个对象的某个方法 时,第一个参数,通常称为self,总是包含对象本身。(巧妙,哈!)

这样,self.spam =spam这一行设置当前Oven对象的spam属性的值为参数spam。注意它们是两个不同的事物,尽管在这个例子中它们都被称为spam。

谢谢阅读,是不是比其他的入门教程好理解一些!



今天看啥 - 高品质阅读平台
本文地址:http://www.jintiankansha.me/t/4acoDSSiJY
Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/8004
 
540 次点击