zoukankan      html  css  js  c++  java
  • 一个“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的代码如下:

    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 "您好!"
    ex1.py

    终端运行的结果如下:(在之后的终端运行结果,这一次我用复制的形式,是想要在某些行后面注释,在接下来的终端运行结果,我直接就用截屏的方式了)

    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代码如下:

    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."
    ex2.py

       终端运行结果如下:

       

    ------------------------------------<习题3:数字和数学计算>---------------------------------------

       这一个习题要讲的东西不是特别多,就是简单的数学计算,不过有几点是需要注意的:

       1,%不是百分号,而是求余符号:例如python里的 100 % 16结果为4。因为100除以16的余数为4;

       2,浮点数(小数)的运算结果和整数的运算结果可能不同,因为python会把小数部分丢弃,参考下方代码的最后两行,其运行结果不同;

       3,运算不仅仅是加减乘除,还包括:>, <, =, >=,<=,

       ex3.py代码如下:

     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
    ex3.py

       终端运行结果如下:

       

     

    ------------------------------------<习题4:变量和命名>---------------------------------------

     

       这一个习题会介绍一个非常重要的名称和一个非常重要的概念:

       名词:变量variable:该如何解释呢?你想要测试每天的气温,将气温设为变量T,那这个变量T会跟一些外界因素有关,例如季节、时间、地点、海拔等;Python里面的变量,可以是一个确切的数值、字符、列表、字典等等;

       概念:定义变量:Python里面的变量必须要被定义,否则没有意义,会报错。定义的方式是 T = 100 ℃。当然了,也会有其它情况的变量,不需要这样定义,是在定义函数时默认被定义了,暂时想不起实例,后续想起来会在该处更新(想起来了:例如在while循环和for循环语句当中,变量是默认已经被定义的了,每循环一次,变量被重新定义一次)注意:不能用数字1、2、3、4等来定义变量,变量名必须要以字母开头,例如a1。

     

       变量的简单输出方式,可参考下方的代码,直接可以用print T,不需要用双引号。

       ex4.py代码如下:

     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."
    ex4.py

       终端运行结果如下:

       

    ----------------------------------<习题5:变量和格式化字符串>--------------------------------------

       这一习题,主要是介绍格式化字符串和变量结合起来的运用,首先介绍一下格式化字符串:

       格式化字符串:通过用转换说明符,把已经定义好的变量格式更改一下,其运用方法参考ex5.py

       ex5.py代码如下:

     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.py中的转换说明符,还有其它的,详见ex5_1..py。

       ex5_1.py代码如下:

     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
    ex5_1.py

     终端运行结果如下:

          

       求助!求助!求助!求助!本人确实是不知道下面三个转换符该如何使用,求前辈们帮忙!

       1,%C:转换为单字符(只接受整数或单字符字符串)

       

       PS:将字符串转换成整数的方式是 :int("str")

       这一章暂时写到着吧,篇幅够长了!

       *** 第七章预告:字符串、文本、各种打印、转义序列、手动输入raw_input()

    键盘敲不易,且看且仔细!
  • 相关阅读:
    python模块
    python函数进阶
    python函数
    六.python的深浅拷贝
    五.集合及其推导式
    IOS微信显示NAN,中国标准时间日期转换
    Caused by: org.apache.ibatis.binding.BindingException: Parameter 'XXX' not found. Available parameters are [beginTime, endTime, param3, param1, vesselName, param2] 找不到参数的解决方式
    java的nullpointerexception空指针异常,关于使用了timer定时导致service调用问题
    java设置开始时间,定时执行任务
    java多层嵌套集合的json,如何获取多层集合中所需要的value
  • 原文地址:https://www.cnblogs.com/la-route-d-ingenieur/p/11027711.html
Copyright © 2011-2022 走看看