美文网首页
一日一更:学习日报

一日一更:学习日报

作者: Near | 来源:发表于2017-04-17 16:08 被阅读0次

    2017年4月17日

    今天的学习如下:

    1)阅读书籍《Python编程快速上手_让繁琐的工作简单》章节1,章节2. 花费时间30分钟。
    由于此前有一定的编程基础。
    本次解决了以下几个问题:

    • 关于学习方法: 学会查看Python的相关资料和文档,熟悉Python函数,模块的用法。
      网址有:https://docs.python.org

    • 第二章:流程控制:
      在学习流程控制的章节中,在写代码前,利用流程图梳理控制流程。

    章节2的练习题:
    利用for,while 写出1-10的数字。number可以去掉。

    #!usr/bin/env python 
    for i in range(1,11):
       print(" number %s" %(i))
    
    
    i=0
    while i<=10:
       print("number %s" %(i))
       i+=1
    

    2017年4月18日

    今天的学习如下:

    1)阅读书籍《Python编程快速上手_让繁琐的工作简单》章节3&练习. 花费时间40分钟。
    本次获取了以下知识:

    • 创建函数,函数中的一些基本概念,关于return、全局变量与局部变量之间的关系。一般情况下尽量不要使用全局变量。

    • 返回值以及return语句 以及形式参数和实际参数。

    • 异常处理 try expect ,处理过程有点类似于if 和else。

    书中的一个小程序:猜数字
    源代码如下:

    #!usr/bin/env python 
    # guess the number 
    
    # This is a guess the number game.
    import random
    secretNumber = random.randint(1, 20)
    print('I am thinking of a number between 1 and 20.')
    # Ask the player to guess 6 times.
    for guessesTaken in range(1, 7):
        print('Take a guess.')
        guess = int(input())
        if guess < secretNumber:
            print('Your guess is too low.')
        elif guess > secretNumber:
            print('Your guess is too high.')
        else:
            break # This condition is the correct guess!
    if guess == secretNumber:
        print('Good job! You guessed my number in ' + str(guessesTaken) + ' guesses!')
    else:
        print('Nope. The number I was thinking of was ' + str(secretNumber))
    
    • 从上述源代码可以获取的知识有:
    • 如果要导入模块(函数&函数集合)使用import,代码中导入了随机random,用于来生成随机数,而生成1-20的随机整数,则是用了这样的写法:random.randint(1,20)
    • 对猜词的次数做限制:使用for i in range(1,7),并用控制流if else 以及break
    • 输入的内容:input,int(input()) 将输入内容强制转换为int,当然还可以利用try expect做异常处理。

    本章的练习&小实践:
    1)练习的部分为对函数的基础概念理解。
    2) 实践:

    编写一个名为 collatz()的函数,它有一个名为 number 的参数。如果参数是偶数,
    那么 collatz()就打印出 number // 2,并返回该值。如果 number 是奇数,collatz()就打
    印并返回 3 * number + 1。
    然后编写一个程序,让用户输入一个整数,并不断对这个数调用 collatz(),直
    到函数返回值1(令人惊奇的是,这个序列对于任何整数都有效,利用这个序列,
    你迟早会得到 1!既使数学家也不能确定为什么。你的程序在研究所谓的“Collatz
    序列”,它有时候被称为“最简单的、不可能的数学问题”)。

    提示:

    提示:如果 number % 2 == 0,整数 number 就是偶数,如果 number % 2 == 1,它
    就是奇数。

    个人解答代码:

    
    #!usr/bin/env python 
    
    def collatz(number):  # define a function named collatz
        if number%2==0:
            return number//2
        else:
            return 3*number+1
    
    # print ('enter a number:')
    try:
        number_enter=int(input('enter a number'))
        while number_enter!=1:
               number_enter=collatz(number_enter)
               print(number_enter)
               if number_enter==1:
                    print (number_enter)
                    break 
    # enter number 
    except ValueError:
        print("plz enter a number not a string")
    # except ValueError:
    #   pass
    

    解答过程的心路历程与收获总结:
    1) 首先按照题目要求编写了函数,collat() 传递参数,使用return 返回值。在编写过程中,使用print()来查看最终结果。
    2) 在要求重复调用函数上,想到了使用while,一开始使用while True,后来将True的条件更换为!=1 。并使用了break,让条件成立时,终止循环。
    3)在try的代码里,一开始while代码并未包含在其中,导致出现两次valueerror,经过反思,try 捕捉异常的处理方式与if 流程类似,于是做了更改。

    本次学习总结:

    1)完成的代码是一个调试+设计的过程,调试的方法有待进一步学习。
    2)下一次学习list的内容。

    2017年4月19日

    今天的学习如下

    1)《Python编程快速上手_让繁琐的工作简单》章节4 list 阅读&练习 耗时70分钟左右
    本次获取了以下的知识:

    • 理解list 是什么?有哪些方法,以及与之关联的字典,元组还有字符串,某种程度的可以理解为python的数据结构?
    • 解决问题:
    实践练习

    这个问题:最后解决了。
    但是过程还是需要说一说:

    1)解决问题要理解问题的本质:这个问题的本质是X,Y的交换,打印出想要的内容。
    2)在写代码前,我尝试将这个问题抽象成另外一个问题,写了一段所谓的调试代码,然而,不行!因为没有抓住问题的本质。
    3)知识之间的关联性,可以借鉴前一章的内容来理解这一章的问题。

    最后是解决的代码:
    grid = [['.', '.', '.', '.', '.', '.'],
            ['.', 'O', 'O', '.', '.', '.'],
            ['O', 'O', 'O', 'O', '.', '.'],
            ['O', 'O', 'O', 'O', 'O', '.'],
            ['.', 'O', 'O', 'O', 'O', 'O'],
            ['O', 'O', 'O', 'O', 'O', '.'],
            ['O', 'O', 'O', 'O', '.', '.'],
            ['.', 'O', 'O', '.', '.', '.'],
            ['.', '.', '.', '.', '.', '.']]
    
    
    def dodd(rod):
        for i in range(len(grid[0])):
            for j in range(len(grid)):
                print(grid[j][i],end="")
                
            # print('')
            print("\n")
        # print('\n')
    
    dodd(grid)
    

    2017年4月25日

    今天的学习如下

    今天学习了一些Linux的内容,关于在CentOS上安装httpd服务。耗时约1个小时。

    环境介绍:

    当前的环境是虚拟机virtualbox 下安装的CentOS6 ,与7版本不同httpd2.4的服务内置在7中,不存在考虑依赖关系,直接使用yum或者rpm包安装即可。因此6版本需要通过编译安装httpd2.4。
    那么我先解决的问题:
    1,虚拟机联通网络:将虚拟机的网络配置改为桥接模式。
    2, 获取apr-*相关的安装包进行解压,编译安装。
    解决以上问题参考的文档:
    http://www.centoscn.com/image-text/config/2015/0627/5741.html

    实际操作:
    1)yum groupinstall
    "Development Tools" "Server Platform Development " -y 先安装dev的相关tools吧。
    2)下载安装相关的软件包:

    • 在Apache官网上下载apr软件以及httpd2.4软件 执行如下命令:
      wget http://apache.fayea.com/apr/apr-util-1.5.4.tar.bz2
      wget http://apache.fayea.com/apr/apr-1.5.2.tar.gz
    • 编译安装httpd的内容,获取httpd2.4
      wget http://apache.fayea.com/httpd/httpd-2.4.25.tar.bz2
      安装apr[root@parparxy tmp]# tar xf apr-1.5.2.tar.bz2[root@parparxy tmp]# cd apr-1.5.2[root@parparxy apr-1.5.2]# ./configure --prefix=/usr/local/apr[root@parparxy apr-1.5.2]# make && make install
      安装apr-util[root@parparxy tmp]# tar xf apr-util-1.5.4.tar.gz
      [root@parparxy tmp]# cd apr-util-1.5.4
      [root@parparxy apr-util-1.5.4]# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr[root@parparxy apr-util-1.5.4]# make && make install

    依照文档的顺序进行编译安装,暂时没有出现问题。
    接下来解压,编译安装httpd2.4的内容。即今天关于Linux的学习内容告一段落。

    关于Python快速上手的阅读 耗时约1个小时。

    第六章学习的内容是:string 关于字符串的操作
    我提出了以下几个问题,并转换成了读书笔记:

    • 字符串有哪些操作方法?
      字符串方法 upper()、lower()、isupper()和 islower()
      in 或者not in 操作符
      字符串下标和切片
      isX字符串方法,返回TRUE
      字符串方法 startswith()和 endswith()
      字符串方法 join()和 split()
      用 rjust()、ljust()和 center()方法对齐文本
      用 strip()、rstrip()和 lstrip()删除空白字符

    • 字符串与其他的字典以及列表有啥区别不同?

    • 字符串与前面的知识点结合?
      与前面列表,字典以及function相结合,对string进行操作。

    • string的第三方模块?
      第三方模块的使用方法是import模式,导入第三方模块。
      下面一段代码的作用主要是解决在系统范围内copy和paste问题。

    >>> import pyperclip
    >>> pyperclip.copy('Hello world!')
    >>> pyperclip.paste()
    'Hello world!'
    

    在IDLE之外运行Python脚本的方法?

     在 Windows 上,第一行是 #! python3。
     在 OS X,第一行是 #! /usr/bin/env python3。
     在 Linux 上,第一行是 #! /usr/bin/python3
    除此以外还要在Windows上考虑环境变量的问题。

    另外最后有两个项目需要去实践以及练习,这些就留在下次解决。
    待解决的问题:

    • 口令保管箱

    • 表格打印

    相关文章

      网友评论

          本文标题:一日一更:学习日报

          本文链接:https://www.haomeiwen.com/subject/txetzttx.html