
注:本書基于python2講解
前言
編程就是告訴計算機要做什么。計算機只是一些沒有生命的機器,它們自己不知道該做什么,一切都得你來告訴它,而且你還必須把細節(jié)都說清楚。
指令(instruction)就是下達給計算機的一個基本命令,通常要求計算機做某件特定的事情。
計算機程序是由多個指令組成的。軟件就是你的計算機上運行的程序。
所有計算機在內部都使用二進制(1和0是一種二進制的編程)。利用計算機編程語言,我們可以先用一種自己能夠理解的方式寫程序,然后把它翻譯成二進制供計算機使用。
怎么樣使用本書
□ 驗證例子。
□ 輸入程序。
□ 做習題。
□ 放輕松。
不要擔心犯錯誤。實際上,你得盡量多犯錯誤!我認為,犯錯誤然后搞清楚怎么找出錯誤并改正是最好的一種學習方法。
在編程中,除了多費一點時間,你的錯誤通常不會帶來其他損失。
第1章 出發(fā)吧
1.1 安裝python
1.2 從IDLE啟動python
IDLE是一個python shell(外殼)。這是一個通過鍵入文本與程序交互的途徑,可以利用這個shell與python交互。
IDLE本身還是一個GUI(圖形用戶界面)。GUI就是圖形用戶界面(graphical user interface),表示界面中有窗口、菜單、按鈕、滾動條等等。沒有GUI的程序稱為文本模式(text-mode)程序、控制臺(console)程序或命令行(command-line)程序。
'>>>是python提示符。提示符是程序等待你鍵入信息時顯示的符號。
1.3 來點指令吧
print是一個python關鍵字。
關鍵字(keyword)是作為python語言一部分的特殊詞,也稱為保留字(reserved word).
1.4 與python交互
執(zhí)行命令、指令或程序就表示“運行”或者“發(fā)生”,這只是運行或發(fā)生的另外一種形象說法。
幾乎所有的計算機程序和語言都是用*符號作為乘號。“星號”或“星”。
print("Hello " * 20)
1.5 該編程了
文本編輯器能把程序保存到硬盤上。
文件名末尾的.py部分告訴計算機這是一個python程序,而不是普通的文本文件。
1.6 運行你的第一個程序
1.7 如果出問題
(1)語法錯誤(syntax error):就是一種程序語言的拼寫和文法規(guī)則,意味著你鍵入的某個內容不是正確的代碼。
(2)運行時錯誤(runtime error):運行程序前python無法檢測出來的錯誤,只是在程序運行時才會發(fā)生。
在python中,不能把兩個完全不同的東西加在一起,比如說數字和文本。
1.8 你的第二個程序
第2章 記住內存和變量
程序就是下達給計算機的一系列指令。
幾乎所有真正有用或有意思的程序都還有一些別的特征:
□ 都有輸入(input);
□ 都會處理(process)輸入;
□ 都會產生輸出(output).
2.1 輸入、處理和輸出
為了處理輸入,計算機必須記住它們,或者把它們保存在某個地方。計算機會把這些內容(包括輸入以及程序本身)保存在它的內存中。
2.2 名字
firs = 5
second = 3
print(first + second)
2.3 名字里是什么
變量名規(guī)則:
- 名字是區(qū)分大小寫的。
- 變量名必須以字母或下劃線字符開頭,不能以數字開頭。4fun ×
- 變量名中不能包含空格。
2.4 數字和字符串
字符或字符序列(字母、數字或標點符號)稱為一個字符串。
字符串的開頭和結尾必須使用同種類型的引號。(單引號或雙引號)
字符串拼接
長字符串,跨多行的字符串,使用一種特殊的字符串,三重引號字符串

2.5 它們有多“可變”
2.6 全新的我
變量自增(increment)
變量自減(decrement)
- 程序可以在任何時間對變量重新賦值。
- 變量區(qū)分大小寫。
- 專業(yè)的python程序員給變量命名時幾乎總是以小寫字母開頭。
第3章 基本數學運算
3.1 四大基本運算
在python3中做整除,需要使用兩個前斜杠(//)
print(3/2)
print(3//2)
3.2 操作符
+、-、、/符號都稱為操作符。=也是一個操作符,稱為賦值操作符。
所操作的東西稱為操作數。

3.3 運算順序
3.4 另外兩個操作符
1 指數——自乘為一個冪(**操作符)
print(3**5)
2 取余——求余數(%取余操作符)
print(7%2)
3 +=(自增) 和 -=(自減)

3.5 非常大和非常小
指數和E記法

第4章 數據的類型
4.1 改變類型
類型轉換
□ float() 從一個字符串或整數創(chuàng)建一個新的浮點數(小數)。
□ int() 從一個字符串或浮點數創(chuàng)建一個新的整數。
□ str() 從一個數(可以是任何其他類型)創(chuàng)建一個新的字符串。
float()、int()、str()后面有小括號,因為他們不是python關鍵字(如Print),它們只是python的內置函數(function).


int()函數總是下取整。它不會給你最接近的整數,而是會給出下一個最小的整數。實際上int()函數就是去掉小數部分。
4.2 得到更多信息:type()

4.3 類型轉換錯誤
4.4 使用類型轉換
第5章 輸入
5.1 raw_input()內置函數
5.2 print命令和逗號
5.3 輸入數字
第6章 GUI——圖形用戶界面
6.1 什么是GUI
6.2 第一個GUI
EasyGui是一個python模塊,利用這個模塊可以很容易地建立簡單的GUI。模塊就是一種拓展方法,通過它可以向python增加非內置的內容。
安裝EasyGui→python路徑→建立GUI

安裝教程 https://blog.csdn.net/Aka_Happy/article/details/82120174


(牢騷話:折騰大半天,真是一臉懵逼,最后換成python setup.py install竟然意料之外的好了。)


EasyGui msgbox()函數用于創(chuàng)建一個消息框。大多數情況下,EasyGui函數的名就是相應英語單詞的縮寫。
6.3 GUI輸入

‘ok’部分就是python和EasyGui在告訴你:用戶點擊了OK按鈕。EasyGui會返回信息來告訴你用戶在GUI中做了什么:點擊了什么按鈕,鍵入了哪些內容等。
EasyGui msgbox就是包含一條消息和一個ok按鈕的對話框。不過還可以有不同類型的對話框,包含更多的按鈕和其他內容。
6.4 選擇你的口味
有多個按鈕的對話框
按鈕框(button box, buttonbox)
import easygui
flavor = easygui.buttonbox("What is your favorite ice cream flavor?",
choices = ['vanilla','chocolate','strawberry'])
easygui.msgbox("you picked " + flavor)

選擇框
選擇框(choice box, choicebox)
import easygui
flavor = easygui.choicebox("What is your favorite ice cream flavor?",
choices = ['vanilla','chocolate','strawberry'])
easygui.msgbox("you picked" + flavor)

文本輸入
輸入框(enter box, enterbox)
import easygui
flavor = easygui.enterbox("What is your favorite ice cream flavor?")
easygui.msgbox("you entered " + flavor)

默認輸入
默認值(default)
import easygui
flavor = easygui.enterbox("What is your favorite ice cream flavor?",
default = 'vanilla')
easygui.msgbox("you entered " + flavor)

數字呢
如果想在EasyGui中輸入一個數,完全可以先通過輸入框得到一個字符串,然后使用int()或者float()由這個字符串創(chuàng)建一個數。
整數框(integer box, integerbox)可以用來輸入整數,還可以對輸入的數設置一個下界和上界。
整數框不允許輸入浮點數(小數)。要輸入小數 ,必須先通過輸入框得到字符串,然后再使用float()轉換這個字符串。
再看猜數游戲
import random,easygui
secret = random.randint(1,99)
guess = 0
tries = 0
easygui.msgbox("""AHOY! I'm the Dread Pirate Roberts, and I have a
secret! It is a number from 1 to 99. I'll give you 6 tries.""")
while guess != secret and tries < 6:
guess = easygui.integerbox("What's yer guess, matey?")
if not guess:break
if guess < secret:
easygui.msgbox(str(guess) + " is too low, ye scurvy dog!")
elif guess > secret:
easygui.msgbox(str(guess) + " is too high, landlubber!")
tries = tries + 1
if guess == secret:
easygui.msgbox("Avast!Ye got it! Found my secret, ye did!")
else:
easygui.msgbox("No more guess! The number was " + str(secret))



6.6 其他GUI組件
EasyGui還提供了另外一些GUI組件,包括允許多重選擇的選擇框等等
第7章 判斷再循環(huán)
7.1 測試,測試
完成測試并根據結果做出判斷稱為分支(branching)。程序根據測試的結果來決定走哪條路,或者沿哪個分支執(zhí)行。
python使用關鍵字if來測試條件
if timeAnswer == correctAnswer:
print("You got it right!")
score = score + 1
print("Thanks for playing.")
代碼塊block是一行或放在一起的多行代碼。它們都與程序的某個部分相關(比如一個if語句)。在python中,通過將塊中的代碼行縮進來構成代碼塊。
if行末尾的冒號告訴python下面將是一個指令塊。
7.2 縮進
在python中,編寫代碼時縮進是必不可少的一部分??s進會告訴python代碼塊從哪里開始,到哪里結束。
python慣例:總是將代碼塊縮進4個空格。
7.3 是不是有問題
== 比較操作符
7.4 其他類型的測試
if 8 <= age <= 12:
比較操作符也稱為關系操作符,比較也稱為條件測試或邏輯測試。在編程中,邏輯就是指某個結論的答案是真還是假。
7.5 如果測試為假會怎么樣
7.6 測試多個條件
7.7 使用and

7.8 使用or
7.9 使用not(進行反向測試)
if age >= 8:
if not (age<8):

第8章 轉圈圈
□ 重復一定次數的循環(huán),稱為計數循環(huán)(counting loop);
□ 重復直至發(fā)生某種情況時結束的循環(huán),稱為條件循環(huán)(conditional loop),因為只要條件為真,這種循環(huán)會一直持續(xù)下去。
8.1 計數循環(huán)/for循環(huán)
for looper in [1,2,3,4,5]:
print("Hello")
每次循環(huán)稱為一次迭代(iteraton).
for looper in [1,2,3,4,5]:
print(looper)
無限循環(huán) Ctrl + C
8.2 使用計數循環(huán)
打印8的乘法表
for looper in [1,2,3,4,5]:
print(looper ,"times 8 = " ,looper*8)

8.3 一條捷徑——range()
利用函數range(),只輸入起始值和結束值,就會創(chuàng)建這二者之間的所有值。
把循環(huán)變量叫l(wèi)ooper
8.4 風格問題——循環(huán)變量名
要使用能夠描述變量用途的變量名。編程中有一個慣例,通常使用字母i、j、k等作為循環(huán)變量。
風格就是你的程序看上去怎么樣,而與程序能不能正常工作無關。
8.5 按步長計數
for i in range(1,20,2):
print(i)
for i in range(10,1,-1):
print(i)
反向計數
import time
for i in range(10,0,-1):
print(i)
time.sleep(1)
print("BLAST OFF!")

8.6 沒有數字的計算
for cool_guy in ['spongebob','spiderman','justin timberlake','my dad']:
print(cool_guy.title() + " is the coolest guy ever!")
8.7 關于這個問題
如果你能夠提前知道希望循環(huán)運行多少次,那么for循環(huán)很合適。不過,有時你可能希望循環(huán)一直運行,知道發(fā)生某種情況時才結束,而且你不知道發(fā)生這種情況之前會有多少次迭代。這就可以用while循環(huán)來實現。
8.8 跳出循環(huán)——break和continue
用continue直接跳到循環(huán)的下一次迭代,或者用break完全終止循環(huán)。
第9章 全都是為了你——注釋
9.1 增加注釋
注釋是給你看的,而不是讓計算機執(zhí)行的。注釋是程序文檔的一部分,計算機運行程序時會忽略這些注釋。
文檔就是關于一個程序的信息,描述了程序并說明它是如何工作的。注釋是程序文檔的一部分,不過在代碼本身外,文檔還包括其他部分,文檔描述以下內容:
- 為什么寫這個程序(它的用途)
- 這個程序是為誰寫的
- 這個程序面向什么人(它的用戶)
- 如何組織
更大、更復雜的程序往往有更多文檔。
9.2 單行注釋
(#)字符開頭
9.3 行末注釋
9.4 多行注釋
三重引號字符串
9.5 注釋風格
9.6 注釋掉
可以使用注釋臨時跳過程序中的某些部分。作為注釋的所有內容都會被忽略。
第10章 游戲時間到了
(暫略)
第11章 嵌套與可變循環(huán)
