1、2018/3/172018/3/17并非所有的蛇都会爬行并非所有的蛇都会爬行2021/3/29 星期一1第一章 开始你将了解 什么是python 在计算机上安装并使用python2021/3/29 星期一21.Python介绍一种计算机语言 高级语言(Java,Vb,Ruby,Python,C等多达上百种)和人类一样,计算机使用多种语言进行交流。一个编程语言只是一种与计算机对话的特殊方式。人类和计算机都能理解的指令。2021/3/29 星期一32.安装Python-1获取安装程序(下载)注意根据操作系统选择下载64或32位版本(可执行文件)l在windows下执行安装程序2021/3/29 星
2、期一42.安装Python-2启动python shell(IDLE)这就是Python ShellPython Shell就是在计算机上解释执行python语言的控制台。相当于你的大脑负责解释你和别人所说的话,并按照要求进行动作。2021/3/29 星期一53.和计算机交流吧你告诉计算机的第一句话 print(Hello World)Hello World 让计算机做几道数学题 3*52 156 3670-156 3514 Symbol Operation+Addition(加)-Subtraction(减)*Multiplication(乘)/Division(除)2021/3/29 星期
3、一6第二章 编程第一步(变量)你将了解 什么是变量?它能干什么?如何使用它2021/3/29 星期一74.什么是变量变量(variable)编程中的变量描述了存储信息的地方。比如数字、文本、数字和文本等等。从另一方面看,变量就像一个标签。fred=100#定义一个变量,并给变量赋值 print(fred)#告诉计算机把变量表示的内容显示出来100 fred=200#定义一个变量,并给变量赋值 john=fred#定义另一个变量,并把fred的值赋值给它 print(john)200 found_coins=20 magic_coins=10 stolen_coins=3 found_coins
4、magic_coins*2-stolen_coins*3312021/3/29 星期一8第三章 编程第二步(常用数据)你将了解 STRINGS -字符串 LISTS -列表 TUPLES -元组 MAPS -地图2021/3/29 星期一91.字符串StringString(字符串)在编程术语中,我们通常称文本为字符串。你可以把一个字符串看作字母的集合,本资料里所有的字母、数字和符号都是一串字符。fred=What is pink and fluffy?Pink fluff!print(fred)What is pink and fluffy?Pink fluff!创造一个字符串,把它放在变
5、量里,让计算机显示出来说明字符串用”或者 来定义字符串转义符号 ,试着顶一个 IAM COMPUTER2021/3/29 星期一101.字符串String在字符串种嵌入值 myscore=1000 message=I scored%s points print(message%myscore)I scored 1000 points nums=What did the number%s say to the number%s?Nice belt!print(nums%(0,8)What did the number 0 say to the number 8?Nice belt!字符串乘法 p
6、rint(10*a)Aaaaaaaaaa试试下面的输出结果spaces=*25print(%s 12 Butts Wynd%spaces)2021/3/29 星期一112.比字符串更强大的列表(list)LIST(列表)很多变量的集合,用进行定义 some_numbers=1,2,5,10,20 some_strings=Which,Witch,Is,Which定义一个list你可以对list进行如下操作 some_ some_strings.append(bear burp)#追加项目 del some_strings2#删除第3项 print(some_strings2:3)#显示第3-4
7、项 print(some_strings)#显示所有项 print(some_numbers+some_strings)#可以做加法 print(some_numbers*5)#可以做乘法除法,减法不行哦!考虑一下为什么2021/3/29 星期一122.另一种列表元祖(tuples)TUPLE(元祖)元组类似于使用圆括号的列表,用()进行定义,区别是创建后不能更改 fibs=(0,1,1,2,3)print(fibs3)定义一个tuple你不可以改变tuple的内容否则计算机给给你报错 fibs0=4Traceback(most recent call last):File,line 1,in
8、 fibs0=4TypeError:tuple object does not support item assignment2021/3/29 星期一132.帮你找到你想要的(字典)MAP(字典)字典中的每一项都有一个键和一个对应的值。你可以根据键找到值。favorite_sports=Ralph Williams:Football,Michael Tippett:Basketball,Edward Elgar:Baseball,Rebecca Clarke:Netball,Ethel Smyth:Badminton,Frank Bridge:Rugby定义一个map你可以对字典做如下操作
9、print(favorite_sportsRebecca Clarke)#找到RebeccaClarke喜欢的运动del favorite_sportsEthel Smyth#从字典中删除EthelSmyth数据favorite_sportsEthel Smyth=Ice Hockey#修改Ethel Smyth喜欢的运动favorite_sportsCan Can=tennis#追加cancan喜欢的项目2021/3/29 星期一14第四章 海龟画图你可以画出绚丽的图案2021/3/29 星期一151.什么是海龟Turbles是一个画板模块,你可以利用它绘图。正如你写字并不需要你去制造铅笔和
10、纸张,你可以利用turtle去绘画2021/3/29 星期一162.海龟绘图import turtle#引进海龟,你可以开始使用它turtle.pencolor(red)#设置画笔颜色(红色)turtle.pensize(1)#设置画笔粗细turtle.forward(100)#让海龟前进50个像素turtle.left(90)#左转90度turtle.forward(100)#让海龟继续前进50个像素turtle.left(90)#左转90度turtle.forward(100)#让海龟继续前进50个像素turtle.left(90)#左转90度turtle.forward(100)#让海龟
11、继续前进50个像素turtle.up()#让海龟抬起笔turtle.left(90)#左转90度turtle.forward(50)#让海龟继续前进25个像素turtle.down()#让海龟放下笔turtle.pencolor(green)#设置画笔颜色(绿色)turtle.pensize(3)#设置画笔粗细turtle.circle(50)#画一个半径50的圆2021/3/29 星期一173.运用技巧import turtle#引进海龟,你可以开始使用它myColor=red,green,brownindex=0for x in range(250):turtle.pencolor(myC
12、olorindex)index+=1 if index=3:index=0 turtle.forward(x*2)turtle.left(92)右边的图怎么画出来的?看看下面的代码让计算机干了什么2021/3/29 星期一18第五章 逻辑判断用IF ELSE判断逻辑2021/3/29 星期一191.逻辑判断age=10if age=20:print(oh!you are yong)Elif age 20 and age=10 and age myval=None if myval=None:print(The variable myval doesnt have a value)什么都没有保存
13、的空值 age=10 if age=10:print(The variable myval doesnt have a value)数值是字符串还是数字?age=10 if age=10:print(The variable myval doesnt have a value)age=10 converted_age=int(age)age=10 converted_age=str(age)age=10.5 converted_age=int(age)if age=10:print(The variable myval doesnt have a value)结果如何2021/3/29 星期一
14、23第六章 重复事件处理2021/3/29 星期一241.循环作业要抄写100遍?NO!print(“homework”)print(“homework”)print(“homework”)print(“homework”)print(“homework”)print(“homework”)print(“homework”)print(“homework”)print(“homework”).print(“homework”)print(“homework”)print(“homework”)print(“homework”)so easy!for x in range(0,99):print
15、homework)for x in range(0,99):print(hello%s%x)试试这个2021/3/29 星期一252.列表(list)的循环 print(list(range(10,20)10,11,12,13,14,15,16,17,18,19简单的列表打印class_list=class1,class2,class3,class4,class5 for x in range(0,4):print(hello%s%class_listx)循环方式的列表打印循环方式的遍历列表 wizard_list=spider legs,toe of frog,snail tongue,b
16、at wing,slug butter,bear burp for i in wizard_list:print(i)左边的1和2实现方式有什么区别?hugehairypants=huge,hairy,pantsfor i in hugehairypants:print(i)for j in hugehairypants:print(j)推测一下下面的结果2021/3/29 星期一263.一道循环的计算题问题 宝箱里有20枚金币,每天会增加10枚,但是乌鸦每周会偷走3枚,请计算一年53周每周宝箱内会剩余多少金币 found_coins=20 magic_coins=70 stolen_coin
17、s=3u coins=found_coinsv for week in range(1,53):w coins=coins+magic_coins-stolen_coinsx print(Week%s=%s%(week,coins)2021/3/29 星期一274.循环处理的几种语法for step in range(0,20):print(step)FOR循环x=45y=80 while x 50 and y 100:x=x+1 y=y+1 print(x,y)WHILE循环for x in range(0,20):print(hello%s%x)if x 9:breakBreak可以提前退
18、出循环2021/3/29 星期一28第七章 模块和函数函数是一些处理逻辑的集合模块是函数,变量的集合拥有更强大的功能海龟就是一个绘图模块2021/3/29 星期一291.函数构成def testfunc(myname):print(hello%s%myname)函数名,参数,处理testfunc(Mary)print(savings(10,10,5)执行函数def testfunc(fname,lname):print(Hello%s%s%(fname,lname)函数可以有多个参数函数可以有返回值def savings(pocket_money,paper_route,spending):r
19、eturn pocket_money+paper_route spending2021/3/29 星期一302.一个函数的例子每周生产X个罐子,计算出一年中每周位置总共生产的罐子。def spaceship_building(cans):total_cans=0 for week in range(1,53):total_cans=total_cans+cans print(Week%s=%s cans%(week,total_cans)函数调用spaceship_building(2)#A工厂每周只能生产2个spaceship_building(10)#B工厂每周只能生产10个考虑一下使用函
20、数的好处2021/3/29 星期一313.模块(moudle)如何导入模块import sys#导入系统模块Import turtle#导入海龟绘图模块只有导入模块后,才可以使用它2021/3/29 星期一324.使用sys模块sys模块内部有一个特殊的对象称为stdin(标准输入),它提供了一个相当有用的函数readline。ReadLine函数用于读取一行文本类型在键盘上,直到按回车键。Standard input的略称import sysdef ageEV():print(How old are you?)age=int(sys.stdin.readline()if age 15 and
21、 age ozwald=Giraffes(100)gertrude=Giraffes(150)print(ozwald.giraffe_spots)100 print(gertrude.giraffe_spots)150初期化函数的例子初期化函数的例子初期化函数的使用实例初期化函数的使用实例2021/3/29 星期一41第九章 python自带的常用函数2021/3/29 星期一421.Python自带函数-1获得绝对值获得绝对值 abs()print(abs(10)10布尔变量布尔变量 bool()print(bool(0)False print(bool(1)True print(bool
22、a)Dir函数函数 print(bool(0)False print(bool(1)True print(bool(a)#用它来计算绝对值#用它来取得逻辑真假,可进行IF判断 还记得条件语法吗 if elif else#它的参数是任意类型,执行结果可以告诉你,可以处理这种类型所有的函数。你需要从一堆结果中找出自己有用 的信息。看看下面的记过,对于整数你可以利用那些函数。print(dir(1)_abs_,_add_,_and_,_bool_,_ceil_,_class_,_delattr_,_dir_,_divmod_,_doc_,_eq_,_float_,_floor_,_floordiv
23、format_,_ge_,_getattribute_,_getnewargs_,_gt_,_hash_,_index_,_init_,_init_subclass_,_int_,_invert_,_le_,_lshift_,_lt_,_mod_,_mul_,_ne_,_neg_,_new_,_or_,_pos_,_pow_,_radd_,_rand_,_rdivmod_,_reduce_,_reduce_ex_,_repr_,_rfloordiv_,_rlshift_,_rmod_,_rmul_,_ror_,_round_,_rpow_,_rrshift_,_rshift_,_rsub
24、rtruediv_,_rxor_,_setattr_,_sizeof_,_str_,_sub_,_subclasshook_,_truediv_,_trunc_,_xor_,bit_length,conjugate,denominator,from_bytes,imag,numerator,real,to_bytes2021/3/29 星期一432.Python自带函数-2获得帮助获得帮助help help(abs)Help on built-in function abs in module builtins:abs(x,/)Return the absolute value of t
25、he argument.执行命令函数执行命令函数 eval your_calculation=input(Enter a calculation:)Enter a calculation:12*52 eval(your_calculation)624#用它让Python告诉你函数的使用方法,不过都是英文哦!执行命令函数执行命令函数 eval my_small_program=print(ham)print(sandwich)exec(my_small_program)hamsandwich区别 eval 可以有返回值 exec 无返回值2021/3/29 星期一443.Python自带函数-3
26、浮点值浮点值 float()print(abs(10)10整数整数 int()float(123.456789)123.456789 your_age=input(Enter your age:)Enter your age:20 age=float(your_age)if age 13:print(You are%s years too old%(age-13)You are 7.0 years too old#带很多位小数的值 int(123.456)123 int(123)123 int(123.456)Traceback(most recent call last):File,line
27、 1,in int(123.456)ValueError:invalid literal for int()with base 10:123.456出错了!字符串123.456不可以2021/3/29 星期一454.Python自带函数-4取得长度取得长度 len len(this is a test string)21 creature_list=unicorn,cyclops,fairy,elf,dragon,troll print(len(creature_list)6取得最大数,最小值取得最大数,最小值 max min numbers=5,4,10,30,22 print(max(nu
28、mbers)30 strings=s,t,r,i,n,g,S,T,R,I,N,G print(max(strings)t范围函数范围函数 range for x in range(0,5):print(x)count_by_twos=list(range(0,30,2)print(count_by_twos)0,2,4,6,8,10,12,14,16,18,20,22,24,26,28 count_down_by_twos=list(range(40,10,-2)print(count_down_by_twos)40,38,36,34,32,30,28,26,24,22,20,18,16,14
29、122021/3/29 星期一465.Python自带函数-5计算和计算和文件访问文件访问 test_file=open(c:test.txt)text=test_()print(text)文件内容xxxxxxxxx my_list_of_numbers=list(range(0,500,50)print(my_list_of_numbers)0,50,100,150,200,250,300,350,400,450 print(sum(my_list_of_numbers)2250 test_file=open(c:my,w)test_(What is green and loud?A fr
30、oghorn!)test_()读取文件写入文件2021/3/29 星期一47第十章 python常用的模块Python模块是函数、类和变量的集合。为了使它们更容易使用。Python使用模块来分组函数和类。例如,海龟模块,我们在前几章使用它,用它创建的画布在屏幕上画画。2021/3/29 星期一481.复制模块 copy-1导入复制模块导入复制模块复制模块的使用实例复制模块的使用实例 class Animal:def _init_(self,species,number_of_legs,color):self.species=speciesself.number_of_legs=number_o
31、f_legsself.color=colorimport copy import copy#导入复制模块 harry=Animal(hippogriff,6,pink)#创建harry对象 harriet=copy.copy(harry)#把harry复制到harriet print(harry.species)#输出harry的species属性hippogriff print(harriet.species)#输出hariet的species属性hippogriff作用 把一个对象复制给另一个对象就像你在复印机上复印资料一样写入文件创建一个动物类2021/3/29 星期一492.复制模块
32、copy-2Copy 和和 deepcopy harry=Animal(hippogriff,6,pink)carrie=Animal(chimera,4,green polka dots)billy=Animal(bogill,0,paisley)my_animals=harry,carrie,billy more_animals=copy.copy(my_animals)print(more_animals0.species)hippogriff print(more_animals1.species)Chimera my_animals0.species=ghoul print(my_a
33、nimals0.species)ghoul print(more_animals0.species)ghoul more_animals=copy.deepcopy(my_animals)my_animals0.species=wyrm print(my_animals0.species)Wyrm print(more_animals0.species)ghoul2021/3/29 星期一503.Python的关键字模块关键字关键字 keyword import keyword print(keyword.iskeyword(if)True print(keyword.iskeyword(oz
34、wald)False print(keyword.kwlist)False,None,True,and,as,assert,break,class,continue,def,del,elif,else,except,finally,for,from,global,if,import,in,is,lambda,nonlocal,not,or,pass,raise,return,try,while,with,yield通过关键字模块输出python关键字,帮助我们认识到python语言中那些单词是有特殊意义的,我们定义变量和函数时需要避开重名。2021/3/29 星期一514.随机函数模块 ran
35、domrandom 返回制定范围的随机值返回制定范围的随机值 import random print(random.randint(1,100)58 print(random.randint(100,1000)861choice 从列表随机取出一个项目从列表随机取出一个项目 import random desserts=ice cream,pancakes,brownies,cookies,candy print(random.choice(desserts)browniesShuffle 把列表洗牌重新排序把列表洗牌重新排序 import random desserts=ice cream,
36、pancakes,brownies,cookies,candy random.shuffle(desserts)print(desserts)pancakes,ice cream,candy,brownies,cookies2021/3/29 星期一525.系统模块对控制台进行操作 sysexit 关闭控制带关闭控制带 import sys sys.exit()stdin.readline 从控制台读入输入信息从控制台读入输入信息 import sys v=sys.stdin.readline()He who laughs last thinks slowest print(v)He who
37、laughs last thinks sloweststdout.write 把内容输出到控制台把内容输出到控制台 import sys sys.stdout.write(What does a fish say when it swims into a wall?Dam.)What does a fish say when it swims into a wall?Dam.52 import sys print(sys.version)3.1.2(r312:79149,Mar 21 2013,00:41:52)MSC v.1500 32 bit(Intel)version 显示系统版本显示系
38、统版本2021/3/29 星期一536.时间模块 time-1time 取得现在时间取得现在时间 import time print(time.time()1300139149.34 def lots_of_numbers(max):u t1=time.time()v for x in range(0,max):print(x)w t2=time.time()x print(it took%s seconds%(t2-t1)lots_of_numbers(1000)January 1,1970,at 00:00:00计算经过的时间time.asctime 取得可读的时间取得可读的时间 impo
39、rt time print(time.asctime()Mon Mar 11 22:03:41 2013 import time t=(2020,2,23,10,30,48,6,0,0)print(time.asctime(t)Sun Feb 23 10:30:48 2020time.asctime 自己定义一个时间自己定义一个时间2021/3/29 星期一547.时间模块 time-2time.localtime 取得现在时间的列表取得现在时间的列表 import time print(time.localtime()time.struct_time(tm_year=2020,tm_mon=
40、2,tm_mday=23,tm_hour=22,tm_min=18,tm_sec=39,tm_wday=0,tm_yday=73,tm_isdst=0)t=time.localtime()year=t0 month=t1 print(year)2020 print(month)2time.sleep 让计算机休息一会儿让计算机休息一会儿 for x in range(1,61):print(x)time.sleep(1)2021/3/29 星期一558.保存信息模块 pickle保存保存map信息到文件信息到文件 import picklev game_data=player-position
41、N23 E45,pockets:keys,pocket knife,polished stone,backpack:rope,hammer,apple,money:158.50w save_file=open(save.dat,wb)x pickle.dump(game_data,save_file)y save_()从文件读取保存的信息从文件读取保存的信息 load_file=open(save.dat,rb)loaded_game_data=pickle.load(load_file)load_()print(loaded_game_data)money:158.5,backpack:r
42、ope,hammer,apple,player-position:N23 E45,pockets:keys,pocket knife,polished stone2021/3/29 星期一56第十章 高级海龟绘图2021/3/29 星期一571.进阶海龟绘图运用学到的知识试试海龟画出下面的图运用学到的知识试试海龟画出下面的图2021/3/29 星期一58第十一章 图形界面2021/3/29 星期一591.什么是图形界面你现在使用的计算机就是图形界面(例如你现在使用的计算机就是图形界面(例如)2021/3/29 星期一602.Python的图形界面Python的图形包的图形包Import tki
43、nter要开发图形界面,首先要导入图形包Python的图形接口的图形接口tkniter.Tk()创建基本的窗口Python的窗口控件的窗口控件tkniter.Button()按键tkniter.Canvas()用来在窗口画图的画布等等。Python的窗口更新显示的窗口更新显示xxxx.Pack()当你画了控件xxxx后需要用执行Pack来让它显示2021/3/29 星期一613.Python的图形界面Python的标准图形控件的标准图形控件控件描述Button按钮控件;在程序中显示按钮。Canvas画布控件;显示图形元素如线条或文本Checkbutton多选框控件;用于在程序中提供多项选择框E
44、ntry输入控件;用于显示简单的文本内容Frame框架控件;在屏幕上显示一个矩形区域,多用来作为容器Label标签控件;可以显示文本和位图Listbox列表框控件;在Listbox窗口小部件是用来显示一个字符串列表给用户Menubutton菜单按钮控件,由于显示菜单项。Menu菜单控件;显示菜单栏,下拉菜单和弹出菜单Message消息控件;用来显示多行文本,与label比较类似Radiobutton单选按钮控件;显示一个单选的按钮状态Scale范围控件;显示一个数值刻度,为输出限定范围的数字区间Scrollbar滚动条控件,当内容超过可视化区域时使用,如列表框。.Text文本控件;用于显示多行
45、文本Toplevel容器控件;用来提供一个单独的对话框,和Frame比较类似Spinbox输入控件;与Entry类似,但是可以指定输入范围值PanedWindowPanedWindow是一个窗口布局管理的插件,可以包含一个或者多个子控件。LabelFramelabelframe 是一个简单的容器控件。常用与复杂的窗口布局。tkMessageBox用于显示你应用程序的消息框。2021/3/29 星期一624.实现你的第一个图形界面import tkinterdef hello():print(hello there)tk=tkinter.Tk()btn=tkinter.Button(tk,tex
46、t=click me,command=hello,width=8,height=1)btn.pack()canvas=tkinter.Canvas(tk,width=500,height=500)canvas.pack()canvas.create_line(0,0,500,500)导入tkinter定义一个函数,在控制台输出hello there创建窗口在窗口加入按键,尺寸为8,1 显示click 按下按键后执行hello函数显示按键创建画布尺寸为500,500显示画布在画布尺上画一条线这是执行结果2021/3/29 星期一635.常用的绘图方法-1绘制盒子绘制盒子import tkinte
47、rimport randomtk=tkinter.Tk()canvas=tkinter.Canvas(tk,width=500,height=500)canvas.pack()def random_rectangle(width,height,fill_color):x1=random.randrange(width)y1=random.randrange(height)x2=x1+random.randrange(width)y2=y1+random.randrange(height)canvas.create_rectangle(x1,y1,x2,y2,fill=fill_color)fo
48、r x in range(0,100):random_rectangle(400,400,#eb5699)2021/3/29 星期一645.常用的绘图方法-2绘制圆弧绘制圆弧import tkintertk=tkinter.Tk()canvas=tkinter.Canvas(tk,width=500,height=500)canvas.pack()canvas.create_arc(10,10,200,80,extent=359,style=tkinter.ARC)canvas.create_arc(100,100,200,200,extent=359,style=tkinter.ARC)参数
49、的意义1.图形左上角坐标2.图形右下角坐标3.绘制角度4.绘制圆弧常量2021/3/29 星期一656.常用的绘图方法-3绘制多边形绘制多边形import tkintertk=tkinter.Tk()canvas=tkinter.Canvas(tk,width=500,height=500)canvas.pack()canvas.create_polygon(1,1,100,10,100,110,fill=,outline=black)canvas.create_polygon(200,10,240,30,120,100,140,120,fill=,outline=black)参数的意义1.给
50、出所有顶点的坐标2021/3/29 星期一667.常用的绘图方法-4显示文字显示文字import tkintertk=tkinter.Tk()canvas=tkinter.Canvas(tk,width=500,height=500)canvas.pack()canvas.create_text(150,150,text=He said,Its my curse,font=(Times,15)canvas.create_text(200,200,text=But it could be worse,font=(Helvetica,20)canvas.create_text(220,250,te






