笨方法学Python

There are 19 entries for the tag 笨方法学Python

新手学python-笨方法学python-ex33-While 循环

LC 2015-11-14 Python

跟着笨方法学python个教程学习,边学边做习题边记录。 新手学python-笨方法学python-ex33-While 循环 - 学习记录 课程内容: 接下来是一个更在你意料之外的概念: while-loop``(while 循环)。``while-loop 会一直执行它下面的代码片段,直到它对应的布尔表达式为 False 时才会停下来。 等等,你还能跟得上这些术语吧?如果你的某一行是以 : (冒号, colon)结尾,那就意味着接下来的内容是一个新的代码片段,新的代码片段是需要被缩进的。只有将代码用这样的方式格式化,Python 才能知道你的目的。如果你不太明白这一点,就回去看看“if 语句”和“函数”的章节,直到你明白为止。 接下来的练习将训练你的大脑去阅读这些结构化的代码。这和我们将布尔表达式烧录到你的大脑中的过程有点类似。 回到 while 循环,它所作的和 if 语句类似,也是去检查一个布尔表达式的真假,不一样的是它下面的代码片段不是只被执行一次,而是执行完后再调回到 while 所在的位置,如此重复进行,直到 while 表达式为 False 为止。 While 循环有一个问题,那就是有时它会永不结束。如果你的目的是循环到宇宙毁灭为止,那这样也挺好的,不过其他的情况下你的循环总需要有一个结束点。 为了避免这样的问题,你需要遵循下面的规定: 1.尽量少用while-loop,大部分时候for-loop是更好的选择。 2.重复检查你的while语句,确定你测试的布尔表达式最终会变成False。 3.如果不确定,就在while-loog的结尾打印出你要测试的值。看看它的变化。 在这节练习中,你将通过上面的三样事情学会while-loop: i = 0 numbers= [] while i < 6: print "At the top i is %d" % i numbers.append(i) i = i + 1 print "Numbers now: ", numbers print "At the bottom i is %d" % i print "The numbers: " for num in numbers: print num     运行该程序: $python ex33.py At the top i is 0 Numbers now: [0] At the...

新手学python-笨方法学python-ex34-访问列表的元素

LC 2015-11-14 Python

跟着笨方法学python个教程学习,边学边做习题边记录。 新手学python-笨方法学python-ex34-访问列表的元素 - 学习记录 课程内容: 列表的用处很大,但只有你能访问里边的内容时它才能发挥出作用来。你已经学会了按顺序读出列表的内容,但如果你要得到第 5 个元素该怎么办呢?你需要知道如何访问列表中的元素。访问第一个元素的方法是这样的: animals = ['bear', 'tiger', 'penguin', 'zebra'] bear = animals[0] 你定义一个 animals 的列表,然后你用 0 来获取第一个元素?! 这是怎么回事啊?因为数学里边就是这样,所以 Python 的列表也是从 0 开始的。虽然看上去很奇怪,这样定义其实有它的好处,而且实际上设计成 0 或者 1 开头其实都可以, 最好的解释方式是将你平时使用数字的方式和程序员使用数字的方式做对比。 假设你在观看上面列表中的四种动物(['bear', 'tiger', 'penguin', 'zebra']) 的赛跑,而它们比赛的名词正好跟列表里的次序一样。这是一场很激动人心的比赛,因为这些动物没打算吃掉对方,而且比赛还真的举办起来了。结果你的朋友来晚了,他想知道谁赢了比赛,他会问你“嘿,谁是第 0 名”吗?不会的,他会问“嘿,谁是第 1 名?” 这是因为动物的次序是很重要的。没有第一个就没有第二个,没有第二个也没有第三个。第零个是不存在的,因为零的意思是什么都没有。“什么都没有”怎么赢比赛嘛,完全不合逻辑。这样的数字我们称之为“序数(ordinal number)”,因为它们表示的是事物的顺序。 而程序员不能用这种方式思考问题,因为他们可以从列表的任何一个位置取出一个元素来。对程序员来说,上述的列表更像是一叠卡片。如果他们想要 tiger,就抓它出来,如果想要zebra,也一样抓取出来。要随机地抓取列表里的内容,列表的每一个元素都应该有一个地址,或者一个 “index(索引)”,而最好的方式是使用以 0 开头的索引。相信我说的这一点吧,这种方式获取元素会更容易。这类的数字被称为“基数(cardinal number)”,它意味着你可以任意抓取元素,所以我们需要一个 0 号元素。 那么,这些知识对于你的列表操作有什么帮助呢?很简单,每次你对自己说“我要第 3 只动物”时,你需要将“序数”转换成“基数”,只要将前者减 1 就可以了。第 3 只动物的索引是 2,也就是 penguin。由于你一辈子都在跟序数打交道,所以你需要用这种方式来获得基数,只要减 1 就都搞定了。 记住: ordinal == 有序,以 1 开始;cardinal == 随机选取, 以 0 开始。 让我们练习一下。定义一个动物列表,然后跟着做后面的练习,你需要写出所指位置的动物名称。如果我用的是“1st, 2nd”等说法,那说明我用的是序数,所以你需要减去 1。如果我给你的是基数(0, 1, 2),你只要直接使用即可。 .. code-block:: python animals = [‘bear’, ‘python’, ‘peacock’, ‘kangaroo’, ‘whale’, ‘platypus’] 1.The animal at 1. 2.The 3rd animal. 3.The 1st animal. 4.The animal at 3. 5.The 5th animal. 6.The animal at 2. 7.The 6th animal. 8.The animal at 4. 对于上述每一条,以这样的格式写出一个完整的句子:“The 1st animal is at 0...

新手学python-笨方法学python-ex32-循环和列表

LC 2015-11-13 Python

跟着笨方法学python个教程学习,边学边做习题边记录。 新手学python-笨方法学Python-ex32-循环和列表 - 学习记录 课程内容: 现在你应该有能力写更有趣的程序处理了。如果你能一直跟得上,你应该已经看出将“if”和“布尔表达式”结合起来可以让程序作出一些智能化的事情。 然而,我们的程序还需要能很快地完成重复的事情,这节习题中我们将使用for-loop(for循环)来创建和打印出各种各样的列表。在做的过程中,你会逐渐明白它们是怎么回事。现在我不会告诉你,你需要自己找到答案。 在你开始使用for循环之前,你需要再某个位置存放循环的结果。最好的方法是使用列表(list),顾名思义,它就是一个按顺序存放东西的容器。列表并不复杂,你只是要学习一点新的语法。首先我们看看如何创建列表: hairs = ['brown', 'blond', 'red'] eyes = ['brown', 'blue', 'green'] weights = [1, 2, 3, 4] 你要做的是以[(左方括号)开头“打开”列表,然后写下你要放入列表的东西,以逗号给开,就跟函数的参数一样,最后你要用](右方括号)结束列表的定义。 然后Python接收这个列表以及里边所有的内容,将其赋给一个变量。 Warning 对于不会编程的人来说这是一个难点。习惯性思维告诉你的大脑大地是平的。记得上一个练习中的 if 语句嵌套吧,你可能觉得要理解它有些难度,因为生活中一般人不会去像这样的问题,但这样的问题在编程中几乎到处都是。你会看到一个函数调用另外一个包含 if 语句的函数,其中又有嵌套列表的列表。如果你看到这样的东西一时无法弄懂,就用纸笔记下来,手动分割下去,直到弄懂为止。 现在我们将使用循环创建一些列表,然后将它们打印出来。 the_count = [1, 2, 3, 4, 5] fruits = ['apples', 'oranges', 'pears', 'apricots'] change = [1, 'pennies', 2, 'dimes', 3, 'quarters'] # this first kind of for-loop goes through a list for number in the_count: print "This is count %d" % number # same as above for fruit in fruits: print "A fruit of type: %s" % fruit # also we can go through mixd lists too # notice we have to use %r sine we don't know...

新手学python-笨方法学python-ex31-作出决定

LC 2015-11-12 Python

跟着笨方法学python个教程学习,边学边做习题边记录。 新手学python-笨方法学Python-ex31-作出决定 - 学习记录 课程内容: 这本书的上半部分你打印了一些东西,而且调用了函数,不过一切都是直线式进行的。你的脚本从最上面一行开始,一路运行到结束,但其中并没有决定程序流向的分支点。现在你已经学了 if, else, 和 elif ,你就可以开始创建包含条件判断的脚本了。 上一个脚本中你写了一系列的简单提问测试。这节的脚本中,你将需要向用户提问,依据用户的答案来做出决定。把这个Python脚本写下来,多多鼓捣一阵子,看看它的工作原理是什么。   print "You enter a dark room with two doors. Do you go through door #1 or door #2?" door = raw_input("> ") if door == "1": print "There's a giant bear here eating a cheese cake. What do you do?" print "1. Take the cake." print "2. Scream at the bear." bear = raw_input("> ") if bear == "1": print "The bear eats your...

新手学python-笨方法学python-ex26-恭喜你,现在可以考试了!

LC 2015-11-10 Python

跟着笨方法学python个教程学习,边学边做习题边记录。 新手学python-笨方法学Python-ex26-恭喜你,现在可以考试了! - 学习记录 课程内容: 你已经差不多完成这本书的前半部分了,不过后半部分才是更有趣的。你将学到逻辑,并通过条件判断实现有用的功能。 在你继续学习之前,你有一道试题要做。这道试题很难,因为它需要你修正别人写的代码。当你成为程序员以后,你将需要经常面对别的程序员的代码,也许还有他们的傲慢态度,他们会经常说自己的代码是完美的。 这样的程序员是自以为是不在乎别人的蠢货。优秀的科学家会对他们自己的工作持怀疑态度,同样,优秀的程序员也会认为自己的代码总有出错的可能,他们会先假设是自己的代码有问题,然后用排除法清查所有可能是自己有问题的地方,最后才会得出“这是别人的错误”这样的结论。 在这节练习中,你将面对一个水平糟糕的程序员,并改好他的代码。我将习题 24 和 25 胡乱拷贝到了一个文件中,随机地删掉了一些字符,然后添加了一些错误进去。大部分的错误是Python 在执行时会告诉你的,还有一些算术错误是你要自己找出来的。再剩下来的就是格式和拼写错误了。 所有这些错误都是程序员很容易犯的,就算有经验的程序员也不例外。 你的任务是将此文件修改正确,用你所有的技能改进这个脚本。你可以先分析这个文件,或者你还可以把它像学期论文一样打印出来,修正里边的每一个缺陷,重复修正和运行的动作,直到这个脚本可以完美地运行起来。在整个过程中不要寻求帮助,如果你卡在某个地方无法进行下去,那就休息一会晚点再做。 就算你需要几天才能完成,也不要放弃,直到完全改对为止。 最后要说的是,这个练习的目的不是写程序,而是修正现有的程序,你需要访问下面的网站: http://learnpythonthehardway.org/book/exercise26.txt 从那里把代码复制粘贴过来,命名为 ex26.py,这也是本书唯一一处允许你复制粘贴的地方。 def break_words(stuff): """This function will break up words for us.""" words = stuff.split(' ') return words def sort_words(words): """Sorts the words.""" return sorted(words) def print_first_word(words) """Prints the first word after popping it off.""" word = words.poop(0) print word def print_last_word(words): """Prints the last word after popping it off.""" word = words.pop(-1 print word def sort_sentence(sentence): """Takes in a full sentence...

新手学python-笨方法学python-ex25-更多更多的练习

LC 2015-11-09 Python

跟着笨方法学Python个教程学习,边学边做习题边记录。 新手学python-笨方法学python-ex25-更多更多的练习 - 学习记录 课程内容: 我们将做一些关于函数和变量的练习,以确认你真正掌握了这些知识。这节练习对你来说可以说是一本道:写程序,逐行研究,弄懂它。 不过这节练习还是有些不同,你不需要运行它,取而代之,你需要将它导入到 python 里通过自己执行函数的方式运行。 def break_words(stuff): """This function will break up words for us.""" words = stuff.split(' ') return words def sort_words(words): """Sorts the words.""" return sorted(words) def print_first_word(words): """Prints the first word after popping it off.""" word = words.pop(0) print word def print_last_word(words): """Prints the last word after popping it off.""" word = words.pop(-1) print word def sort_sentence(sentence): """Takes in a full sentence...

新手学python-笨方法学python-ex21-函数可以返回东西

LC 2015-11-07 Python

跟着笨方法学python个教程学习,边学边做习题边记录。 新手学python-笨方法学python-ex21-函数可以返回东西 - 学习记录 课程内容: 你已经学过使用 = 给变量命名, 以及将变量定义为某个数字或者字符串。接下来我们将让你见证更多奇迹。 我们要演示给你的是如何使用 = 以及一个新的python词汇return来将变量设置为“一个函数的值”。 有一点你需要及其注意,不过我们暂且不讲,先撰写下面的脚本吧: def add(a, b): print "ADDIND %d + %d" % (a, b) return a + b def subtract(a, b): print "SUBTRACTING %d - %d" % (a, b) return a - b def multiply(a, b): print "MULTIPLYING %d * %d" % (a, b) return a * b def divide(a, b): print "DIVIDING %d / %d" % (a, b) return a / b print "Let's do some math with just functions!" age = add(30, 5) height = subtract(78,...

新手学python-笨方法学python-ex19-函数和变量

LC 2015-11-05 Python

跟着笨方法学python个教程学习,边学边做习题边记录。 新手学python-笨方法学Python-ex19-函数和变量 - 学习记录 课程内容: 函数这个概念也许承载了太多的信息量,不过别担心。只要坚持做这些练习,对照上个练习中的检查点检查一遍这次的联系,你最终会明白这些内容的。 有一个你可能没有注意到的细节,我们现在强调一下:函数里边的变量和脚本里边的变量之间是没有连接的。下面这个练习可以让你对这一点有更多的思考: def cheese_and_crackers(cheese_count, boxes_of_crackers): print "You have %d cheeses!" % cheese_count print "You have %d boxes of crackers!" % boxes_of_crackers print "Man that's enough for a party!" print "Get a blanket.\n" print "We can just give the function numbers directly:" cheese_and_crackers(20, 30) print "Or, we can use variables from our script:" amount_of_cheese = 10 amount_of_crackers = 50 cheese_and_crackers(amount_of_cheese, amount_of_crackers) print "We can even do math inside too:" cheese_and_crackers(10 + 20, 5 + 6) print "And we can combine the two, variables and math:" cheese_and_crackers(amount_of_cheese + 100, amount_of_crackers + 1000) 通过这个练习,你看到我们给我们的函数 cheese_and_crackers 很多的参数,然后在函数里把它们打印出来。我们可以在函数里用变量名,我们可以在函数里做运算,我们甚至可以将变量和运算结合起来。 从一方面来说,函数的参数和我们的生成变量时用的 = 赋值符类似。事实上,如果一个物件你可以用...

新手学python-笨方法学python-ex18-命名、变量、代码、函数

LC 2015-11-04 Python

跟着笨方法学python个教程学习,边学边做习题边记录。 新手学python-笨方法学python-ex18-命名、变量、代码、函数 - 学习记录 课程内容: 标题包含的内容够多的吧? 接下来我要教你“函数(function)”了!咚咚锵!说到函数,不一样的人会对它又不一样的理解和使用方法,不过我只会教你现在能用的最简单的使用方式。 函数可以做三样事情:  1.它们给代码片段命名,就跟“变量”给字符串和数字命名一样。  2.它们可以接受参数,就跟你的脚本接受argv一样  3.通过使用#1和#2,它们可以让你创建“微型脚本”或者“小命令”   你可以使用def新建函数。我将让你创建四个不同的函数,它们工作起来和你的脚本一样。然后我会演示给你各个函数之间的关系。 # this one is like your scripts with argv def print_two(*args): arg1, arg2 = args print "arg1: %r, arg2: %r" % (arg1, arg2) # ok, that *args is actually pointless, we can just do this def print_two_again(arg1, arg2): print "arg1: %r, arg2: %r" % (arg1, arg2) # this is just take one argument def print_one(arg1): print "arg1: %r" % arg1 # this on takes no arguments def print_none(): print "I got nothing." print_two("Zed","Shaw") print_two_again("Zed","Shaw") print_one("First!") print_none()   让我们把你的第一个函数print_two拆解一下,这个函数和你写脚本的方式差不多,因此你看上去应该会觉得比较眼熟:     1.首先我们告诉Python创建一个函数,我们使用到的命令是def,也就是“定义(define)”的意思。   2.紧接着def的是函数的名称。本例中它的名称是“print_two”,但是名字可以随便取,就叫“peanuts”也没关系。但最好函数的名称能够体现出函数的功能来。   3.然后我们告诉函数我们需要*args(asterisk args),这和脚本的argv非常相似,参数必须放在圆括号()中才能正常工作。   4.接着我们用冒号: 结束本行,然后开始下一行缩进。   5.冒号以下,使用4个空格缩进的行都是属于print_two这个函数的内容。其中第一行的作用是将参数解包,这和脚本参数解包的原理差不多。   6.为了演示它的工作原理,我们把解包后的每个参数都打印出来,这和我们在之前脚本练习中所作的类似。   函数print_two的问题是:它并不是创建函数最简单的方法。在Python函数中我们可以跳过整个参数解包的过程。直接使用()里边的名称作为变量名。这就是print_two_again实现的功能。 接下来的例子是print_one,它向你演示了函数如何接受单个参数。 最后一个例子是print_none,它向你演示了函数可以不接受任何参数。 Warning 如果你不太能看懂上面的内容也别气馁。后面我们还有更多的练习向你展示如何创建和使用函数。现在你只要把函数理解成“迷你脚本”就可以了。 运行上面的脚本: $python...

新手学python-笨方法学python-ex17-更多文件操作

LC 2015-11-03 Python

跟着笨方法学python个教程学习,边学边做习题边记录。 新手学python-笨方法学python-ex17-更多文件操作 - 学习记录 课程内容: 现在让我们再学几种文件操作。我们将编写一个Python脚本,将一个文件中的内容拷贝到另外一个文件中。这个脚本很短,不过它会让你对于文件操作有更多的了解。 from sys import argv from os.path import exists script, from_file, to_file = argv print "Copying from %s to %s" % (from_file, to_file) #we could do these two on one line too, how? input = open(from_file) indata = input.read() print "The input file is %d bytes long" % len(indata) print "Does the output file exist? %r" % exists(to_file) print "Ready, hit RETURN to continue, CTRL-C to abort." raw_input() output = open(to_file, 'w') output.write(indata) print "Alright, all done." output.close() input.close()   你应该很快注意到了我们import了又一个很好用的命令exists。 这个命令将文件名字符串作为参数,如果文件存在的话,它将返回True,否则将返回False。在本书的下半部分,我们将使用这个函数做很多的事情,不过现在你应该学会怎样通过import调用它。 通过使用import,你可以在自己的代码中直接使用其他更厉害的程序员写的大量免费代码,这样你就不需要重写一遍了。 运行上面的程序:     C:\Documents and Settings\Administrator>python ex17.py ex17-sample.txt copied.txt We are going to copy ex17-sample.txt to copied.txt The input file is 80 bytes long. Does the output file exist? False. Ready, hit RETURN to continue, or hit CTRL-C to abort. ? Allright, all done. $ 我们再看看copied.txt这个文件的内容,跟ex17-sample.txt的一样: To...

新手学python-笨方法学python-ex16-读写文件

LC 2015-11-02 Python

跟着笨方法学python个教程学习,边学边做习题边记录。 新手学python-笨方法学Python-ex16-读写文件件 - 学习记录 课程内容: 了解各种文件相关的命令(方法/函数): close - 关闭文件。跟你编辑器的 文件->保存.. 一个意思。 read - 读取文件内容。你可以把结果赋给一个变量。 readline - 读取文本文件中的一行。 truncate - 清空文件,请小心使用该命令。 write(stuff) - 将stuff写入文件。 这是你现在该知道的重要命令。有些命令需要接受参数,这对我们并不重要。你只要记住write的用法就可以了。write需要接收一个字符串作为参数,从而将该字符串写入文件。 让我们来使用这些命令做一个简单的文本编辑器吧: from sys import argv script, filename = argv print "We're going to erase %r." % filename print "If you don't want that, hit CTRL-C(^C)." print "If you do want that, hit RETURN." raw_input("?") print "Opening the file..." target = open(filename, 'w') print "Truncating the file. Goodbye!" target.truncate() print "Now I'm going to ask you for three lines." line1 = raw_input("line 1: ") line2 = raw_input("line 2: ") line3 = raw_input("line 3: ") print "I'm going to write these to the file." target.write(line1) target.write("\n") target.write(line2) target.write("\n") target.write(line3) target.write("\n") print "And finally,we close it." target.close() 这个文件是够大的,大概是你键入过的最大的文件。所以慢慢来,仔细检查,让它能运行起来。 有一个小技巧可以让你的脚本一部分一部分地运行起来。先写1-8行,让它运行起来;再多运行5行,再接着多运行几行,一次类推,直到整个脚本运行起来为止。 运行该脚本: $python ex16.py ex16-sample.txt We're going to erase 'ex16-sample.txt'. If you don't want that, hit CTRL-C(^C). If you do want...

新手学python-笨方法学python-ex14-提示和传递

LC 2015-10-30 Python

跟着笨方法学Python个教程学习,边学边做习题边记录。 新手学python-笨方法学python-ex14-提示和传递 - 学习记录 上一小节的加分题3想不出来argv和raw_input怎么结合使用,就分开使用了。刚好这一小节学到,真好。 本小节学习内容: 让我们使用argv和raw_input一起来向用户提一些特别的问题。下一节习题你会学习如何读写文件,这节练习是下节的基础。 这道练习题里我们将略微不同的方法使用raw_input,让它打出一个简单的>作为提示符。这和一些游戏中的方式类似,例如Zork或者Adventure这两款游戏。 from sys import argv script, user_name = argv prompt = '>' print "Hi %s,I'm the %s script." %(user_name, script) print "I'd like to ask you a few questions." print "Do you like me %s?" % user_name likes = raw_input(prompt) print "Where do you live %s?" % user_name lives = raw_input(prompt) print "What kind of computer do you have?" computer = raw_input(prompt) print """ Alright, so you said %r about liking me. You live in %r. Not sure where that is. And you have a %r computer. Nice. """ %(likes, lives, computer)   我们将用户提示符设置为变量 prompt,这样我们就不需要在每次用到raw_input的时候重复输入提示用户的字符了。而且如果你要将提示符修改成别的字串,你只需要修改一个位置就可以了。 非常顺手吧。 执行这个脚本,我们将看到结果: $python ex14.py Zed Hi Zed,I'm the ex14.py script. I'd like to ask you a few questions. Do you like me Zed? >yes Where do you live Zed? >America What...

新手学python-笨方法学python-ex13-参数、解包和变量

LC 2015-10-29 Python

跟着笨方法学python个教程学习,边学变做习题边记录。 新手学python-笨方法学python-ex13-参数、解包和变量 - 学习记录 本小节学习内容: 在这节练习中,我们将讲到另外一种将变量传递给脚本的方法(所谓脚本,就是你写的.py程序)。 你已经知道,如果要运行ex13.py,只要在命令行运行python ex13.py就可以了。 这句命令中ex13.py部分就是所谓的“参数(argument)”,我们现在要做的就是写一个可以接受参数的脚本。 将下面的程序写下来,后面你将看到详细解释。 from sys import argv script, first, second, third = argv print "The script is called:", script print "Your first variable is:", first print "Your second variable is:", second print "Your third variable is:", third 在第一行我们有一个“import”语句。这是你将python的功能引入你的脚本的方法。 Python不会一下子将它所有的功能给你,而是让你需要什么就调用什么。 这样可以让你的程序保持精简,而后面的程序员看到你的代码的时候,这些“import”可以作为提示,让他们明白你的代码用到了哪些功能。 argv是所谓的“参数变量(argument variable)”,是一个非常标准的变成术语。在其他的编程语言里你也可以看到它。 这个变量包含了你传递给Python的参数。通过后面的练习你将对它有更多的了解。 第3行讲argv“解包(unpack)”,与其将所有的参数放到同一个变量下面,我们将每个参数赋予一个变量名:script,first,second,以及third。 这样看上去有些奇怪,不过“解包”可能是最好的描述方式了。它的含义很简单:“把argv中的东西解包,将所有的参数一次赋予左边的变量名”。 等一下!“功能”还有另外一个名字 前面我们使用import让你的程序实现更多的功能,但实际上没人把import称为“功能”。我希望你可以在没接触到正式术语的时候就弄懂它的功能。 在继续下去之前,你需要知道它们真正的名称:模组(modules)。 从现在开始我们将把这些我们导入(import)进来的功能称作模组。你将看到类似这样的说法:“你需要把sys模组import进来。”也有人将它们称作“库(libraries)”,不过我们还是叫它们模组吧。 跟着课程学习: 输入不同的参数运行上面的脚本试试看结果: $python ex13.py Traceback (most recent call last): File "ex13.py", line 3, in <module> script, first, second, third = argv ValueError: need more than 1 value to unpack $ $python ex13.py Traceback (most recent call last): File "ex13.py", line 3, in <module> script, first, second, third = argv ValueError: need more than 1 value to unpack $python ex13.py 1st Traceback (most recent call last): File "ex13.py", line 3,...

新手学python-笨方法学python-ex12-提示别人

LC 2015-10-28 Python

跟着笨方法学python个教程学习,边学边做习题边记录。 新手学Python-笨方法学python-ex12-提示别人 - 学习记录 课程内容: 当你键入 raw_input() 的时候,你需要键入 ( 和 ) 也就是“括号(parenthesis)”。这和你格式化输出两个以上变量时的情况有点类似,比如说 "%s %s" % (x, y) 里边就有括号。对于 raw_input 而言,你还可以让它显示出一个提示,从而告诉别人应该输入什么东西。你可以在 () 之间放入一个你想要作为提示的字符串,如下所示: y = raw_input("Name? ") 这句话会用 “Name?” 提示用户,然后将用户输入的结果赋值给变量 y。这就是我们提问用户并且得到答案的方式。 也就是说,我们的上一个练习可以使用 raw_input 重写一次。所有的提示都可以通过 raw_input 实现。 跟着课程练习: [root@lc test]# vi ex12.py age = raw_input("How old are you? ") height = raw_input("How tall are you? ") weight = raw_input("How much do you weigh? ") print "So, you're %r old, %r tall and %r heavy." % (age, height, weight) "ex12.py" 5L, 198C written [root@lc test]# 执行该脚本: [root@lc test]# python ex12.py How old are you? 35 How tall are you? 6'2" How much do you weigh? 180lbs So, you're '35' old, '6\'2"' tall and '180lbs' heavy. [root@lc test]# 加分习题 1.在命令行界面下运行你的程序,然后在命令行输入 pydoc raw_input...

新手学python-笨方法学python-ex11-提问

LC 2015-10-28 Python

跟着笨方法学python个教程学习,边学边做习题边记录。 新手学python-笨方法学Python-ex11-提问 - 学习记录 课程内容: 我已经出过很多打印相关的练习,让你习惯写简单的东西,但简单的东西都有点无聊,现在该跟上脚步了。我们现在要做的是把数据读到你的程序里边去。这可能对你有点难度,你可能一下子不明白,不过你需要相信我,无论如何把习题做了再说。只要做几个练习你就明白了。 一般软件做的事情主要就是下面几条: 1.接受人的输入。 2.改变输入。 3.打印出改变了的输入。 到目前为止你只做了打印,但还不会接受或者修改人的输入。你也许还不知道“输入(input)”是什么意思。所以闲话少说,我们还是开始做点练习看你能不能明白。下一个习题里边我们会给你更多的解释。 跟着课程练习: [root@lc test]# vi ex11.py print "How old are you?", age = raw_input() print "How tall are you?", height = raw_input() print "How much do you weigh?", weight = raw_input() print "So, you're %r old, %r tall and %r heavy." %(age, height, weight) "ex11.py" 8L, 218C written [root@lc test]# 执行该程序: [root@lc test]# python ex11.py How old are you? 35 How tall are you? 6'2" How much do you weigh? 180lbs So, you're '35' old, '6\'2"' tall and '180lbs' heavy. [root@lc test]# 加分习题 1.上网查一下 Python 的 raw_input 实现的是什么功能。 使用input和raw_input都可以读取控制台的输入,但是input和raw_input在处理数字时是有区别的 当输入为纯数字时: input返回的是数值类型,如int,float raw_inpout返回的是字符串类型,string类型 输入字符串为表达式 input会计算在字符串中的数字表达式,而raw_input不会。 如输入“57 + 3”: input会得到整数60 raw_input会得到字符串”57 + 3” 2.你能找到它的别的用法吗?测试一下你上网搜索到的例子。 print "Hello, ",name = raw_input() 3.用类似的格式再写一段,把问题改成你自己的问题。 [root@lc test]# vi ex11-3.py print "What's the color...

新手学python-笨方法学python-ex9-打印打印打印

LC 2015-10-28 Python

跟着笨方法学Python个教程学习,边学边做习题边记录。 新手学python-笨方法学python-ex9-打印打印打印 - 学习记录 跟着课程练习: [root@lc test]# vi ex9.py # Here's some new strange stuff, remember bype it exactly. days = "Mon Tue Wed The Fri Sat Sun" months = "Jan\nFeb\nMar\nApr\nMay\nJun\nJul\nAug" print "Here are the days: ", days print "Here are the months: ", months print """ There's something going on here. With the three double-quotes. We'll be able to type as much as we like. Even 4 lines if we want, or 5, or 6. """ "ex9.py" 14L, 377C written [root@lc test]# 执行该程序 [root@lc test]# python ex9.py Here are the days: Mon Tue Wed The Fri Sat Sun Here are the months: Jan Feb Mar Apr May Jun Jul Aug There's something going on here. With the three double-quotes. We'll be able to type...

新手学python-笨方法学python-ex8-打印打印

LC 2015-10-28 Python

跟着笨方法学python个教程学习,边学边做习题边记录。 新手学python-笨方法学python-ex8-打印打印 - 学习记录 跟着课程练习: [root@lc test]# vi ex8.py formatter = "%r %r %r %r" print formatter % (1, 2, 3, 4) print formatter % ("one", "two", "three", "four") print formatter % (True, False, False, True) print formatter % (formatter, formatter, formatter, formatter) print formatter % ( "I had this thing.", "That you could type up right.", "But it didn't sing.", "So I said goodnight." ) "ex8.py" 12L, 354C written [root@lc test]#   执行该程序: [root@lc test]# python ex8.py 1 2 3 4 'one' 'two' 'three' 'four' True False False True '%r %r %r %r' '%r %r %r %r' '%r %r %r %r' '%r %r...

新手学python-笨方法学python-ex7-更多打印

LC 2015-10-28 Python

跟着笨方法学Python个教程学习,边学边做习题边记录。 新手学python-笨方法学python-ex7-更多打印 - 学习记录 跟着课程练习: [root@lc test]# vi ex7.py print "Mary had a little lamb." print "Its fleece was white as %s." % 'snow' print "And everywhere that Mary went." print "." * 10 # what'd that do? end1 = "C" end2 = "h" end3 = "e" end4 = "e" end5 = "s" end6 = "e" end7 = "B" end8 = "u" end9 = "r" end10 = "g" end11 = "e" end12 = "r" # watch that comma at the end. try removing it to see what happens print end1 + end2 + end3 + end4 + end5 + end6, print end7 + end8 + end9 + end10 + end11 + end12 "ex7.py" 21L, 449C written [root@lc test]# 运行该程序: [root@lc test]# python ex7.py Mary...

新手学python-笨方法学python-ex6-字符串(string)和文本

LC 2015-10-28 Python

写给某人:有一位同学天天在我耳边念叨Python语言如何如何好(请恕我词穷不知如何复述那个如何如何到底是有多如何如何),所以下定决心要从头开始学习Python了。写代码一直是我的软肋,希望这次能坚持学习,边学边记。 跟着笨方法学Python个教程学习,边学变做习题边记录。 新手学python-笨方法学python-ex6-字符串(string)和文本 - 学习记录 本小节学习内容: 虽然你已经在程序中写过字符串了,你还没学过它们的用处。在这章习题中我们将使用复杂的字符串来建立一系列的变量,从中你将学到它们的用途。首先我们解释一下字符串是什么 东西。 字符串通常是指你想要展示给别人的、或者是你想要从程序里“导出”的一小段字符。Python 可以通过文本里的双引号 " 或者单引号 ' 识别出字符串来。这在你以前的 print 练习中你已经见过很多次了。如果你把单引号或者双引号括起来的文本放到 print 后面,它们就会被 python 打印出来。 字符串可以包含格式化字符 %s,这个你之前也见过的。你只要将格式化的变量放到字符串中,再紧跟着一个百分号 % (percent),再紧跟着变量名即可。唯一要注意的地方,是如果你想要在字符串中通过格式化字符放入多个变量的时候,你需要将变量放到 ( ) 圆括号(parenthesis)中,而且变量之间用 , 逗号(comma)隔开。就像你逛商店说“我要买牛奶、面包、鸡蛋、八宝粥”一样,只不过程序员说的是”(milk, eggs, bread, soup)”。 我们将键入大量的字符串、变量、和格式化字符,并且将它们打印出来。我们还将练习使用简写的变量名。程序员喜欢使用恼人的难度的简写来节约打字时间,所以我们现在就提早学会这个,这样你就能读懂并且写出这些东西了。 跟着课程学习: [root@lc test]# vi ex6.py x = "There are %d types of people." % 10 binary = "binary" do_not = "don't" y = "Those who know %s and those who %s." % (binary, do_not) print x print y print "I said: %r." % x print "I said: '%s'." % y hilarious = False joke_evaluation = "Isn't that joke so funny?! %r" print joke_evaluation % hilarious w = "This is the left side of..." e = "a string with a right side." print w + e "ex6.py" 21L, 392C written [root@lc test]#...