一日一更:学习日报

2017-04-17  本文已影响0人  Near

2017年4月17日

今天的学习如下:

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

章节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分钟。
本次获取了以下知识:

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

#!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))

本章的练习&小实践:
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分钟左右
本次获取了以下的知识:

实践练习

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

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)下载安装相关的软件包:

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

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

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

>>> 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上考虑环境变量的问题。

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

上一篇下一篇

猜你喜欢

热点阅读