2017年4月17日
今天的學(xué)習(xí)如下:
1)閱讀書籍《Python編程快速上手_讓繁瑣的工作簡單》章節(jié)1,章節(jié)2. 花費(fèi)時(shí)間30分鐘。
由于此前有一定的編程基礎(chǔ)。
本次解決了以下幾個(gè)問題:
關(guān)于學(xué)習(xí)方法: 學(xué)會(huì)查看Python的相關(guān)資料和文檔,熟悉Python函數(shù),模塊的用法。
網(wǎng)址有:https://docs.python.org第二章:流程控制:
在學(xué)習(xí)流程控制的章節(jié)中,在寫代碼前,利用流程圖梳理控制流程。
章節(jié)2的練習(xí)題:
利用for,while 寫出1-10的數(shù)字。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日
今天的學(xué)習(xí)如下:
1)閱讀書籍《Python編程快速上手_讓繁瑣的工作簡單》章節(jié)3&練習(xí). 花費(fèi)時(shí)間40分鐘。
本次獲取了以下知識(shí):
創(chuàng)建函數(shù),函數(shù)中的一些基本概念,關(guān)于return、全局變量與局部變量之間的關(guān)系。一般情況下盡量不要使用全局變量。
返回值以及return語句 以及形式參數(shù)和實(shí)際參數(shù)。
異常處理 try expect ,處理過程有點(diǎn)類似于if 和else。
書中的一個(gè)小程序:猜數(shù)字
源代碼如下:
#!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))
- 從上述源代碼可以獲取的知識(shí)有:
- 如果要導(dǎo)入模塊(函數(shù)&函數(shù)集合)使用import,代碼中導(dǎo)入了隨機(jī)random,用于來生成隨機(jī)數(shù),而生成1-20的隨機(jī)整數(shù),則是用了這樣的寫法:random.randint(1,20)
- 對(duì)猜詞的次數(shù)做限制:使用for i in range(1,7),并用控制流if else 以及break
- 輸入的內(nèi)容:input,int(input()) 將輸入內(nèi)容強(qiáng)制轉(zhuǎn)換為int,當(dāng)然還可以利用try expect做異常處理。
本章的練習(xí)&小實(shí)踐:
1)練習(xí)的部分為對(duì)函數(shù)的基礎(chǔ)概念理解。
2) 實(shí)踐:
編寫一個(gè)名為 collatz()的函數(shù),它有一個(gè)名為 number 的參數(shù)。如果參數(shù)是偶數(shù),
那么 collatz()就打印出 number // 2,并返回該值。如果 number 是奇數(shù),collatz()就打
印并返回 3 * number + 1。
然后編寫一個(gè)程序,讓用戶輸入一個(gè)整數(shù),并不斷對(duì)這個(gè)數(shù)調(diào)用 collatz(),直
到函數(shù)返回值1(令人驚奇的是,這個(gè)序列對(duì)于任何整數(shù)都有效,利用這個(gè)序列,
你遲早會(huì)得到 1!既使數(shù)學(xué)家也不能確定為什么。你的程序在研究所謂的“Collatz
序列”,它有時(shí)候被稱為“最簡單的、不可能的數(shù)學(xué)問題”)。
提示:
提示:如果 number % 2 == 0,整數(shù) number 就是偶數(shù),如果 number % 2 == 1,它
就是奇數(shù)。
個(gè)人解答代碼:
#!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
解答過程的心路歷程與收獲總結(jié):
1) 首先按照題目要求編寫了函數(shù),collat() 傳遞參數(shù),使用return 返回值。在編寫過程中,使用print()來查看最終結(jié)果。
2) 在要求重復(fù)調(diào)用函數(shù)上,想到了使用while,一開始使用while True,后來將True的條件更換為!=1 。并使用了break,讓條件成立時(shí),終止循環(huán)。
3)在try的代碼里,一開始while代碼并未包含在其中,導(dǎo)致出現(xiàn)兩次valueerror,經(jīng)過反思,try 捕捉異常的處理方式與if 流程類似,于是做了更改。
本次學(xué)習(xí)總結(jié):
1)完成的代碼是一個(gè)調(diào)試+設(shè)計(jì)的過程,調(diào)試的方法有待進(jìn)一步學(xué)習(xí)。
2)下一次學(xué)習(xí)list的內(nèi)容。
2017年4月19日
今天的學(xué)習(xí)如下
1)《Python編程快速上手_讓繁瑣的工作簡單》章節(jié)4 list 閱讀&練習(xí) 耗時(shí)70分鐘左右
本次獲取了以下的知識(shí):
- 理解list 是什么?有哪些方法,以及與之關(guān)聯(lián)的字典,元組還有字符串,某種程度的可以理解為python的數(shù)據(jù)結(jié)構(gòu)?
- 解決問題:
這個(gè)問題:最后解決了。
但是過程還是需要說一說:
1)解決問題要理解問題的本質(zhì):這個(gè)問題的本質(zhì)是X,Y的交換,打印出想要的內(nèi)容。
2)在寫代碼前,我嘗試將這個(gè)問題抽象成另外一個(gè)問題,寫了一段所謂的調(diào)試代碼,然而,不行!因?yàn)闆]有抓住問題的本質(zhì)。
3)知識(shí)之間的關(guān)聯(lián)性,可以借鑒前一章的內(nèi)容來理解這一章的問題。
最后是解決的代碼:
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日
今天的學(xué)習(xí)如下
今天學(xué)習(xí)了一些Linux的內(nèi)容,關(guān)于在CentOS上安裝httpd服務(wù)。耗時(shí)約1個(gè)小時(shí)。
環(huán)境介紹:
當(dāng)前的環(huán)境是虛擬機(jī)virtualbox 下安裝的CentOS6 ,與7版本不同httpd2.4的服務(wù)內(nèi)置在7中,不存在考慮依賴關(guān)系,直接使用yum或者rpm包安裝即可。因此6版本需要通過編譯安裝httpd2.4。
那么我先解決的問題:
1,虛擬機(jī)聯(lián)通網(wǎng)絡(luò):將虛擬機(jī)的網(wǎng)絡(luò)配置改為橋接模式。
2, 獲取apr-*相關(guān)的安裝包進(jìn)行解壓,編譯安裝。
解決以上問題參考的文檔:
http://www.centoscn.com/image-text/config/2015/0627/5741.html
實(shí)際操作:
1)yum groupinstall
"Development Tools" "Server Platform Development " -y 先安裝dev的相關(guān)tools吧。
2)下載安裝相關(guān)的軟件包:
- 在Apache官網(wǎng)上下載apr軟件以及httpd2.4軟件 執(zhí)行如下命令:
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的內(nèi)容,獲取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
依照文檔的順序進(jìn)行編譯安裝,暫時(shí)沒有出現(xiàn)問題。
接下來解壓,編譯安裝httpd2.4的內(nèi)容。即今天關(guān)于Linux的學(xué)習(xí)內(nèi)容告一段落。
關(guān)于Python快速上手的閱讀 耗時(shí)約1個(gè)小時(shí)。
第六章學(xué)習(xí)的內(nèi)容是:string 關(guān)于字符串的操作
我提出了以下幾個(gè)問題,并轉(zhuǎn)換成了讀書筆記:
字符串有哪些操作方法?
字符串方法 upper()、lower()、isupper()和 islower()
in 或者not in 操作符
字符串下標(biāo)和切片
isX字符串方法,返回TRUE
字符串方法 startswith()和 endswith()
字符串方法 join()和 split()
用 rjust()、ljust()和 center()方法對(duì)齊文本
用 strip()、rstrip()和 lstrip()刪除空白字符字符串與其他的字典以及列表有啥區(qū)別不同?
字符串與前面的知識(shí)點(diǎn)結(jié)合?
與前面列表,字典以及function相結(jié)合,對(duì)string進(jìn)行操作。string的第三方模塊?
第三方模塊的使用方法是import模式,導(dǎo)入第三方模塊。
下面一段代碼的作用主要是解決在系統(tǒng)范圍內(nèi)copy和paste問題。
>>> import pyperclip
>>> pyperclip.copy('Hello world!')
>>> pyperclip.paste()
'Hello world!'
在IDLE之外運(yùn)行Python腳本的方法?
? 在 Windows 上,第一行是 #! python3。
? 在 OS X,第一行是 #! /usr/bin/env python3。
? 在 Linux 上,第一行是 #! /usr/bin/python3
除此以外還要在Windows上考慮環(huán)境變量的問題。
另外最后有兩個(gè)項(xiàng)目需要去實(shí)踐以及練習(xí),這些就留在下次解決。
待解決的問題:
口令保管箱
表格打印