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

2019-04-05  本文已影响0人  Liuxu01
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 名字里是什么

变量名规则:

2.4 数字和字符串

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

image.png

2.5 它们有多“可变”

2.6 全新的我

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

第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章 嵌套与可变循环

嵌套循环
上一篇 下一篇

猜你喜欢

热点阅读