父与子的编程之旅:与小卡特一起学python

image.png

注:本书基于python2讲解

前言

编程就是告诉计算机要做什么。计算机只是一些没有生命的机器,它们自己不知道该做什么,一切都得你来告诉它,而且你还必须把细节都说清楚。
指令(instruction)就是下达给计算机的一个基本命令,通常要求计算机做某件特定的事情。
计算机程序是由多个指令组成的。软件就是你的计算机上运行的程序。
所有计算机在内部都使用二进制(1和0是一种二进制的编程)。利用计算机编程语言,我们可以先用一种自己能够理解的方式写程序,然后把它翻译成二进制供计算机使用。

怎么样使用本书
□ 验证例子。
□ 输入程序。
□ 做习题。
□ 放轻松。

不要担心犯错误。实际上,你得尽量多犯错误!我认为,犯错误然后搞清楚怎么找出错误并改正是最好的一种学习方法。
在编程中,除了多费一点时间,你的错误通常不会带来其他损失。

第1章 出发吧

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交互

执行命令、指令或程序就表示“运行”或者“发生”,这只是运行或发生的另外一种形象说法。
几乎所有的计算机程序和语言都是用*符号作为乘号。“星号”或“星”。

print("Hello " * 20)

1.5 该编程了

文本编辑器能把程序保存到硬盘上。
文件名末尾的.py部分告诉计算机这是一个python程序,而不是普通的文本文件。

1.6 运行你的第一个程序

1.7 如果出问题

(1)语法错误(syntax error):就是一种程序语言的拼写和文法规则,意味着你键入的某个内容不是正确的代码。
(2)运行时错误(runtime error):运行程序前python无法检测出来的错误,只是在程序运行时才会发生。
在python中,不能把两个完全不同的东西加在一起,比如说数字和文本。

1.8 你的第二个程序

第2章 记住内存和变量

程序就是下达给计算机的一系列指令。
几乎所有真正有用或有意思的程序都还有一些别的特征:
□ 都有输入(input);
□ 都会处理(process)输入;
□ 都会产生输出(output).

2.1 输入、处理和输出

为了处理输入,计算机必须记住它们,或者把它们保存在某个地方。计算机会把这些内容(包括输入以及程序本身)保存在它的内存中。

2.2 名字

firs = 5
second = 3
print(first + second)

2.3 名字里是什么

变量名规则:

  • 名字是区分大小写的。
  • 变量名必须以字母或下划线字符开头,不能以数字开头。4fun ×
  • 变量名中不能包含空格。

2.4 数字和字符串

字符或字符序列(字母、数字或标点符号)称为一个字符串
字符串的开头和结尾必须使用同种类型的引号。(单引号或双引号)
字符串拼接
长字符串,跨多行的字符串,使用一种特殊的字符串,三重引号字符串

image.png

2.5 它们有多“可变”

2.6 全新的我

变量自增(increment)
变量自减(decrement)

  • 程序可以在任何时间对变量重新赋值。
  • 变量区分大小写。
  • 专业的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() 从一个字符串或整数创建一个新的浮点数(小数)。
□ int() 从一个字符串或浮点数创建一个新的整数。
□ str() 从一个数(可以是任何其他类型)创建一个新的字符串。
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()函数用于创建一个消息框。大多数情况下,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()由这个字符串创建一个数。
整数框(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章 判断再循环

7.1 测试,测试

完成测试并根据结果做出判断称为分支(branching)。程序根据测试的结果来决定走哪条路,或者沿哪个分支执行。
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中,编写代码时缩进是必不可少的一部分。缩进会告诉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章 转圈圈

□ 重复一定次数的循环,称为计数循环(counting loop);
□ 重复直至发生某种情况时结束的循环,称为条件循环(conditional loop),因为只要条件为真,这种循环会一直持续下去。

8.1 计数循环/for循环

for looper in [1,2,3,4,5]:
    print("Hello")

每次循环称为一次迭代(iteraton).

for looper in [1,2,3,4,5]:
    print(looper)

无限循环 Ctrl + C

8.2 使用计数循环

打印8的乘法表

for looper in [1,2,3,4,5]:
    print(looper ,"times 8 = " ,looper*8)
image.png

8.3 一条捷径——range()

利用函数range(),只输入起始值和结束值,就会创建这二者之间的所有值。
把循环变量叫looper

8.4 风格问题——循环变量名

要使用能够描述变量用途的变量名。编程中有一个惯例,通常使用字母i、j、k等作为循环变量。
风格就是你的程序看上去怎么样,而与程序能不能正常工作无关。

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 关于这个问题

如果你能够提前知道希望循环运行多少次,那么for循环很合适。不过,有时你可能希望循环一直运行,知道发生某种情况时才结束,而且你不知道发生这种情况之前会有多少次迭代。这就可以用while循环来实现。

8.8 跳出循环——break和continue

用continue直接跳到循环的下一次迭代,或者用break完全终止循环。

第9章 全都是为了你——注释

9.1 增加注释

注释是给你看的,而不是让计算机执行的。注释是程序文档的一部分,计算机运行程序时会忽略这些注释。
文档就是关于一个程序的信息,描述了程序并说明它是如何工作的。注释是程序文档的一部分,不过在代码本身外,文档还包括其他部分,文档描述以下内容:

  • 为什么写这个程序(它的用途)
  • 这个程序是为谁写的
  • 这个程序面向什么人(它的用户)
  • 如何组织
    更大、更复杂的程序往往有更多文档。

9.2 单行注释

(#)字符开头

9.3 行末注释

9.4 多行注释

三重引号字符串

9.5 注释风格

9.6 注释掉

可以使用注释临时跳过程序中的某些部分。作为注释的所有内容都会被忽略。

第10章 游戏时间到了

(暂略)

第11章 嵌套与可变循环

嵌套循环
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 217,084评论 6 503
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 92,623评论 3 392
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 163,450评论 0 353
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 58,322评论 1 293
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 67,370评论 6 390
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 51,274评论 1 300
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 40,126评论 3 418
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 38,980评论 0 275
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 45,414评论 1 313
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 37,599评论 3 334
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 39,773评论 1 348
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 35,470评论 5 344
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 41,080评论 3 327
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 31,713评论 0 22
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 32,852评论 1 269
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 47,865评论 2 370
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 44,689评论 2 354

推荐阅读更多精彩内容

  • 沟通的大致流程:关键点:确认对方是否理解你的本意。 沟通的目的是为了解决问题,沟通的结果是要给出当前情况下的最优方...
    FlaminEcho阅读 301评论 0 0
  • 早上起来把前天买的小笼包热了热给儿子当了早餐,牛奶加小笼包没啥可拍的便没拍。 中午吃米饭,炒了个菜拌了个菜~西红柿...
    稻草人CX阅读 415评论 0 3
  • 游乐场设备分为户外游乐设备和室内游乐设备,户外游乐设备和室内游乐设备的材料选取有所不同。作为户外游乐设备要保持其安...
    金宝客服王庆科阅读 194评论 0 0
  • 路的起点是一树白玉兰, 洁白的花,开在乍暖还寒的三月。 途经一片桃林, 粉红铺落满地。 淋过一场大雨,我湿了罗衣。...
    守夜人MISS阅读 276评论 2 2
  • 得敌,或鼓或罢,或泣或歌。——《易》 盘古开天辟地之后,身体化为自然万物与法则,不久之后出现了盘古神识与混沌灵气所...
    匪夷所思文化工作室阅读 720评论 0 2