【转】python学习笔记-第1章节 基础知识

http://www.cnblogs.com/dodolook/archive/2011/05/19/2051038.html

我找到了1本python的书,听说这个教程非常的基础。那就太好了,我从来没有写过程序,那就从这本书开始学习啊,哈哈。我是想边学编程边做一些学习记录方便以后复习啊,再就是可以监督自己学得认真点啊,让自己学得更牢靠。我一定会坚持下去的。因为我梦想有一天能知道程序到底是个什么玩意。我觉得程序那些功能很神奇。我要搞清楚它。

  开始看书实践学习!

一:python的安装与一生中的第一个程序

  哦!要写python程序必须要安装python啊!我以为是直接写呢,晕。我还是先去看看资料为什么要先安装python。通过查询我知道了,原来计算机程序分几种,1种是编译型的,1种是解释型的。编译型的像C C++,解释型的像python perl ruby.哦!不过我还是不太明白,只是有点点概念了!不管了!反正大概知道了,编译型的需要先写好源代码然后编译链接才能运行,解释型的就相当于一个计算机的翻译,可以一条一条的执行。

  我就先安装python的这个翻译了!谷歌搜索到了python的官方网站,晕!有2个派系的安装文件,不管了!2.7的应该比3.2的要简单的,就安装2.7的吧(教材上也安装的2点几的)。因为以前安装过游戏,嘿嘿,我知道如何安装的。不一会儿,安装好了。然后我打开了标准python解释环境IDLE.我按照书上打下1行代码:

print "Hello, world!"

当我再按下回车,居然出现了一行:

Hello, world!

我懂一点点英语,知道这个print是打印的意思,哈哈!这个好,这么快就写出了1行代码。哈哈!

  嘿嘿,计算机还是很聪明的啊!反应也很快!我胡乱输入点看它是什么反应啊!晕!不行,输出了几行怪模怪样的东西,先不管了,还是先严格按照书上说的写啊!

  书上说写python代码可以选择很多种IDE(集成开发环境),哦原来这个IDE是多了很多帮助你写代码的工具。有什么代码自动完成,高亮显示什么的,唉!先不忙了!就像用标准的IDLE吧。

二:算法的意义

  哦!算法!我得仔细瞧瞧这个是个什么东西啊!哦!算法原来就像你平时每天生活所以安排的事情的详细描述啊。比如早上起来是先刷牙啊还是先洗脸啊!或者是拖地啊!需要每天拖一次啊。哦!大概明白点了!

三:好奇心与一个强大IDE的安装

  刚才看到书中介绍了那么多的IDE,我想我还是去寻找个,这样感觉自己确实是很努力的在探索知识。我看到那么多的IDE介绍真不知道该选择哪个,于是我到网上搜索了一番,决定使用不少人推荐的Eclipse。不过我在搜索的过程中看到了一句话,程序员分3种,1种用emacs,1种用vim,1种用其他。晕了。我进一步搜索,emacs是神的编辑器,VIM是编辑器之神,我郁闷,那不是用其他类型的都和神没有关系,我仔细掂量了下自己,刚开始写了第一行代码,和神的距离是遥不可及的,那就先用eclipse,关于神的事情以后我再弄。我找了篇文章介绍eclipse python环境的搭建。花了10分钟搞定了,打开用了下,感觉确实不错啊。你打个pr就会自动提示print每写完一行代码,按下F9就执行了,嗯,不错。

三:数字和表达式  

  哦!python能进行一些类始于计算机的功能啊!我试试,我在eclipse中输入

print 2 + 2

按F9输出了4,嘿嘿,果然不耐,可以进行数字的加法呢。我再试试除法

print 1 / 2

晕,为什么输出0.哦!原来python做整数除法的时候小数部分会被截除。是这样子啊,那有什么办法让它保留小说呢,办法就是用实数,而且参与除法的两个数中有以一个数为浮点数,就可以了。我试试

>>>1.0 / 2.0
0.5
>>>1 / 2.0
0.5
>>>1.0 / 2
0.5
>>>1 / 2.
0.5

哈哈不错!而且,表示实数,在整数后只跟1个点也可以的,哈哈!但是这样用有时候觉得有点繁琐,如果希望python只执行普通的除法该怎么办啊!书上说有办法,就是在代码前增加一行代码:

from __future__ import division
print 1 / 2 
print 1 // 2

这样整数除法就不会做整除了,但是如果还是想整除就可以用两个//。仔细想想,除了(加,减,乘,除)应该还可以取余,乘方啊,我试试:

print 1 % 2 
print 10 / 3
print 10 % 3
print 9 % 3
print 2.34 % 0.5
________________________________
1
3
1
0
0.34

哈哈不错!完全没有问题,不过取余运算在哪些地方有用的啊。不错,比如你要每10分钟拖地1次,就可以拿检查时间10%的结果是否为0做判断即可,哈哈!仔细想象还真是这样啊,原来取余可以这样应用的。

  晕!刚才没写完就点发布了!现在接着学习,长整型!长整型也就是很长很长的整数类型吧。我在交互环境试试,主要是我现在还写不出很长的代码,用eclipse暂时太浪费了(唉!离神的距离更远了!),我试试看,很长很长的整数,看看python如何回应!

>>> 999999999999999999999999999999999999999
999999999999999999999999999999999999999L

哦!回应是回应对了,可是为什么后面有个L啊!哦原来啊,普通的整数只能在一个范围内的,(2147483647-2147483648).哇!刚才我写的数字超过了普通整数耶!所以后面有个L啊。哦,幸好是大写L啊,要是小写的话和1很像啊,我得记住,这个L以后一定要大写。

  十六进制和八进制。什么是进制!我查询了有关资料!知道了,原来十六进制就是到了16就进一,八进制就是到了8就进一。哦,十进制就是生活中常用的,到了10就进1位啦!唉!为什么人要用十进制啊,要是用十六,八的话,就会明白得更快啊!可惜啊,人只有十个手指头!嘿嘿!

  变量。哦!变量应该是这样子的,就相当于1个箱子,然后里面可以放东西!变量得有个名字,一定要好听而且好认啊,书上有变量取名字很重要哦!而且变量可以包括字母,数字和下划线开头,但是不能用数字开头。哦,记住这点。

  语句。哦!到目前啊!我一直学的东西叫表达式,也就像食谱中的菜。然后呢,我现在要学的是语句,也就是如何去做这些菜,嘿嘿好玩,我现在要开始做菜了!唉!不对啊,我刚才好像已经做过菜了耶!我回忆1下:

其中的print就是如何做菜的指令语句,2*2就是菜。然后m=2也是把菜2放到m的箱子里。没错,之前已经做过“菜”了。嘿嘿。

  获取用户输入.对!我想起来了。一般的程序都需要让用户输入一些“菜”,然后程序员去安排怎么去做“菜”呢。刚才我写的全都是相当于程序写好的菜啊。获取用户的输入的话,需要用1个函数input,晕死!什么是函数,我得去搜索下相关知识!通过搜索我知道了函数其实就是一段重复利用的代码块!哦,原来是这样子的,就相当于一把刀,随时可以用它来“切菜”。想切就切。但是input这个函数到底在哪里啊,python怎么认识的,我郁闷,我不知道,那就先不管了,我就想象python已经知道了。我现在在交互式下试试这个函数

>>>input("the meaning of life:")
the meaning of life:
25
25

哈哈!真的输入输出了!但是仔细一想,这样做没什么用啊。只是回显出来给我看了下用户输入的值。晕死!不行,实际这样做没什么用处!我突然想起了“箱子”,我必须把它放在1个“箱子”里。这样我才可以很好的利用它啊。我试试:

>>>= input("x:")
x: 
23
>>>= input("y:")
y: 
32
>>>print x * y
736

哈哈!不错!这样做就好多啦!我把“菜”放入了“箱子”,而且我还计算输入了2个数的乘积。

  if.if语句。哦!这个应该是如果的意思,那也就是说,如果怎么样了,才怎么样!嗯!这个好,以前我写的几行代码,都是一条一条的执行的!现在有了这个东西就可以如果怎么样了就怎么样了啊,哈哈!就感觉上街买菜啊!如果2.5一斤我才买,多了就不买,嘿嘿!我试试这个的效果。我把前面学习的综合来试试,嘿嘿:

>>> m = 10
>>> if m > 20
SyntaxError: invalid syntax
>>> if m > 20:
  
print "OK"


>>> if m > 2:
  
print "OK"


OK

嘿嘿!不错,中间我还出了个问题,居然在if语句后面还要打个:号。晕!记住!

四:函数。

  函数的话,我之前也已经查询了有关资料,其实就是一段可以重复利用的小程序段。刚才我不知道python怎么知道input的函数的。现在我知道了,原来是这样子的。input是标准函数,也被称为内建函数!所以python知道的,就相当于1个人肯定知道有没有嘴巴,耳朵一样嘿嘿。其实刚才的乘方可以用内建函数pow来实现:

>>> 2 ** 3
8
>>> pow(2,3)
8

其实这种行为就叫做函数调用啦!一个函数调用行为需要给函数参数,参数的个数和不同的函数实现是有关系的。上面pow的例子是给2个参数,然后函数会返回1个值,这个值就是幂运算啦!因为是交互式环境,所以就直接打印出函数返回值了!哈哈,又学到点东西啦!唉!内建函数还不少啊!我得记住啊!认真实践下比如abs,round,等等,好多呢!

五:模块。

  诶!模块是个什么东西。哦!原来模块是增强python功能的扩展。就相当于,我买了1辆“大黄蜂”,这样我就能更快的去更远的地方!呵呵。模块里有很多扩展的函数,就相当于“大黄蜂”,内建函数就相当于自身有史以来的嘴巴,耳朵。呵呵!比如floor这个函数,可以向下取整。但是这个函数不在内建函数中,而在其他模块中(math模块中),这就需要用一个命令import来导入模块了!我试试:

>>> import math
>>> math.floor(32.9)
32.0

哈哈,不错!成功了!导入1个模块后,只要用模块名.函数的格式就可以使用这个模块中的函数了。但是我注意到1个问题啊,floor向下取整后,出来的结果是浮点数,如果我要把它编程整数怎么办啊!还好有个办法,用int函数把它包起来,试试:

>>> int(math.floor(32.9))
32

哈哈啊!成功了!不错啊。但是每次用math模块里的函数都要加模块名.的前缀,还是非常麻烦啊,怎么办啊!有个解决办法,用form模块import函数。这样的形式就可以直接用函数了,不用加模块名前缀了。试试:

>>> from math import sqrt
>>> sqrt(9)
3.0

嗯,太好了!

  如何在WINDOWS下双击执行python程序.如果要像普通应该程序一样在windows下双击执行,得注意几个问题呢!第一个保存的文件后缀要为.py(这里要注意啊,WINDOWS默认是隐藏了后缀名的,如果你记事本编辑出来的文件后缀其实是.txt,所以得把默认的隐藏后缀改为显示出来。)再一个就是要把python解释器所在的目录加到系统path环境变量里,这样,windows才能找到python解释器呢。还要注意的一个问题的,我像如下写的代码

print "hello world!"

保存为.py结尾的文件,path环境变量也设置好了后,双击后程序一闪而过,晕死!这里必须还要加行代码才行,如下:

print "helloworld!"
raw_input(
"Press <enter>")

哈哈,这样就好了!你就能看到程序运行的结果了!不错吧!哈哈!

  注释。这个注释非常重要啊,我查询了有关资料说,写好注释不光是方便了自己以后读自己的代码,也是给别人读你代码提供了很大的帮助。多些注释啊,但是简单到白痴的代码行也就不要写了,嘿嘿!

七:字符串.

  最早我写的那行print "Hello, world!"嘿嘿!这个程序中这个"Hello,world"是什么,这个就是字符串了。python里字符串其实和数字一样啊!也是1个值呢!我们来看个字符串:

>>> "Hello,world!"
'Hello,world!'
>>> "Let's go!"
"Let's go!"
>>> 'Let's go!'
SyntaxError: invalid syntax
>>> 'Let\'s go!'
"Let's go!"

嘿嘿,发现没有!python中的字符串,单引号和双引号结果是一样,但是在单引号和双引号混用的时候就表现出来它的作用了;反斜杠呢可以用来转义!这样就可以在一个字符串中只用一种引号形式了!

  字符串的拼接。字符串的拼接呢是用“+”例如:

>>> "Hello," + "world!"
'Hello,world!'
>>> x = "Hello,"
>>> y = "world!"
>>> x + y
'Hello,world!'

哈哈,不错吧,加号还有这个作用呢!

  字符串的表示,str和repr.python中对字符串的处理有两种机制。什么是机制,唉!就想象成办法和做法吧!我暂时也不是很理解!。一种是通过str函数,它会把值转换为合理形式的字符串,使用户看起来容易理解;一种是通过repr函数,它会以合法的python表达式的字符串形式来表示值,如下:

>>> print repr("Hello,world!")
'Hello,world!'
>>> print repr(10000L)
10000L
>>> print str("Hello,world!")
Hello,world!
>>> print str(10000L)
10000

嘿嘿,明白了。这样做是有道理的,请看如下事例:

>>> temp = 42
>>> print "The temperature is" + temp

Traceback (most recent call last):
File 
"<pyshell#36>", line 1in <module>
print "The temperature is" + temp
TypeError: cannot concatenate 
'str' and 'int' objects
>>> print "The temperature is" + repr(temp)
The temperature is42

哈哈!第一print语句为什么错误,那是因为不可以将字符串和数字相加呢!第二个正确是因为已经通过repr把temp变量转换为了字符串形式呢!反正!str,repr是将python转换为字符串的2种方法啦!函数str让字符串更容易阅读!,repr把结果字符串转换为合法的python表达式.

  input和raw_input的区别。以前我已经用过input进行用户的输入了,但是这里为什么还要有个raw_input啊,难道其中有什么原因吗,我写个代码看看:

name = input("What is your name?")
print "Hello." + name + "s"
‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘’‘
What 
is your name?dodolook
出错!!!!!

晕!这样的代码看起来没有任何问题,为什么会出错啊!哦!原来问题在于input会假设用户舒服的是合法的python表达式,如果用字符串作为输入名字,这个程序就不会用问题,然而要求用户输入名字还要加个引号实在有点过分啊!怎么办呢,这个时候就需要用raw_input函数了。它会把所以的输入当作原始数据,然后放入其字符串中。嘿嘿,所以没有特别的需要,都用raw_input吧。关于什么特别需要的时候用input,唉!暂时不管了!

  长字符串。在书写非常长的字符串的时候,例如它需要跨多行的时候,那么可以使用3引号。而且啊这种与众不同的引用方式,你可以在字符串之间同时使用单引号和双引号,而不需要使用反斜线呢!

  嘿嘿!到此为止,第一本编程书的第一章节差不多学完了!花了4个小时学习时间!加油!为了能写出程序的那个梦! 

posted @ 2012-01-12 09:19  swjm119  阅读(157)  评论(0编辑  收藏  举报