• 在练习中一些问题


    ### 1.

    Python 2.7 中

    print "..." 没有问题

    但在 3.5 中报错 因为没有 ()

     

    Python 3.5 中

    print ("...") 没有问题

    print "..." 报错

     

    ### 2.

    Python 中 "" 和 ' ' 一样但是 ' ' 常用来创建简短的字符串

     

     

    print end1 + end2 + end3 + end4 + end5 + end6,end7 + end8 + end9 + end10 + end11 + end12

    # 这样亦可以,但是这样该行的长度超过 80 个字符串,不是好的Python代码风格

     

    # 可以写成这种 #在Python 2.7 中

    print end1 + end2 + end3 + end4 + end5 + end6,

    print end7 + end8 + end9 + end10 + end11 + end12

     

    ### 3.

    在为变量赋值时 会忘记打 =

    在输入时会忽略中英文符号问题

     

    ### 4.

    你应该使用 %s,只有在想要获取某些东西的 debug 信息时才能用到 %r。 %r 给你的是变量的

    "程序员原始版本",又被称作"representation"。

     

    Python 会用最有效的方式打印出字符串,而不是完全按照你写的方式来打印。这样做对于 %r 来

    说是可以接受的,因为它是用作 debug 和排错,没必要非打印出多好看的格式。

     

    %r 就是这个样子,它打印出的是你写出来的方式(或者近似方式)。它是用来 debug 的原始格

    式。

     

    你必须写成 """ 而不是 " " ",引号之间不能有空格。

     

    print 里的逗号其实是分隔参数的一种方式。

    print 里的 + 是将两个字符串拼接起来

     

    ### 5.有趣的小代码

     

    while True:

    for i in ["/","-","|","\","|"]:

    print "%s " % i,

     

     

    ### 6.

    在输入中把 , 和 . 按错

     

     

    ### 7,

    ``%r`` 用作 debug,``%s`` 用作显示。

     

    ### 8.

    一般软件做的事情主要就是下面几条:

    1. 接受人的输入。

    2. 改变输入。

    3. 打印出改变了的输入。

     

    input() 和 raw_input() 有何不同?

    input() 函数会把你输入的东西当做 Python 代码进行处理,这么做会有安全问题,你应该避开

    这个函数。

    打印出来后我的字符串前面有个 u ,像 u'35' 这样。

    它表示 Python 告诉你你的字符串是 unicode。使用 %s 就一切正常了

     

    print u"请输入您的姓名:"

    # Python 2.7 是以ASCII码的形式进行输出输入,所以,这种方式可以以 UTF-8的形式输出中文,不会乱码

     

    ### 9.

    argv 和 raw_input() 有什么不同?

    不同点在于用户输入的时机。如果参数是在用户执行命令时就要输入,那就是 argv,如果是在

    脚本运行过程中需要用户输入,那就使用 raw_input()。

     

    ### 10.

    Python 不会限制你打开文件的次数,事实上有时候多次打开同一个文件是一件必须的事情。

     

    ### 11.

    函数可以做三样事情:

    1. 它们给代码片段命名,就跟"变量"给字符串和数字命名一样。

    2. 它们可以接受参数,就跟你的脚本接受 argv 一样。

    3. 通过使用 #1 和 #2,它们可以让你创建"微型脚本"或者"小命令"。

     

    ### 12.

    *args 的 * 是什么意思?

    它的功能是告诉 python 让它把函数的所有参数都接受进来,然后放到名字叫 args 的列表中去。

    和你一直在用的 argv 差不多,只不过前者是用在函数上面

     

    ### 13.

    函数里边的变量和脚本里边的变量之间是没有接的。

     

    函数定义后忘记 :

    变量名的拼写首字母打成大小写打错

     

    ### 14.

    Python 会把函数或公式"自内而外"而不是"自下而上"。

     

    ### 15.

    这是函数的工作原理。记住函数内部的变量都是临时的,当你的函数返回以后,返回值可以被赋予

    一个变量。我这里是创建了一个新变量,用来存放函数的返回值。

     

    ### 16.

    != 和 <> 有何不同?

    Python 中 <> 将被逐渐弃用, != 才是主流,除此以为没什么不同。

     

    ### 17.

    可以用多个 if/else 来取代 elif 吗?

    有时候可以,不过这也取决于额 if/else 是怎样写的,而且这样一来 python 就需要去

    检查每一处 if/else,而不是像 if/elif/else 一样,只要检查到第一个 True 就可以停下来了。

     

    ### 19.

    怎样判断一个数字处于某个值域中?

    两个办法:经典语法是使用 1 < x < 10,或者用 x in range(1, 10) 也可以。

     

    ### 20.

    开始使用 for 循环之前,你需要在某个位置存放循环的结果。最好的方法是使用列表(list),

    顾名思义,它就是一个按顺序存放东西的容器

     

    ### 21.

    如何创建二维列表?

    就是在列表中包含列表,例如这样: [[1,2,3],[4,5,6]]

     

    ### 22.

    "序数(ordinal number)",因为它们表示的是事物的顺序。

    "index(索引)",而最好的方式是使用以 0 开头的索引。

     

    ### 23.

    为什么 raw_input() 有时写成 raw_input('> ')?

    raw_input 的参数是一个会被打印出来的字符串,这个字符串一般用来提示用户输入。

     

    ### 24.

    If 语句的规则

    1. 每一个"if 语句"必须包含一个 else.

    2. 如果这个 else 永远都不应该被执行到,因为它本身没有任何意义,那你必须在 else 语句后面使用一个叫做 die 的函数,让它打印出错误信息并且死给你看,这和上一节的习题类似,这样你可以找到很多的错误。

    3. "if 语句"的嵌套不要超过 2 层,最好尽量保持只有 1 层。 这意味着如果你在 if 里边又有了一个 if,那你就需要把第二个 if 移到另一个函数里面。

    4. 将"if 语句"当做段落来对待,其中的每一个 if, elif, else 组合就跟一个段落的句子组合一样。在这种组合的最前面和最后面留一个空行以作区分。

    5.你的布尔测试应该很简单,如果它们很复杂的话,你需要将它们的运算事先放到一个变量里,并且为变量取一个好名字。

     

    ### 25.

    在你写代码之前,你应该设计出游戏的地图,创建出玩家会碰到的房间、怪物、以及陷阱等环节。一旦搞定了地图,你就可以写代码了。如果你发现地图有问题,就调整一下地图,让代码和地图互相符合。

    每一个程序员在开始一个新的大项目时,都会被非理性的恐惧影响到。为了避免这种恐惧,他们会拖延时间,到最后一事无成。我有时会这样,每个人都会有这样的经历,避免这种情况的最好的方法是把自己要做的事情列出来,一次完成一样。

     

     

    ### 26.

    如何运用你学到的东西理解别人的代码。

     

    首先把你想要理解的代码打印到纸上。没错,你需要打印出来,因为和屏幕输出相比,你的眼睛和大脑更习惯于接受纸质打印的内容。一次最多打印几页就可以了。

    然后通读你打印出来的代码并做好标记,标记的内容包括以下几个方面:

    1. 函数以及函数的功能。

    2. 每个变量的初始赋值。

    3. 每个在程序的各个部分中多次出现的变量。它们以后可能会给你带来麻烦。

    4. 任何不包含 else 的 if 语句。它们是正确的吗?

    5. 任何可能没有结束点的 while 循环。

    6. 最后一条,代码中任何你看不懂的部分都记下来。

    接下来你需要通过注解的方式向自己解释代码的含义。解释各个函数的使用方法,各个变量的用途,以及任何其它方面的内容,只要能帮助你理解代码即可。

    最后,在代码中比较难的各个部分,逐行或者逐个函数跟踪变量值。你可以再打印一份出来,在空白处写出你要"追踪"的每个变量的值。

    一旦你基本理解了代码的功能,回到电脑面前,在屏幕上重读一次,看看能不能找到新的问题点。然后继续找新的代码,

    用上述的方法去阅读理解,直到你不再需要纸质打印为止

     

    ### 27.

    %d 和 %i 有何不同?

    没有什么不同,只不过由于历史原因,用 %d 的人更多一些而已。

     

    ### 28.

    stuff[3:5] 实现了什么功能?

    这是一个列表切片动作,它会从 stuff 列表的第 3 个元素开始取值,直到第 5 个元素。

    注意,这里并不包含第 5 个元素,这跟 range(3,5) 的情况是一样的。

     

    ### 29.

    列表和字典有何不同?

    列表是有序排列的一些物件,而字典是将一些物件(keys)对应到另外一些物件(values)的数据结构。

     

    字典能用在哪里?

    各种你需要通过某个值去查看另一个值的场合。其实你可以把字典当做一个"查询表"。

    列表能用在哪里?

    列表是专供有序排列的数据使用的。你只要知道索引就能查到对应的值了。

     

     

    ### 30.

    三种读代码的方法,它们适用于几乎所有的编程语言:

    1. 从前向后。

    2. 从后向前。

    3. 逆时针方向。

  • 相关阅读:
    java 静态和非静态代码块执行顺序
    spring boot 学习
    js中的jQuery Validate增加手机号码验证
    JAVA验证手机号码是否正确
    redis启动报错 var/run/redis_6379.pid exists, process is already running or crashed
    移动端点击a标签拨打电话
    js计算两个日期之间的天数
    JS根据日期获取判断星期几
    JAVA生成订单编号工具类
    JAVA微信支付——微信公众号内支付 代码
  • 原文地址:https://www.cnblogs.com/heixiang/p/10983902.html
Copyright © 2020-2023  润新知