为什么用Python作为编程入门措辞?缘故原由很大略。每种措辞都会有它的支持者和反对者。去Google一下“why python”,你会得到很多结果,诸如运用范围广泛、开源、社区生动、丰富的库、跨平台等等等等,也可能找到不少对它的批评,格式去世板、效率低、海内用的人很少之类。不过这些优缺陷的权衡都是程序员们的烦恼。作为一个想要学点编程入门的初学者来说,大略才是最主要的。当学C++的同学还在写链表,学Java的同学还在折腾运行环境的时候,学Python的你已经像上图一样飞上天了。当然,除了大略,还有一个主要的缘故原由:由于我现在每天都在写Python。虽然往后可能会讲些手机编程之类(如果真的有那么一天π_π),但目前这时候,各位也就看菜用饭,有啥吃啥了。每天5分钟,先别计较太多。况且Python还是挺有利于形成良好编程思维的一门措辞。推举两本我个人比较喜好的Python入门书本,一本是《简明Python教程》,我自己最开始便是看着它学的,接下来也会大体参考里面的内容讲。另一本是《Head First Python》,Head First系列都是非常浅近易懂的入门类书本,虽然我只瞄过几眼,但觉得还是不错的。
【Python 第1课】安装
进入Python的官方下载页面http://www.python.org/download/你会看到一堆下载链接。我们就选“Python 2.7.5 Windows Installer”,如果是64位系统的同学选下面那个“Python 2.7.5 Windows X86-64 Installer”。为什么不选最上面那个3.3.2的新版本?由于我在用python2.7.x,python3改了不少地方,不熟。下载之后,就和装其他软件一样,双击,一起Next,想换安装路径的同学可以换个位置。但不管换不换,请把这个路径复制下来,比如我的是“C:\python27\”,后面要用到它。安装结束还没完,我们还差末了一步:设置环境变量。这是什么东西我暂时先不阐明,大家照着做就好。右键单击我的电脑(不,是你的电脑),依次点击"属性"->"高等"->"环境变量",在“系统变量”表单中点击叫做Path的变量,然后编辑这个变量,把“;C:\Python27\”,也便是你刚才复制的安装路径,加到它的结尾。把稳!
要用英文分号和前面已有的内容隔开。然后点确定,点确定,再点确定。完成。怎么知道你已经成功安装了Python呢?这时候你须要打开命令行,或者叫命令提示符、掌握台。方法是:点击开始菜单->程序->附件->命令提示符;或者直接在桌面按快捷键“Win+r”,Win键便是Ctrl和Alt阁下那个有windows图标的键,输入cmd,回车。这时候你就看到可爱的黑底白字了。在命令行里输入python,回车。如果看到诸如:Python 2.7.5 (default, May 15 2013, 22:43:36) [MSC v.1500 32 bit (Intel)] on win32的提示笔墨,恭喜你!
否则,请重新检讨你哪里的打开办法不对,或者直接给我留言。接下来,你就可以输入那句程序员最爱的print “Hello World”向Python的天下里发出第一声呜咽。

嗯。。。如果这么几步你还是被绕晕了,没紧要,我还留了一手:打开你的浏览器,Google一下“python online”,点击第一条结果“Execute Python Script Online”;或者直接打开compileonline.com,找到Python点进去。http://www.compileonline.com/execute_python_online.php这是一个在线的python运行环境,你可以在这里练习,无需任何下载安装配置。左边页面是写代码的地方,点击左上角的“Execute Sctipt”,就可以在右边页面看到输出结果。那Mac的同学怎么办?Mac上叫“终端”,英文版叫Terminal,可以在“运用程序”里找到,也可以直接在你的Mac上搜索“终端”或者“Terminal”找到。打开之后输入“python”,回车,就可以进入python了。好了,本日就这么多,快去试试你的python,输出一行“Hello World”吧。完成的同学可以截个屏发给我。欢迎各种建议、谈论和闲聊,当然更欢迎你把这里分享给更多的朋友。
我本日创造昨天供应的compileonline.com网站有时候会很慢,乃至无法正常运行,于是我又找了一个:http://www.pythonfiddle.com彷佛要快一点,不过彷佛只能在电脑上的浏览器打开。其余便是,昨天忘了给Mac的同学们说一下怎么打开命令行。Mac上叫做“终端”或者“Terminal”,可以在“运用程序”里找到,也可以直接在“spotlight”里直接输入“Terminal”打开。打开后就可以通过“python”命令进入开拓环境了。
【Python 第2课】print
print,中文意思是打印,在python里它不是往纸上打印,而是打印在命令行,或者叫终端、掌握台里面。print是python里很基本很常见的一个操作,它的操为难刁难象是一个字符串(什么是字符串,此处按住不表,且待日后逐步道来)。基本格式是: print 你要打印的东西或者 print(你要打印的东西)这里一定要英笔墨符的括号,所有程序中涌现的符号都必须是英笔墨符,把稳别被你的输入法坑了。各位同学可以在自己的python环境中试着输出以下内容(这里是命令行下的效果,利用在线编辑器或者IDE的同学,只须要输入“>>>”后面的内容就可以了):>>> print "hello"hello>>> print 'world'world>>> print 11>>> print 3.143.14>>> print 3e303e+30>>> print 1 + 2 37>>> print 2 > 5False直接在print后面加一段笔墨来输出的话,须要给笔墨加上双引号或者单引号。大家创造,print除了打印笔墨之外,还能输出各种数字、运算结果、比较结果等。你们试着自己print一些别的东西,看看哪些能成功,哪些会失落败,有兴趣的话再猜一猜失落败的缘故原由。其实在python命令行下,print是可以省略的,默认就会输出每一次命令的结果。就像这样:>>> 'Your YiDa!''Your YiDa!'>>> 2+13+250265>>> 5<50True本日内容就这么多。没听出个以是然?没紧要,只要成功print出来结果就可以,我们往后还有很多韶光来谈论个中的细节。
这个短期目标便是一个很大略很弱智的小游戏:COM: Guess what I think?5COM: Your answer is too small.12COM: Your answer is too large.9COM: Your answer is too small.10COM: BINGO!!!阐明一下:首先电脑会在心中掐指一算,默念一个数字,然后叫你猜。你猜了个答案,电脑会厚道地见告你大了还是小了,直到终极被你果断猜中。这是我十几年前刚打仗编程时候写的第一个程序,当时家里没有电脑,在纸上琢磨了良久之后,熬到第二个星期的电脑课才在学校的486上run起来。后来我还写过一个windows下的窗口版本。现在就让它也成为你们第一个完全的程序吧。照我们每天5分钟的进度,初步估计半个月后大约能完成了。
【Python 第3课】IDE
打个不恰当的比方,如果说写代码是制作一件工艺品,那IDE便是机床。再打个不恰当的比方,PS便是图片的IDE,Word便是doc文档的IDE,PowerPoint便是ppt文件的IDE。python也有自己的IDE,而且还有很多。python自带了一款IDE,叫做IDLE。先说Windows,Windows上安装了之后,可以在“开始菜单”->“程序”->“Python 2.7”里找到它。打开后之后很像我们之前用过的命令行。没错,它便是的,在里面print一下试试。不知之前用命令行的同学有没有把稳到,命令行输一行命令就会返回结果,而且之前print了那么多,关掉之后也不知道到哪里去了。以是它没法知足我们编写弱智小游戏的大操持。我们须要用新的方法!
点击窗口上方菜单栏的“File”->“New Window”,会打一个长得很像的新窗口,但里面什么也没有。这是一个文本编辑器,在这里面就可以写我们的python程序了。连续print几行,这次可以多print一点:print 'Hello'print 'IDE'print 'Here I am.'现在是,见证奇迹的时候!
点击“Run”->“Run Module”,或者直接按快捷键F5。会提示你保存刚才文件,随便取个名字,比如“lesson3.py”。(.py是python代码文件的类型,虽然不指定.py也是可以的,但建议还按规范来)保存完毕后,之前那个掌握台窗口里就会一次性输出你要的结果。往后想再次编辑或运行刚才的代码,只要在IDLE里选择“File”->“Open...”,打开刚才保存的.py文件就可以了。
Mac上的IDLE是预装好了,在“终端”里输入“IDLE”就可以启动,利用方法同Windows。也可以在文件夹/usr/bin里可以找到IDLE。如果是重新下载安装了python,彷佛是可以在“运用程序”里找到IDLE的,Mac的同学可以验证下。其余,Windows下有一个第三方的免费IDE,叫PyScripter,把文件目录、文本编辑器、命令行都整合到了一起,还增加了很多赞助功能。有兴趣的同学也可以去找来试试看。地址:http://code.google.com/p/pyscripter/用起来该当比IDLE方便,但有一点要把稳,它的安装位置和.py文件的保存位置都不要有中文,不然可能会有问题。本日的内容有点长。配置开拓环境这种事最麻烦了,大家耐心一点,毕竟一次投入,长期受益。往后我们的课程都会在IDE中进行,基本不再往命令行里直接敲代码了。末了说下,有很多python程序员都不该用任何IDE。至于缘故原由嘛,可能就像精良的手工艺人是不会用机床来加工艺术品的吧。
【Python 第4课】输入
前print了那么多,都是程序在向屏幕“输出”。那有来得有往,有借得有还,有吃。。。咳咳!
那啥,我们得有向程序“输入”信息的办法,才能和程序对话,进行所谓的“人机交互”。python有一个吸收命令行下输入的方法:input()把稳,和print不同的是,这次我们必须得加上()了,而且得是英笔墨符的括号。
好了,终于可以搬出那个弱智小游戏了,耶!
游戏里我们须要跟程序一问一答,以是我们先把话给说上。打开我们的python编辑器,不管是IDLE,在线编辑器,还是其他的IDE。在代码编辑器中输入下面几句代码:print "Who do you think I am?"input()print "Oh, yes!"然后,Run!
(Forrest Run!
)你会在命令行中看到,程序输出了第一句之后就愣住了,这是input在等待你的输入。输入你的回答,回车。你会看到程序的回答。把稳!
引号!
!
又是引号!
!
!
和print一样,如果你输的是一串笔墨,要用引号''或者""引起来,如果是数字则不用。(插一句,python还有一个输入的方法:raw_input(),它把所有的输入都直接当作一串字符,于是就可以不用加引号,有兴趣的同学可以试一试,体会一下两者的不同。关于这个令人纠结的引号,我们往后会再谈论它。)看上去不错哦,彷佛就这么对上话了。是不是以为离小游戏的完成迈进了一大步?可是大家创造没有,纵然你说"Idiot!
",程序仍旧会淡定地回答"Oh, yes!"由于它左耳进右耳出,根本就没听进去我们到底说了啥。那怎么才能让它负责听话呢?啪!
且听下回分解。
回顾一下我们之前几节课。我们到现在一共提到了三种可以运行print的办法:1. 命令行,包括Win下的掌握台(CMD)和Mac下的终端(Terminal)。它可以帮我们确认自己电脑上的python是不是正常。但是这种方法很难帮我们实现写一个完全小程序的目标。2. IDE,包括python自带的IDLE和其他第三方的IDE。不知道大家是不是都顺利搞定,并且能顺利保存并打开py文件了呢?往后我们课程里的内容,你都可以在这里面进行。3. 在线编辑器,compileonline或者pythonfiddle。他们同样包括代码编辑器(写代码的地方)和掌握台(输出结果的地方)两部分。以是我们在本地IDE里的操作都可以在个中实现。只不过保存文件会有些繁芜,compileonline是点击download files打包下载,pythonfiddle须要注册一下。当然,你也可以直接把你写好的代码复制下来,保存在本地,下次再粘贴上去接着写。
【Python 第5课】变量
昨天说到,须要让程序理解我们输入的东西。那首先,就须要有东西把我们输入的内容记录下来,好为接下来的操作做准备。Python之神说,要有变量!
于是就有了变量。变量,望文生义,便是变革的量。python里创建一个变量的方法很大略,给它起个名字,然后给它一个值。举起几个栗子:name = 'Crossin'myVar = 123price = 5.99visible = True“=”的浸染是把右边的值授予给左边的变量。
这里说一下其余一个观点,叫做“数据类型”,上面4颗栗子分别代表了python中较常见的四种基本类型:字符串 - 表示一串字符,须要用''或""引起来整数浮点数 - 便是小数bool(布尔) - 这个比较分外,是用来表示逻辑“是”“非”的一种类型,它只有两个值,True和False。(把稳这里没有引号,有了引号就变成字符串了)再次用到我们熟习的print。这次,我们升级了,要用print输出一个“变量”:name = 'Crossin'print name看到结果了吗?没有输出“name”,也没有报错,而是输出了“Crossin”。现在是不是能想明白一些,为什么之前print一段笔墨没加引号就会报错,而print一个数字就没有问题呢?它叫变量,那便是能变的。以是在一次“赋值”操作之后,还可以连续给它授予新的值,而且可以是不同类型的值。a = 123print aa = 'hi'print a“=”的右边还可以更繁芜一点,比如是一个打算出的值:value = 3 4print valuevalue = 2 < 5print value乃至,也可以是input():name = input()print name
于是,我们又可以进化一下我们的小游戏了。把上次写的内容轻微改一下,加上变量: print "Who do you think I am?"you = input()print "Oh, yes! I am a"print you看来程序已经知道我们的输入了。接下来,就要让它学会对不同的答案做出判断。这个我们留到下次再说。本日是周五。我以为吧,到周末了,大家该当阔别一下电脑,多陪陪家人朋友,吃用饭,出去走走。祝大家周末愉快!
【Python 第6课】bool
昨天说到了python中的几个基本类型,字符串、整数、浮点数都还算好理解,关于剩下的那个bool(布尔值)我要轻微多说几句。逻辑判断在编程中是非常主要的。大量的繁芜程序在根本上都是建立在“真”与“假”的基本逻辑之上。而bool所表示的便是这种最纯挚最实质的True / Flase,真与假,是与非。
来看下面的例子:a = 1 < 3print ab = 1c = 3print b > c通过用“>”“<”来比较两个数值,我们就得到了一个bool值。这个bool值的真假取决于比较的结果。“>”“<”在编程措辞中被成为逻辑运算符,常用的逻辑运算符包括:>:大于<:小于>=:大于即是<=:小于即是==:即是。比较两个值是否相等。之以是用两个等号,是为了和变量赋值区分开来。!=:不等与not:逻辑“非”。如果x为True,则not x为Falseand:逻辑“与”。如果x为True,且y为True,则x and y为Trueor:逻辑“或”。如果x、y中至少有一个为True,则x or y为True关于bool值和逻辑运算实在远不止这些,但现在我们暂时不去考虑那么多,以免被绕得找不到北。最基本的大于、小于、即是已经够我们先用一用的了。
试试把bool加到我们的小游戏里:num = 10print 'Guess what I think?'answer = input()result = answer<numprint 'too small?'print resultresult = answer>numprint 'too big?'print resultresult = answer==numprint 'equal?'print result代码比之前轻微多了一点,阐明一下。第一段代码:先创建一个值为10的变量num,输出一句提示,然后再输入一个值给变量answer。第二段代码:打算answer<num的结果,记录在result里,输出提示,再输出结果。第三段、第四段都与第二段类似,只是比较的内容不一样。看当作果是不是跟你预期的同等?虽然看上去还是有点傻,但是离目标又进了一步。现在数数你手上的工具:输入、输出,用来记录数值的变量,还有可以比较数值大小的逻辑运算。用它们在你的python里折腾一番吧。
【Python 第7课】if
连续上次的程序。我们已经能让判断我们输入的值了,但这程序还是有点呆,不过若何都要把话说三遍。由于到目前为止,我们的程序都是按照顺序从上到下一行接一行地实行。有同学发来问题了:怎么能让它根据我们输入的结果来选择实行呢?答案便是 – if
来看一张图(纯手绘,渣画质)阐明一下,程序顺序往下实行碰着if语句的时候,会去判断它所带条件的真假。“如果”为True,就会去实行接下来的内容。“如果”为False,就跳过。语法为:if 条件:选择实行的语句特殊解释:条件后面的冒号不能少,同样必须是英笔墨符。特殊特殊解释:if内部的语句须要有一个统一的缩进,一样平常用4个空格。python用这种方法替代了其他很多编程措辞中的{}。你也可以选择1/2/3...个空格或者按一下tab键,但必须全体文件中都统一起来。千万不可以tab和空格混用,不然就会涌现各种莫名其妙的缺点。以是建议都直接用4个空格。上栗子:thisIsLove = input()if thisIsLove:print "再转身就该年夜胆留下来"试试看?输入True,就会得到回答。输入False,什么也没有。(如果你那里输出中文有问题,请自行改成英文)
以是,我们的游戏可以这样改写:num = 10print 'Guess what I think?'answer = input()if answer<num:print 'too small!'if answer>num:print 'too big!'if answer==num:print 'BINGO!'if在编程措辞中被称为“掌握流语句”,用来掌握程序的实行顺序。还有其他的掌握流语句,后面我们会用到。
重新发一下代码thisIsLove = input()if thisIsLove: print "再转身就该年夜胆留下来"========num = 10print 'Guess what I think?'answer = input()if answer<num: print 'too small!'if answer>num: print 'too big!'if answer==num: print 'BINGO!'
【Python 第8课】while
先先容一个新东西:注释。python里,以“#”开头的笔墨都不会被认为是可实行的代码。 print “hello world”和 print "hello world" #输出一行字是同样的效果。但后者可以帮助开拓者更好地理解代码。在接下来的课程中,我会常常用注释来阐明代码。
用if改进完我们的小游戏后,功能已经基本实现了。很多同学做完后纷纭表示,每次只能猜一次,完了之后又得重新run,觉得好麻烦。能不能有办法让玩家一贯猜,直到猜中为止?答案很显然,如果这种小问题都办理不了,那python可就弱爆了。最大略的办理方法便是while。同if一样,while也是一种掌握流语句,其余它也被称作循环语句。连续来看渣画质手绘流程图:
程序实行到while处,“当”条件为True时,就去实行while内部的代码,“当”条件为False时,就跳过。语法为:while 条件: 循环实行的语句同if一样,把稳冒号,把稳缩进。本日的栗子:a = 1 #先a设为1while a != 0: #a不即是0就一贯做 print "please input" a = input()print "over"想想怎么用while改进小游戏?有多种写法,大家自己思考下,我不多做解释了。下图给出一种方法。
把稳,这里涌现了两层缩进,要保持每层缩进的空格数相同。
到此为止,小游戏已经基本成型了。不过彷佛还差一点:每次自己都知道答案,这玩起来有神马意思。来日诰日来讲,怎么让你不知道电脑的答案。
【Python 第9课】random
之前我们用了很多次的print和input方法,它们的浸染是实现掌握台的输入和输出。除此之外,python还供应了很多模块,用来实现各种常见的功能,比如韶光处理、科学打算、网络要求、随机数等等等等。本日我就来说说,如何用python自带的随机数模块,给我们的小游戏增加不愿定性。
引入模块的方法:from 模块名 import 方法名看不懂没紧要,这东西往后我们会反复用到。本日你只要记住,你想要产生一个随机的整数,就在程序的最开头写上:from random import randint之后你就可以用randint来产生随机数了。还记得input后面的()吗,我们利用randint的时候后面也要有()。而且,还要在括号中供应两个数字,先后分别是产生随机整数范围的下限和上限。例如:randint(5, 10)这样将会产生一个5到10之间(包括5和10)的随机整数。放到我们的小游戏里,用answer = randint(1, 100)替代answer = 10程序在运行时候,会产生一个1到100的随机整数,存在answer里,我们也不知道是多少,真的全靠猜了。
好了,以为还有点意思么?我们终于一步步把这个弱智小游戏给做出来了,有没有一丁点的造诣感呢?如果你对个中的某些细节还不是很理解,恭喜你,你已经开始入门了。相信你会带着一颗追求原形的心,在编程这条路上不断走下去。我们的课程,也才刚刚开始。
【Python 第10课】 变量2
变量这东西,我们已经用过。有了变量,就可以存储和打算数据。本日来讲点变量的细节。#==== 变量命名规则 ====#变量名不是你想起就能起的:第一个字符必须是字母或者下划线“_”剩下的部分可以是字母、下划线“_”或数字(0-9)变量名称是对大小写敏感的,myname和myName不是同一个变量。几个有效的栗子:i__my_namename_23a1b2_c3几个坏掉的栗子(想一下为什么不对):2thingsthis is spaced outmy-name
#==== 变量的运算 ====#我们前面有用到变量来存储数据: num = 10answer = input()也有用到变量来比较大小: answer < num除此之外,变量还可以进行数学运算: a = 5 b = a + 3 c = a + bpython中运算的顺序是,先把“=”右边的结果算出了,再赋值给左边的变量。下面这个例子: a = 5 a = a + 3 print a你会看到,输出了8,由于先打算出了右边的值为8,再把8赋给左边的a。通过这种方法,可以实现累加求和的效果。它还有个简化的写法:a += 3这个和a = a + 3是一样的。
于是,利用变量、循环、累加,可以写一个程序,来完成传说中高斯大牛在小时候做过的题:1+2+3+...+100=?从1加到100即是多少?提示:你可以用一个变量记录现在加到几了,再用一个变量记录加出来的结果,通过while来判断是不是加到100了。
【Python 第11课】 逻辑判断
之前粗略地提到bool类型的变量,又说到if和while的判断条件。有些同学反馈说没怎么理解,为什么一下子是bingo=False,一会又是bingo==False,一下子是while在条件为True的时候实行,一下子又是while在bingo==False的时候实行。别急,你听我说。
首先,要理解,一个逻辑表达式,实在终极是代表了一个bool类型的结果,比如:1 < 3这个就像当于是一个True的值2 == 3这个便是False把它们作为判断条件放到if或者while的后面,便是根据他们的值来决定要不要实行。同样的栗子再来几颗:a = 1print a>3 #Falseprint a==2-1 #Trueb = 3print a+b==2+2 #True比较随意马虎搞混的,是bool变量的值和一个逻辑表达式的值,比如:a = Falseprint a #Falseprint a==False #True虽然a本身的值是False,但是a==False这个表达式的值是True。(说人话!
)“a”是错的,但“a是错的”这句话是对的。
回到上面那几个观点:bingo=False把bingo设为一个值为False的变量bingo==False判断bingo的值是不是False,如果是,那么这句话便是Truewhile在判断条件条件为True时实行循环,以是当bingo==False时,条件为True,循环是要实行的。晕了没?谁刚学谁都晕。不晕的属于骨骼惊奇百年一遇的编程奇才,还不赶紧转行做程序员!
逻辑这东西是初学编程的一大坑,我们后面还要在这个坑里挣扎良久。
留个习题:a = Trueb = not a #不记得not请回答6想想下面这些逻辑运算的结果,然后用print看看你想的对不对:bnot ba == ba != ba and ba or b1<2 and b==True
【Python 第12课】 for循环
大家对while循环已经有点熟习了吧?本日我们来讲另一种循环语句:for ... in ...
同while一样,for循环可以用来重复做一件事情。在某些场景下,它比while更好用。比如之前的一道习题:输出1到100(回答903可看详细内容)。我们用while来做,须要有一个值来记录已经做了多少次,还须要在while后面判断是不是到了100。如果用for循环,则可以这么写:for i in range(1, 101): print i阐明一下,range(1, 101)表示从1开始,到101为止(不包括101),取个中所有的整数。for i in range(1, 101)便是说,把这些数,依次赋值给变量i。相称于一个一个循环过去,第一次i = 1,第二次i = 2,……,直到i = 100。当i = 101时跳出循环。以是,当你须要一个循环10次的循环,你就只须要写:for i in range(1, 11)或者for i in range(0, 10)差异在于前者i是从1到10,后者i是从0到9。当然,你也可以不用i这个变量名。比如一个循环n次的循环:for count in range(0, n)
for循环的实质是对一个序列中的元素进行递归。什么是序列,往后再说。先记住这个最大略的形式:for i in range(a, b)从a循环至b-1现在,你可以用for循环来改写习题903,904,905,906了。
【Python 第13课】 字符串
字符串便是一组字符的序列(序列!
又见序列!
还记得我说过,range便是产生一组整数序列。本日仍旧不去细说它。),它一向是编程中的常见问题。之前我们用过它,往后我们还要一直地用它。
python中最常用的字符串表示办法是单引号(‘’)和双引号("")。我还是要再说:一定得是英笔墨符!
'string'和“string”的效果是一样的。可以直接输出一个字符串print ‘good’也可以用一个变量来保存字符串,然后输出str = ‘bad’print str如果你想表示一段带有英文单引号或者双引号的笔墨,那么表示这个字符串的引号就要与内容差异开。内容带有单引号,就用双引号表示"It's good"反之亦然‘You are a "BAD" man’
python中还有一种表示字符串的方法:三个引号(‘’‘)或者(""")在三个引号中,你可以方便地利用单引号和双引号,并且可以直接换行'''"What's your name?" I asked."I'm Han Meimei."'''
还有一种在字符串中表示引号的方法,便是用\,可以不受引号的限定\'表示单引号,\"表示双引号‘I\'m a \"good\" teacher’\被称作转译字符,除了用来表示引号,还有比如用\\表示字符串中的\\n表示字符串中的换行\还有个用途,便是用来在代码中换行,而不影响输出的结果:"this is the\same line"这个字符串仍旧只有一行,和"this is thesame line"是一样的,只是在代码中换了行。当你要写一行很长的代码时,这个会派上用场。
作业韶光】用print输出以下笔墨:1.He said, "I'm yours!"2.\\_v_//3.Stay hungry,stay foolish.-- Steve Jobs4.
【Python 第14课】 字符串格式化我们在输出字符串的时候,如果想对输出的内容进行一些整理,比如把几段字符拼接起来,或者把一段字符插入到另一段字符中间,就须要用到字符串的格式化输出。
先从大略的开始,如果你想把两段字符连起来输出str1 = 'good'str2 = 'bye'你可以print str1 + str2或者还可以把字符变量一个字符串相加print 'very' + str1print str1 + ' and ' + str2
但如果你想要把一个数字加到笔墨后面输出,比如这样num = 18print 'My age is' + num程序就会报错。由于字符和数字不能直接用+相加。一种办理方法是,用str()把数字转换成字符串print 'My age is' + str(18)或num = 18print 'My age is' + str(num)
还有一种方法,便是用%对字符串进行格式化num = 18print 'My age is %d' % num输出的时候,%d会被%后面的值更换。输出My age is 18这里,%d只能用来更换整数。如果你想格式化的数值是小数,要用%fprint ‘Price is %f’ % 4.99输出Price is 4.990000如果你想保留两位小数,须要在f前面加上条件:%.2fprint ‘Price is %.2f’ % 4.99输出Price is 4.99
其余,可以用%s来更换一段字符串name = 'Crossin'print '%s is a good teacher.' % name输出Crossin is a good teacher.或者print 'Today is %s.' % 'Friday' 输出Today is Friday.把稳区分:有引号的表示一段字符,没有引号的便是一个变量,这个变量可能是字符,也可能是数字,但一定要和%所表示的格式相同等。
现在,试试看用字符串格式化改进一下之前你写的小游戏。比如你输了一个数字72,程序会回答你72 is too small.或者Bingo, 72 is the right answer!
【Python 第15课】 循环的嵌套
设想一样,如果我们要输出5个,用for循环要这么写for i in range(0, 5): print ''如果想让这5个在同一行,就在print语句后面加上逗号for i in range(0, 5): print '',
但如果我想要这样一个图形,怎么办? 当然,你可以循环5次,每次输出一行“ ”。那如果再进一步,这样呢?
除了你自己动手打好一个多行字符串外,也可以让程序帮我们办理这种问题,我们须要的是两个嵌套在一起的循环:for i in range(0, 5): for j in range(0, 5): print i, j第二个for循环在第一个for循环的内部,表示每一次外层的循环中,都要进行一遍内层的循环。看一下输出的结果:0 00 10 20 30 41 0...4 4内层循环中的print语句一共被实行了25次。i从0到4循环了5次。对应于每一个i的值,j又做了从0到4五次循环。以是55一共25次。
以是如果要输出一个55的方阵图案,我们可以for i in range(0, 5): for j in range(0, 5): print '', print把稳:第二个print的缩进和内层的for是一样的,这表明它是外层for循环中的语句,每次i的循环中,它会实行一次。print后面没有写任何东西,是起到换行的浸染,这样,每输出5个,就会换行。
要输出第二个三角图案时,我们须要根据当前外层循环的序数,设置内层循环应该实行的次数。for i in range(0, 5): for j in range(0, i+1): print '', print内层的j每次从0到i+1进行循环。这样,当第一次i=0时,j便是range(0,1),只输出1个。而当末了一次i=4时,j便是range(0,5),输出5个。
末了顺便说下,如果有同学用的是PyScripter,或者其他第三方IDE,可以通过debug中的step,查见地式是若何一行一走运行的。IDLE在这方面做得不太好,虽然也可以步进调试,但是很麻烦且不直不雅观,以是就不推举去用了。
【Python 第16课】 字符串格式化2
之前我们说到,可以用%来布局一个字符串,比如print '%s is easy to learn' % 'Python'有时候,仅仅代入一个值不能知足我们布局字符串的须要。假设你现在有一组学天生就的数据,你要输出这些数据。在一行中,既要输出学生的姓名,又要输出他的成绩。例如Mike‘s score is 87.Lily‘s score is 95.在python中,你可以这样实现:print "%s's score is %d" % ('Mike', 87)或者name = ‘Lily’score = 95print "%s's score is %d" % (name, score)无论你有多少个值须要代入字符串中进行格式化,只须要在字符串中的得当位置用对应格式的%表示,然后在后面的括号中按顺序供应代入的值就可以了。占位的%和括号中的值在数量上必须相等,类型也要匹配。('Mike', 87)这种用()表示的一组数据在python中被称为元组(tuple),是python的一种基本数据构造,往后我们还会用到。
【Python 第17课】 类型转换
python的几种最基本的数据类型,我们已经见过:字符串整数小数 (浮点数)bool类型python在定义一个变量时不须要给它限定类型。变量会根据赋给它的值,自动决定它的类型。你也可以在程序中,改变它的值,于是也就改变了它的类型。例如a = 1print aa = 'hello'print aa = Trueprint a变量a先后成为了整数、字符串、bool类型。
虽然类型可以随意改变,但当你对一个特定类型的变量进行操作时,如果这个操作与它的数据类型不匹配,就会产生缺点。比如以下几行代码print ‘Hello’+1print ‘hello%d’ % '123'程序运行时会报错。由于第一句里,字符串和整数不能相加;第二句里,%d须要的是一个整数,而'123'是字符串。这种情形下,python供应了一些方法对数值进行类型转换:int(x) #把x转换成整数float(x) #把x转换成浮点数str(x) #把x转换成字符串bool(x) #把x转换成bool值上述两个例子就可以写成:print ‘Hello’+str(1)print ‘hello%d’ % int('123')
以下等式的结果均为真:int('123') == 123float('3.3') == 3.3str(111) == '111'bool(0) == False并不是所有的值都能做类型转换,比如int('abc')同样会报错,python没办法把它转成一个整数。
其余关于bool类型的转换,我们会专门再详细解释。大家可以先试试以下结果的值,自己摸索一下转换成bool类型的规律:bool(-123)bool(0)bool('abc')bool('False')bool('')
【Python 第18课】 bool类型转换
昨天末了留的几句关于bool类型的转换,个中有一行:bool('False')print一下结果,会创造是True。这是什么缘故原由?
由于在python中,以下数值会被认为是False:为0的数字,包括0,0.0空字符串,包括'',""表示空值的None空凑集,包括(),[],{}其他的值都认为是True。None是python中的一个分外值,表示什么都没有,它和0、空字符、False、空凑集都不一样。关于凑集,我们后面的课程再说。以是,‘False’是一个不为空的字符串,当被转换成bool类型之后,就得到True。同样bool(' ')的结果是True,一个空格也不能算作空字符串。bool('')才是False。
在if、while等条件判断语句里,判断条件会自动进行一次bool的转换。比如a = '123'if a: print 'this is not a blank string'这在编程中是很常见的一种写法。效果等同于if bool(a)或者if a != ''
【Python 第19课】 函数
数学上的函数,是指给定一个输入,就会有唯一输出的一种对应关系。编程措辞里的函数跟这个意思差不多,但也有不同。函数便是一块语句,这块语句有个名字,你可以在须要时反复地利用这块语句。它有可能须要输入,有可能会返回输出。
举一个现实中的场景:我们去餐厅用饭,跟做事员点了菜,过了一下子,做事员把做好的菜端上来。餐厅的厨房就可以看作是一个函数,我们点的菜单,便是给这个函数的参数;厨师在厨房里做菜的过程便是这个函数的实行过程;做好的菜是返回结果,返回到我们的餐桌上。
我们之前已经用到过python里内建的函数,比如input和range。
以range(1,10)为例,range是这个函数的名称,后面括号里的1和10是range须要的参数。它有返回结果,便是一个从1到9的序列。
再来看input(),括号里面没有,表示我们没有给参数。函数实行过程中,须要我们从掌握台输入一个值。函数的返回结果便是我们输入的内容。
PS:range还可以接管1个或3个参数,input也可以接管1个字符串参数。可以等我往后讲,或去查阅干系资料理解详细。
如果我们要自己写一个函数,就须要去 定义 它。python里的关键字叫def(define的缩写),格式如下:
def sayHello():
print 'hello world!'
sayHello是这个函数的名字,后面的括号里是参数,这里没有,表示不须要参数。但括号和后面的冒号都不能少。下面缩进的代码块便是全体函数的内容,称作函数体。
然后我们去调用这个函数:
sayHello()
得到和直接实行print 'hello world!'一样的结果。
【Python 第20课】 命令行常用命令
本日茬开话题,说一下命令行(Windows下叫“命令提示符”,Mac下叫“终端”)里的常用命令。已经熟习同学可略过。
打开命令行,我们会看到每行前面都有诸如
C:\Documents and Settings\Crossin>
或者
MyMacBook:~ crossin$
之类的。
这个提示符表示了当前命令行所在目录。
在这里,我们输入python就可以进入python环境了。但本日我们暂时不这么做。
第一个常用的命令是:
dir (windows环境下)
ls (mac环境下)
dir和ls的浸染差不多,都是显示出当前目录下的文件和文件夹。
详细效果可拜会文末的附图。
第二个常用命令是:
cd 目录名
通过dir或ls理解当前目录的构造之后,可以通过“cd 目录名”的办法,进入到当前目录下的子目录里。
如果要跳回到上级目录,可以用命令:
cd ..
其余,Windows下如果要写换盘符,须要输入
盘符:
比如从c盘切换到d盘
C:\Documents and Settings\Crossin>d:
有了以上两个命令,就可以在文件目录的迷宫里游荡了。虽然没可视化的目录下的操作那么直不雅观,但是会显得你更像个程序员。。。
于是乎,再说个高阶玩法:现在你可以不用idle那套东西了,随便找个顺手的文本软件,把你的代码写好,保存好,最好是保存成py文件。
然后在命令行下进入到py文件保存的目录,利用命令:
python 你把程序保存的文件名
就可以运行你写的程序了。
嗯,这才像个python程序员的样!
其他常用命令,诸如拷贝文件、删除文件、新建文件夹之类的,请自行搜索干系资料。很随意马虎的,比如你搜“mac 终端 常用命令”,就可以找到很多了。
PS:贴吧里转了一篇关于怎么把py文件转成别人电脑上也可实行的exe文件,稍稍有点繁芜,想寻衅的可以去试试。
【Python 第21课】 函数的参数
本日创造了一个iPad上的游戏,叫Cargo-Bot。这个游戏须要你用指令掌握一个机器臂去搬箱子。游戏里蕴含了很多编程的思想,包括循环、函数调用、条件判断、寄存器、递归等等,挺故意思的。更厉害的是,这个游戏是用一个叫Codea的app直接在iPad上编写出来的。有iPad的同学不妨玩玩看,寻衅一下你的“程商”。
言归正传,在19课里,我们讲了若何定义一个自己的函数,但我们没有给他供应输入参数的功能。不能指定参数的函数就好比你去餐厅用饭,做事员见告你,不能点菜,有啥吃啥。这显然不能知足很多情形。
以是,如果我们希望自己定义的函数里许可调用者供应一些参数,就把这些参数写在括号里,如果有多个参数,用逗号隔开,如:
def sayHello(someone):
print someone + ' says Hello!'
或者
def plus(num1, num2):
print num1+num2
参数在函数中相称于一个变量,而这个变量的值是在调用函数的时候被授予的。在函数内部,你可以像过去利用变量一样利用它。
调用带参数的函数时,同样把须要传入的参数值放在括号中,用逗号隔开。要把稳供应的参数值的数量和类型须要跟函数定义中的同等。如果这个函数不是你自己写的,你须要先理解它的参数类型,才能顺利调用它。
比如上面两个函数,我们可以直接传入值:
sayHello('Crossin')
还是把稳,字符串类型的值不能少了引号。
或者也可以传入变量:
x = 3
y = 4
plus(x, y)
在这个函数被调用时,相称于做了num1=x, num2=y这么一件事。以是结果是输出了7。
【Python 第22课】 函数运用示例
前两课稍稍先容了一下函数,但光说观点还是有些抽象了,本日就来把之前那个小游戏用函数改写一下。
我希望有这样一个函数,它比较两个数的大小。
如果第一个数小了,就输出“too small”
如果第一个数大了,就输出“too big”
如果相等,就输出“bingo”
函数还有个返回值,当两数相等的时候返回True,不等就返回False。
于是我们来定义这个函数:
def isEqual(num1, num2):
if num1<num2:
print 'too small'
return False;
if num1>num2:
print 'too big'
return False;
if num1==num2:
print 'bingo'
return True
这里说一下,return是函数的结束语句,return后面的值被作为这个函数的返回值。函数中任何地方的return被实行到的时候,这个函数就会结束。
然后在我们的小游戏里利用这个函数:
from random import randint
num = randint(1, 100)
print 'Guess what I think?'
bingo = False
while bingo == False:
answer = input()
bingo = isEqual(answer, num)
在isEqual函数内部,会输出answer和num的比较结果,如果相等的话,bingo会得到返回值True,否则bingo得到False,循环连续。
函数可以把某个功能的代码分离出来,在须要的时候重复利用,就像拼装积木一样,这会让程序构造更清晰。
【Python 第23课】 if, elif, else
本日补充之前讲过的一个语句:if。为什么我跳要着讲,由于我的想法是先讲下最最基本的观点,让你能用起来,之后你熟习了,再说些细节。
关于if,可以发送数字『7』回顾之前的课程。它除了我们之前讲的用法外,还可以合营elif和else利用,使程序的运行顺序更灵巧。
之前说的if,是:“如果”条件知足,就做xxx,否则就不做。
else顾名思义,便是:“否则”就做yyy。
当if后面的条件语句不知足时,与之相对应的else中的代码块将被实行。
if a == 1:
print 'right'
else
print 'wrong'
elif意为else if,含义便是:“否则如果”条件知足,就做yyy。elif后面须要有一个逻辑判断语句。
当if条件不知足时,再去判断elif的条件,如果知足则实行个中的代码块。
if a == 1:
print 'one'
elif a == 2:
print 'two'
if, elif, else可组成一个整体的条件语句。
if是必须有的;
elif可以没有,也可以有很多个,每个elif条件不知足时会进入下一个elif判断;
else可以没有,如果有的话只能有一个,必须在条件语句的末了。
if a == 1:
print 'one'
elif a == 2:
print 'two'
elif a == 3:
print 'three'
else:
print 'too many'
我们昨天刚改写的小游戏中的函数isEqual,用了三个条件判断,我们可以再改写成一个包含if...elif...else的构造:
def isEqual(num1, num2):
if num1<num2:
print 'too small'
return False;
elif num1>num2:
print 'too big'
return False;
else:
print 'bingo'
return True
【Python 第24课】 if的嵌套
和for循环一样,if也可以嵌套利用,即在一个if/elif/else的内部,再利用if。这有点类似于电路的串联。
if 条件1:
if 条件2:
语句1
else:
语句2
else:
if 条件2:
语句3
else:
语句4
在上面这个两层if的构造中,当
条件1为True,条件2为True时,
实行语句1;
条件1为True,条件2为False时,
实行语句2;
条件1为False,条件2为True时,
实行语句3;
条件1为False,条件2为False时,
实行语句4。
假设须要这样一个程序:
我们先向程序输入一个值x,再输入一个值y。(x,y)表示一个点的坐标。程序要见告我们这个点处在坐标系的哪一个象限。
x>=0,y>=0,输出1;
x<0,y>=0,输出2;
x<0,y<0,输出3;
x>=0,y<0,输出4。
你可以分别写4个if,也可以用if的嵌套:
if y >= 0:
if x >= 0:
print 1
else:
print 2
else:
if x < 0:
print 3
else:
print 4
从流程图上来看,该当是这样。
【Python 第25课】 初探list
昨天课程里的例子有点没说清楚,有同学表示写在程序里发生了缺点。由于我当时写这个代码片段时,心里假想着这是在一个函数的内部,以是用了return语句。如果你没有把它放在函数里,那return的话就会出错,你可以换成print。
本日要说一个新观点--list,中文可以翻译成列表,是用来处理一组有序项目的数据构造。想象一下你的购物清单、待办事情、手机通讯录等等,它们都可以看作是一个列表。说它是新观点也不算确切,由于我们之前已经用过它,就在这个语句里:
for i in range(1, 10):
#此处略过数行代码
看出来list在哪里了吗?你试一下:
print range(1,10)
得到的结果是:
[1, 2, 3, 4, 5, 6, 7, 8, 9]
这便是一个list。它由range产生。把上面那个for循环语句写成:
l = range(1, 10)
for i in l:
效果是一样的。
于是可以看出,for循环做的事情实在便是遍历一个列表中的每一项,每次循环都把当前项赋值给一个变量(这里是i),直到列表结束。
我们也可以定义自己的列表,格式便是用中括号包围、逗号隔开的一组数值:
l = [1, 1, 2, 3, 5, 8, 13]
可以用print输出这个列表:
print l
同样也可以用for...in遍历这个列表,依次输出了列表中的每一项:
for i in l:
print l,
列表中的元素也可以是别的类型,比如:
l = ['meat', 'egg', 'fish', 'milk']
乃至是不同类型的稠浊:
l = [365, 'everyday', 0.618, True]
l身为一个列表,有一些特有的功能,这个我们下回再说。
【Python 第26课】 操作list
上周给list开了个头,知道了什么是list。假设我们现在有一个list:
l = [365, 'everyday', 0.618, True]
除了用for...in遍历l中的元素,我们还能做点啥?
1. 访问list中的元素
list中的每个元素都对应一个递增的序号。与现实中习气的序号不同在于,打算机中的计数常日都是从0开始,python也不例外。如果你记不清这个而导致了缺点,请去听一下孙燕姿的《爱从零开始》。
要访问l中的第1个元素365,只要用l[0]就可以了。依次类推,
print l[1]
就会输出'everyday'
把稳,你不能访问一个不存在的元素,比如l[10],程序就会报错,提示你index越界了。
2. 修正list中的元素
修正list中的某一个元素,只须要直接给那个元素赋值就可以了:
l[0] = 123
输出l,得到[123, 'everyday', 0.618, True],第1个元素已经从365被改成了123。
3. 向list中添加元素
list有一个append方法,可以增加元素。以l这个列表为例,调用的方法是:
l.append(1024)
输出l,你会看到[123, 'everyday', 0.618, True, 1024],1024被添加到了l,成为末了一个元素。(第一个元素在上一步被改成了123)
然后同样可以用l[4]得到1024。
4. 删除list中的元素
删除list中的某一个元素,要用到del:
del l[0]
输出l,得到['everyday', 0.618, True, 1024]。这时候再调用l[0],会得到'everyday',其他元素的序号也相应提前。
以上这些命令,你可以直接在python shell中考试测验。
#==== 点球小游戏 ====#
我打算从本日开始,每天说一点这个小游戏的做法。方法有很多种,我只是供应一种参考。你可以按照自己喜好的办法去做,那样她才是属于你的游戏。
先说一下方向的设定。我的想法比较大略,便是左中右三个方向,用字符串来表示。射门或者扑救的时候,直接输入方向。以是这里我准备用raw_input。有同学是用1-8的数字来表示八个方向,每次输入一个数字,这也是可以的。不过这样守门员要扑住的概率可就小多了。
至于电脑随机挑选方向,如果你是用数字表示,就用我们之前讲过的randint来随机就行。不过我这次打算用random的另一个方法:choice。它的浸染是从一个list中随机挑选一个元素。
于是,罚球的过程可以这样写:
from random import choice
print 'Choose one side to shoot:'
print 'left, center, right'
you = raw_input()
print 'You kicked ' + you
direction = ['left', 'center', 'right']
com = choice(direction)
print 'Computer saved ' + com
if you != com:
print 'Goal!'
else:
print 'Oops...'
反之亦然,不赘述。
list有两类常用操作:索引(index)和切片(slice)。
昨天我们说的用[]加序号访问的方法便是索引操作。
除了指定位置进行索引外,list还可以处理负数的索引。连续用昨天的例子:
l = [365, 'everyday', 0.618, True]
l[-1]表示l中的末了一个元素。
l[-3]表示倒数第3个元素。
切片操作符是在[]内供应一对可选数字,用:分割。冒号前的数表示切片的开始位置,冒号后的数字表示切片到哪里结束。同样,计数从0开始。
把稳,开始位置包含在切片中,而结束位置不包括。
l[1:3]
得到的结果是['everyday', 0.618]。
如果不指定第一个数,切片就从列表第一个元素开始。
如果不指定第二个数,就一贯到末了一个元素结束。
都不指定,则返回全体列表的一个拷贝。
l[:3]
l[1:]
l[:]
同索引一样,切片中的数字也可以利用负数。比如:
l[1:-1]
得到['everyday', 0.618]
#==== 点球小游戏 ====#
昨天有了一次罚球的过程,本日我就让它循环5次,并且记录下得分。先赓续定胜负。
用score_you表示你的得分,score_com表示电脑得分。开始都为0,每进一球就加1。
from random import choice
score_you = 0
score_com = 0
direction = ['left', 'center', 'right']
for i in range(5):
print '==== Round %d - You Kick! ====' % (i+1)
print 'Choose one side to shoot:'
print 'left, center, right'
you = raw_input()
print 'You kicked ' + you
com = choice(direction)
print 'Computer saved ' + com
if you != com:
print 'Goal!'
score_you += 1
else:
print 'Oops...'
print 'Score: %d(you) - %d(com)\n' % (score_you, score_com)
print '==== Round %d - You Save! ====' % (i+1)
print 'Choose one side to save:'
print 'left, center, right'
you = raw_input()
print 'You saved ' + you
com = choice(direction)
print 'Computer kicked ' + com
if you == com:
print 'Saved!'
else:
print 'Oops...'
score_com += 1
print 'Score: %d(you) - %d(com)\n' % (score_you, score_com)
把稳:手机上代码有可能会被换行。
这段代码里有两段相似度很高,想想是不是可以有办法可以用个函数把它们分离出来。
【Python 第28课】 字符串的分割
字符串和list之间有很多不得不说的事。比如有同学想要用python去自动抓取某个网页上的下载链接,那就须要对网页的代码进行处理。处理的过程中,免不了要在字符串和list之间进行很多操作。
我们先从最基本的开始。假设你现在拿到了一个英语句子,须要把这个句子中的每一个单词拿出来单独处理。
sentence = 'I am an Englist sentence'
这时就须要对字符串进行分割。
sentence.split()
split()会把字符串按照个中的空格进行分割,分割后的每一段都是一个新的字符串,终极返回这些字符串组成一个list。于是得到
['I', 'am', 'an', 'Englist', 'sentence']
原来字符串中的空格不再存在。
除了空格外,split()同时也会按照换行符\n,制表符\t进行分割。以是该当说,split默认是按照空缺字符进行分割。
之以是说默认,是由于split还可以指定分割的符号。比如你有一个很长的字符串
section = 'Hi. I am the one. Bye.'
通过指定分割符号为'.',可以把每句话分开
section.split('.')
得到
['Hi', ' I am the one', ' Bye', '']
这时候,'.'作为分割符被去掉了,而空格仍旧保留在它的位置上。
把稳末了那个空字符串。每个'.'都会被作为分割符,纵然它的后面没有其他字符,也会有一个空串被分割出来。例如
'aaa'.split('a')
将会得到['', '', '', ''],由四个空串组成的list。
既然有把字符串分割成list,那也相应就有把list连接成字符串,这个来日诰日说。
#==== 点球小游戏 ====#
在昨天代码的根本上,我们加上胜负判断,如果5轮结束之后是平分,就连续踢。
以是我们把一轮的过程单独拿出来作为一个函数kick,在5次循环之后再加上一个while循环。
其余,这里把之前的score_you和score_com合并成了一个score数组。这里的缘故原由是,要让kick函数里用到外部定义的变量,须要利用全局变量的观点。暂时想避免说这个,而用list不存在这个问题。
from random import choice
score = [0, 0]
direction = ['left', 'center', 'right']
def kick():
print '==== You Kick! ===='
print 'Choose one side to shoot:'
print 'left, center, right'
you = raw_input()
print 'You kicked ' + you
com = choice(direction)
print 'Computer saved ' + com
if you != com:
print 'Goal!'
score[0] += 1
else:
print 'Oops...'
print 'Score: %d(you) - %d(com)\n' % (score[0], score[1])
print '==== You Save! ===='
print 'Choose one side to save:'
print 'left, center, right'
you = raw_input()
print 'You saved ' + you
com = choice(direction)
print 'Computer kicked ' + com
if you == com:
print 'Saved!'
else:
print 'Oops...'
score[1] += 1
print 'Score: %d(you) - %d(com)\n' % (score[0], score[1])
for i in range(1):
print '==== Round %d ====' % (i+1)
kick()
while(score[0] == score[1]):
i += 1
print '==== Round %d ====' % (i+1)
kick()
if score[0] > score[1]:
print 'You Win!'
else:
print 'You Lose.'
【Python第29课】连接list
本日要说的方法是join。它和昨天说的split恰好相反:split是把一个字符串分割成很多字符串组成的list,而join则是把一个list中的所有字符串连接成一个字符串。
join的格式有些奇怪,它不是list的方法,而是字符串的方法。首先你须要有一个字符串作为list中所有元素的连接符,然后再调用这个连接符的join方法,join的参数是被连接的list:s = ';' li = ['apple', 'pear', 'orange'] fruit = s.join(li) print fruit 得到结果'apple;pear;orange'。 从结果可以看到,分号把list中的几个字符串都连接了起来。 你也可以直接在shell中输入: ';'.join(['apple', 'pear', 'orange']) 得到同样的结果。 用来连接的字符串可以是多个字符,也可以是一个空串: ''.join(['hello', 'world']) 得到'helloworld',字符串被无缝连接在一起。
#==== 点球小游戏 ====# 昨天的代码已经能实现一个完全的点球比赛过程,但有同学提出:这不符合真实比赛规则,说好的提前结束比赛呢?!
关于这个,我想了下,可以有好几种办理方法,但彷佛都有些绕。以是放到来日诰日单独来讲,把这个小游戏扫尾。
之前说了,字符串和list有很多不得不说的事。本日就来说说字符串的一些与list相似的操作。1. 遍历通过for...in可以遍历字符串中的每一个字符。word = 'helloworld'for c in word: print c2. 索引访问通过[]加索引的办法,访问字符串中的某个字符。print word[0]print word[-2]与list不同的是,字符串能通过索引访问去变动个中的字符。word[1] = 'a'这样的赋值是缺点的。3. 切片通过两个参数,截取一段子串,详细规则和list相同。print word[5:7]print word[:-5]print word[:]4. 连接字符join方法也可以对字符串利用,浸染便是用连接符把字符串中的每个字符重新连接成一个新字符串。不过以为这个方法有点鸡肋,不知道在什么场景下会用到。newword = ','.join(word)