一个“MacBook”新手的Python“笨办法”自学之旅 #第六章:常用的简易Python命令、符号、代码、格式化字符串
第六章:常用的简易Python命令、符号、代码、字符串
《“笨办法”学Python》这本书中,确实用了较多篇幅来介绍Python的一些常用简单的命令、符号、代码和字符串等,对于像我这样的自学新手,真的是非常棒,因为它们可以帮我建立接着学下去的信心和兴趣。但我在这个系列的博客当中,不打算写的这么精细,首先因为这不符合我写博的初衷和习惯,其次因为我不打算靠这写书来挣钱,最后因为我确实没有那个实力去挖掘简单东西中更深奥复杂的应用。所以,我写的这个博客,只适合像我这样的自学新手,如果想要成为大神,还是需要进行专业系统的学习!
话不多说,我们开始吧!
------------------------------------------------------------如何开始?---------------------------------------------------------
------------------------------------------------------------如何开始?---------------------------------------------------------
------------------------------------------------------------如何开始?---------------------------------------------------------
我本打算按自己的想法,以总结性的形式来写这个博客,但是我发现那样会很乱很乱,倒不如借用Zed的《“笨办法”学Python》形式,以习题为大纲,中间穿插重要的知识点。这本书在网上能找得到网页版的,我本人是买的纸质版的书籍。所以我打算,尽量不将大篇幅的脚本代码写如博客,而是将更多的精力,用于总结和记忆以前学习和摸索出来的知识。这对于我来说,更是一个学习的过程,如果给大家带来了不便,十分抱歉!
在这一章节中,我会写较多的习题,因为它们都比较简单,相信大家很快就能学会!
-------------------------------------<习题1:第一个程序>-------------------------------------------
习题1,确实是没有什么特别的地方,主要是让我们在了解一下Python2的print输出命令同时,学会用终端来“运行”python脚本的方法。
1, print “需要打印的字符串” 可以输出我们想要打印的字符串;
2,第一行:# -*- coding: utf-8 -*- 的作用是,可以让脚本代码里面的中文字,在终端中打印出来,否则会出现关于ASCII编码的报错;
3,运行Python脚本的办法:在终端中进入脚本文件(ex1.py)所在的目录; 键入python ex1.py;回车即可
注意:我没想到博客园的博客编辑页面插入代码这么容易,所以在后续的每个习题最下方会插入我自己键入的代码。如果是我自己学的小代码或游戏,也会在该习题的博客编写当中插入。大家只需要点击 “View Code”就行。
ex1.py的代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 # -*- coding: utf-8 -*- 2 print "hello world!" 3 print "hello again" 4 print "I like typing this." 5 print "This is fun." 6 print 'Yay! Printing.' 7 print "I'd much rather you 'not'." 8 print 'I "said"do not touch this.' 9 print "您好!"
终端运行的结果如下:(在之后的终端运行结果,这一次我用复制的形式,是想要在某些行后面注释,在接下来的终端运行结果,我直接就用截屏的方式了)
bogon:~ neymagico$ cd temp/ex #在终端中进入脚本文件(ex1.py)所在的目录;
bogon:ex neymagico$ python ex1.py #键入python ex1.py,并回车
hello world!
hello again
I like typing this.
This is fun.
Yay! Printing.
I'd much rather you 'not'.
I "said"do not touch this.
您好
求助!求助!求助!求助!:本人也有一个迷惑,关于 # -*- coding: utf-8 -*-的。在后续的代码编写中,我用到了自己学的法语,含有一些特殊字符,例如é, è, ê等等,不知道应该在脚本首行键入什么样的代码可以实现,本人在网上搜过一段时间,但是没有结果,期待哪位大神给予解答,Merci beaucoup!(法语版谢谢!)
------------------------------------<习题2:注释和#号>-------------------------------------------
这一个习题特别简单,只是介绍注释和#号。虽然简单,但它的作用非常之大,评价一个码农的水平高低,这也是一个非常重要的标准。
首先介绍解释符合#的工作原理:在python的脚本代码中,#后方的代码都被python忽略和禁用,只能在阅读脚本源代码时能看见注释符合#后方的代码。根据它的工作原理,可以演变出很多作用:
1,可以在脚本中,用注释符号#来解释自己写这段代码时想法或运行原理,防止他人和自己不懂!没错,自己将来也可能会忘记自己写的代码是什么意思!
2,我们可以用#来帮我们暂时禁用一些代码,待想用时,删除# 即可;
3,注意,用双引号""括住的#不是注释符号,而是字符串的一部分
ex2.py代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 # A comment, this is so you can read your program later. 2 # Anything afer the # is ignored by python. 3 4 print "I could have coded like this." # and the comment afer is ignored 5 6 # You can also use a comment to "disable" or comment out a piece of code: 7 # print "This won't run." 8 9 print "This will run."
终端运行结果如下:
------------------------------------<习题3:数字和数学计算>---------------------------------------
这一个习题要讲的东西不是特别多,就是简单的数学计算,不过有几点是需要注意的:
1,%不是百分号,而是求余符号:例如python里的 100 % 16结果为4。因为100除以16的余数为4;
2,浮点数(小数)的运算结果和整数的运算结果可能不同,因为python会把小数部分丢弃,参考下方代码的最后两行,其运行结果不同;
3,运算不仅仅是加减乘除,还包括:>, <, =, >=,<=,
ex3.py代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 # -*-coding:utf-8-*- 2 # 告诉这个程序是在数鸡的个数 3 print "I will now count my chickens:" 4 # 母鸡的个数是 25加上30除以6 5 print "Hens", 25+30/6 6 # 公鸡的个数是100减去25乘3的积再除以4求余的结果 7 print "Roosters", 100-25 * 3 % 4 8 # 开始数鸡蛋的个数 9 print "Now I will count the eggs:" 10 # 计算3+2+1-5+4/2的余-1/4+6 11 print 3 + 2 + 1 - 5 + 4 % 2 - 1 / 4 + 6 12 # 询问3+2小于5-7是否正确 13 print "Is it true that 3 + 2 < 5 - 7?" 14 # 计算3+2<5-7的结果,结果是False 15 print 3 + 2 < 5 - 7 16 # 询问3+2等于多少,并计算3+2的结果 17 print "What is 3 + 2?", 3 + 2 18 # 询问5-7等于多少,并计算5-7的结果 19 print "What is 5 - 7?", 5 - 7 20 # 由前两个命令行得知,为什么3+2<5-7是错误的 21 print "Oh, that's is why it's False." 22 # 再多做一点怎么样? 23 print "How about some more." 24 # 是大于?并计算5>-2的结果,结果为true 25 print "Is it greater?", 5 > -2 26 # 是大于等于?并计算5>=-2的结果,结果为true 27 print "Is it greater or equal?", 5 >= -2 28 # 是小于等于?并计算5<=2的结果,结果为False 29 print "Is it less or equal?", 5 <= -2 30 31 print 7.0 / 4.0 - 0 32 print 7 / 4 - 0
终端运行结果如下:
------------------------------------<习题4:变量和命名>---------------------------------------
这一个习题会介绍一个非常重要的名称和一个非常重要的概念:
名词:变量variable:该如何解释呢?你想要测试每天的气温,将气温设为变量T,那这个变量T会跟一些外界因素有关,例如季节、时间、地点、海拔等;Python里面的变量,可以是一个确切的数值、字符、列表、字典等等;
概念:定义变量:Python里面的变量必须要被定义,否则没有意义,会报错。定义的方式是 T = 100 ℃。当然了,也会有其它情况的变量,不需要这样定义,是在定义函数时默认被定义了,暂时想不起实例,后续想起来会在该处更新(想起来了:例如在while循环和for循环语句当中,变量是默认已经被定义的了,每循环一次,变量被重新定义一次)注意:不能用数字1、2、3、4等来定义变量,变量名必须要以字母开头,例如a1。
变量的简单输出方式,可参考下方的代码,直接可以用print T,不需要用双引号。
ex4.py代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #-*-coding:utf-8-*- 2 cars=100 #总共有100辆车 3 space_in_a_car=4.0 #一辆车共4个座位 4 drivers=30 #共有30位司机 5 passengers=90 #共有90位乘客 6 cars_not_driven = cars-drivers #没有开的车的数量等于车的总量减去司机的数量 7 cars_driven=drivers #开走的车的数量等于司机的数量 8 carpool_capacity=cars_driven*space_in_a_car #座位的数量等于可开走车的数量乘以每辆车的座位数 9 average_passengers_per_car = passengers / cars_driven #每辆车平均乘客的数量等于乘客的总数量除以被开车的数量 10 11 12 print "there are", cars, "cars available." 13 print "there are only", drivers, "drivers availabe." 14 print "there will be", cars_not_driven, "empty cars today." 15 print "we can transport", carpool_capacity, "people today." 16 print "we have", passengers, "passengers to carpool today." 17 print "we need to put about", average_passengers_per_car, "passengers in each car."
终端运行结果如下:
----------------------------------<习题5:变量和格式化字符串>--------------------------------------
这一习题,主要是介绍格式化字符串和变量结合起来的运用,首先介绍一下格式化字符串:
格式化字符串:通过用转换说明符,把已经定义好的变量格式更改一下,其运用方法参考ex5.py
ex5.py代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 #-*-coding:utf-8-*- 2 my_name = 'Zed A. Shaw' 3 my_age = 34 # not a lie 4 my_height = 74 # inches 5 my_weight = 180 # lbs 6 my_eyes = 'Blue' 7 my_teeth = 'White' 8 my_hair = 'Brown' 9 10 print "Let's talk about %s." % my_name 11 print "He's %d inches tall." % my_height 12 print "He's %d pounds heavy." % my_weight 13 print "Actually that's not too heavy." 14 print "He's got %s eyes and %s hair." % (my_eyes, my_hair) 15 print "His teeth are usually %s depending on the coffee." % my_teeth 16 17 # this line is tricky, try to get it exactly right 18 print "If I add %d, %d, and %d I get %d." % (my_age, my_height, my_weight, my_age + my_height + my_weight)
终端运行结果如下:
除了ex5.py中的转换说明符,还有其它的,详见ex5_1..py。
ex5_1.py代码如下:
![](https://images.cnblogs.com/OutliningIndicators/ContractedBlock.gif)
1 # -*- coding:utf-8 -*- 2 sum = -28.91234567 3 4 print "1,转换为带符号的十进制式的整数" 5 print "sum is: %07.6d" %sum #此处的‘0’表示 不补充空格,而是补充0;‘7’表示最小宽度为7,负号占用一个宽带;‘6’表示浮点数的小数点后的位数 6 print "sum is: %+7.6d" %sum #此处的‘+’表示书中总要带着符号(+/-);‘7’表示最小宽度为7,负号占用一个宽带;‘6’表示浮点数的小数点后的位数 7 print "sum is: %-7.3d" %sum #此处的‘-’表示制定左对齐;‘7’表示最小宽度为7,负号占用一个宽带;‘3’表示浮点数的小数点后的位数 8 print "sum is: %7.3d" %sum # 没有‘-’,最小宽度为7,所以输出的结果不是左对齐,而是用空格补充空位 9 10 print "2,转换为带符号的十进制式的整数" 11 print "sum is: %07.6i" %sum 12 print "sum is: %+7.6i" %sum 13 print "sum is: %-7.6i" %sum 14 15 print "3,转换为带符号的八进制式的整数" 16 print "sum is: %07.6o" %sum 17 print "sum is: %+7.6o" %sum 18 print "sum is: %-7.6o" %sum 19 20 print "4,转换为带符号的十六进制式的整数" 21 print "sum is: %07.6x" %sum 22 print "sum is: %+7.6x" %sum 23 print "sum is: %-7.6x" %sum 24 25 print "5,转换为带符号的十六进制式的整数" 26 print "sum is: %07.6X" %sum 27 print "sum is: %+7.6X" %sum 28 print "sum is: %-7.6X" %sum 29 30 print "6,转换为科学计数法表示的浮点数" 31 print "sum is: %07.6e" %sum 32 print "sum is: %+7.6e" %sum 33 print "sum is: %-7.6e" %sum 34 35 print "7,转换为科学计数法表示的浮点数" 36 print "sum is: %07.6E" %sum 37 print "sum is: %+7.6E" %sum 38 print "sum is: %-7.6E" %sum 39 40 print "8,转换为十进制的浮点数" 41 print "sum is: %07.6f" %sum 42 print "sum is: %+7.6f" %sum 43 print "sum is: %-7.6f" %sum 44 45 print "9,转换为十进制的浮点数" 46 print "sum is: %07.6F" %sum 47 print "sum is: %+7.6F" %sum 48 print "sum is: %-7.6F" %sum 49 50 print "10,智能选择使用e或者f格式" 51 print "sum is: %07.6g" %sum 52 print "sum is: %+7.6g" %sum 53 print "sum is: %-7.6g" %sum 54 55 print "11,智能选择使用E或者F格式" 56 print "sum is: %07.6G" %sum 57 print "sum is: %+7.6G" %sum 58 print "sum is: %-7.6G" %sum 59 60 name1 = 100 61 name2 = "a" 62 print "转换为单字符(只接受整数或单字符字符串)" #没搞明白是什么意思,该处会报错 63 print "name1 is: %c" %name1 64 print "name2 is: %c" %name2 65 66 name3 = "messi" 67 print "使用repr()将变量或者表达式转化为字符串" 68 print "name3 is: %r" %name3 69 70 71 name4 = "neymagico" 72 73 print "使用str()将变量或者表达式转化为字符串" 74 print "name4 is: %s" %name4
终端运行结果如下:
求助!求助!求助!求助!:本人确实是不知道下面三个转换符该如何使用,求前辈们帮忙!
1,%C:转换为单字符(只接受整数或单字符字符串)
PS:将字符串转换成整数的方式是 :int("str")
这一章暂时写到着吧,篇幅够长了!
*** 第七章预告:字符串、文本、各种打印、转义序列、手动输入raw_input()