注:本书基于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 数字和字符串
字符或字符序列(字母、数字或标点符号)称为一个字符串。
字符串的开头和结尾必须使用同种类型的引号。(单引号或双引号)
字符串拼接
长字符串,跨多行的字符串,使用一种特殊的字符串,三重引号字符串
2.5 它们有多“可变”
2.6 全新的我
变量自增(increment)
变量自减(decrement)
- 程序可以在任何时间对变量重新赋值。
- 变量区分大小写。
- 专业的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() 从一个字符串或整数创建一个新的浮点数(小数)。
□ int() 从一个字符串或浮点数创建一个新的整数。
□ str() 从一个数(可以是任何其他类型)创建一个新的字符串。
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()函数用于创建一个消息框。大多数情况下,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()由这个字符串创建一个数。
整数框(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章 判断再循环
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
7.8 使用or
7.9 使用not(进行反向测试)
if age >= 8:
if not (age<8):
第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)
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!")
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章 游戏时间到了
(暂略)