父與子的編程之旅:與小卡特一起學python

image.png

注:本書基于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 數字和字符串

字符或字符序列(字母、數字或標點符號)稱為一個字符串
字符串的開頭和結尾必須使用同種類型的引號。(單引號或雙引號)
字符串拼接
長字符串,跨多行的字符串,使用一種特殊的字符串,三重引號字符串

image.png

2.5 它們有多“可變”

2.6 全新的我

變量自增(increment)
變量自減(decrement)

  • 程序可以在任何時間對變量重新賦值。
  • 變量區(qū)分大小寫。
  • 專業(yè)的python程序員給變量命名時幾乎總是以小寫字母開頭。

第3章 基本數學運算

3.1 四大基本運算

在python3中做整除,需要使用兩個前斜杠(//)

print(3/2)
print(3//2)

3.2 操作符

+、-、、/符號都稱為操作符。=也是一個操作符,稱為賦值操作符。
所操作的東西稱為操作數

image.png

3.3 運算順序

3.4 另外兩個操作符

1 指數——自乘為一個冪(**操作符)

print(3**5)

2 取余——求余數(%取余操作符)

print(7%2)

3 +=(自增) 和 -=(自減)


image.png

3.5 非常大和非常小

指數和E記法


image.png

第4章 數據的類型

4.1 改變類型

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

image.png

image.png

int()函數總是下取整。它不會給你最接近的整數,而是會給出下一個最小的整數。實際上int()函數就是去掉小數部分。

4.2 得到更多信息:type()

image.png

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

image.png

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

image.png

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

image.png

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

6.3 GUI輸入

image.png

‘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)
image.png

選擇框

選擇框(choice box, choicebox)

import easygui

flavor = easygui.choicebox("What is your favorite ice cream flavor?",
            choices = ['vanilla','chocolate','strawberry'])
            
easygui.msgbox("you picked" + flavor)
image.png

文本輸入

輸入框(enter box, enterbox)

import easygui

flavor = easygui.enterbox("What is your favorite ice cream flavor?")                
easygui.msgbox("you entered " + flavor)
image.png

默認輸入

默認值(default)

import easygui

flavor = easygui.enterbox("What is your favorite ice cream flavor?",
                        default = 'vanilla')                
easygui.msgbox("you entered " + flavor)
image.png

數字呢

如果想在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))
image.png

image.png

image.png

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

image.png

7.8 使用or

7.9 使用not(進行反向測試)

if age >= 8:
if not (age<8):
image.png

第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)
image.png

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!")
image.png

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)

嵌套循環(huán)
最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
【社區(qū)內容提示】社區(qū)部分內容疑似由AI輔助生成,瀏覽時請結合常識與多方信息審慎甄別。
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發(fā)布,文章內容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務。

相關閱讀更多精彩內容

  • 溝通的大致流程:關鍵點:確認對方是否理解你的本意。 溝通的目的是為了解決問題,溝通的結果是要給出當前情況下的最優(yōu)方...
    FlaminEcho閱讀 382評論 0 0
  • 早上起來把前天買的小籠包熱了熱給兒子當了早餐,牛奶加小籠包沒啥可拍的便沒拍。 中午吃米飯,炒了個菜拌了個菜~西紅柿...
    稻草人CX閱讀 502評論 0 3
  • 游樂場設備分為戶外游樂設備和室內游樂設備,戶外游樂設備和室內游樂設備的材料選取有所不同。作為戶外游樂設備要保持其安...
    金寶客服王慶科閱讀 252評論 0 0
  • 路的起點是一樹白玉蘭, 潔白的花,開在乍暖還寒的三月。 途經一片桃林, 粉紅鋪落滿地。 淋過一場大雨,我濕了羅衣。...
    守夜人MISS閱讀 302評論 2 2
  • 得敵,或鼓或罷,或泣或歌?!兑住?盤古開天辟地之后,身體化為自然萬物與法則,不久之后出現了盤古神識與混沌靈氣所...
    匪夷所思文化工作室閱讀 942評論 0 2

友情鏈接更多精彩內容