首页 » PHP教程 » php输出数数技巧_python根本教程至60课 第一部分

php输出数数技巧_python根本教程至60课 第一部分

访客 2024-11-29 0

扫一扫用手机浏览

文章目录 [+]

为什么用Python作为编程入门措辞?缘故原由很大略。
每种措辞都会有它的支持者和反对者。
去Google一下“why python”,你会得到很多结果,诸如运用范围广泛、开源、社区生动、丰富的库、跨平台等等等等,也可能找到不少对它的批评,格式去世板、效率低、海内用的人很少之类。
不过这些优缺陷的权衡都是程序员们的烦恼。
作为一个想要学点编程入门的初学者来说,大略才是最主要的。
当学C++的同学还在写链表,学Java的同学还在折腾运行环境的时候,学Python的你已经像上图一样飞上天了。
当然,除了大略,还有一个主要的缘故原由:由于我现在每天都在写Python。
虽然往后可能会讲些手机编程之类(如果真的有那么一天π_π),但目前这时候,各位也就看菜用饭,有啥吃啥了。
每天5分钟,先别计较太多。
况且Python还是挺有利于形成良好编程思维的一门措辞。
推举两本我个人比较喜好的Python入门书本,一本是《简明Python教程》,我自己最开始便是看着它学的,接下来也会大体参考里面的内容讲。
另一本是《Head First Python》,Head First系列都是非常浅近易懂的入门类书本,虽然我只瞄过几眼,但觉得还是不错的。

【Python 第1课】安装

php输出数数技巧_python根本教程至60课 第一部分

进入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的天下里发出第一声呜咽。

php输出数数技巧_python根本教程至60课 第一部分
(图片来自网络侵删)

嗯。


如果这么几步你还是被绕晕了,没紧要,我还留了一手:打开你的浏览器,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',字符串被无缝连接在一起。

#==== 点球小游戏 ====# 昨天的代码已经能实现一个完全的点球比赛过程,但有同学提出:这不符合真实比赛规则,说好的提前结束比赛呢?!
关于这个,我想了下,可以有好几种办理方法,但彷佛都有些绕。
以是放到来日诰日单独来讲,把这个小游戏扫尾。

【Python 第30课】 字符串的索引和切片

之前说了,字符串和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)

标签:

相关文章

介绍种子码,科技赋能下的信息时代新篇章

随着互联网技术的飞速发展,信息传播方式发生了翻天覆地的变化。在这个信息爆炸的时代,如何高效、安全地管理信息成为一大难题。种子码作为...

PHP教程 2025-01-03 阅读0 评论0

介绍空网名的魅力与操作指南

在互联网高度发达的今天,网络已成为人们日常生活的一部分。无论是社交媒体、游戏还是其他在线平台,网名作为个人在网络世界的代表,具有举...

PHP教程 2025-01-03 阅读0 评论0

介绍空号激活,唤醒沉睡资源的智慧之旅

在信息时代,手机号码作为个人身份的重要标识,已成为人们日常生活中不可或缺的一部分。随着通讯市场的不断发展,大量空号资源逐渐闲置,如...

PHP教程 2025-01-03 阅读0 评论0

介绍竞争度,如何精准介绍市场竞争态势

在市场经济中,竞争无处不在。竞争度作为衡量市场竞争态势的重要指标,对企业的发展具有重要意义。本文将从竞争度的定义、计算方法、应用领...

PHP教程 2025-01-03 阅读0 评论0

介绍猫激活码,介绍猫咪世界的神秘钥匙

猫咪,这个可爱的小生灵,自古以来就备受人们喜爱。随着互联网的普及,越来越多的猫咪爱好者加入了这个大家庭。要想真正走进猫咪的世界,就...

PHP教程 2025-01-03 阅读0 评论0

介绍玻璃杯扣法,巧妙方法让生活更便捷

玻璃杯,作为日常生活中不可或缺的饮品容器,其扣法一直备受关注。无论是家庭聚餐、朋友聚会,还是商务宴请,掌握玻璃杯的扣法,无疑能增添...

PHP教程 2025-01-03 阅读0 评论0