Python程序设计基础及实践(慕课版)PPT完整全套教学课件_第1页
Python程序设计基础及实践(慕课版)PPT完整全套教学课件_第2页
Python程序设计基础及实践(慕课版)PPT完整全套教学课件_第3页
Python程序设计基础及实践(慕课版)PPT完整全套教学课件_第4页
Python程序设计基础及实践(慕课版)PPT完整全套教学课件_第5页
已阅读5页,还剩1011页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

信息科学技术学院Python程序设计基础及实践(慕课版)信息科学技术学院文科计算机基础中国大学MOOC课程:信息科学技术学院计算机基础知识计算机发展史信息科学技术学院内蒙古阿斯哈图石林手工计算装置算盘汉代即有珠算的记载手工计算装置计算尺通过对数,把乘法和除法操作变为加法和减法log(xy)=log(x)+log(y)和log(x/y)=log(x)-log(y)机械计算装置帕斯卡(法国1623-1662)加法器机械计算装置莱布尼茨(德国1646-1716)乘法器机械计算装置巴贝奇(英国1792—1871)分析机第一次提出了存储程序的思想,打算把数据和指令存在打孔卡上面进行运算。最终没有成功。艾达·拜伦,试图解释如何用分析机算伯努利数,被称为第一个程序员电子计算机第一台电子计算机ENIAC1946年,美国宾夕法尼亚大学为计算炮弹弹道而设计占地面积约170平方米,重30吨每秒5000次加法,相当于当代笔记本电脑计算速度的十万到百万分之一电子管计算机电子计算机第一代:电子管计算机第二代:晶体管计算机第三代及以后:集成电路(芯片)计算机集成电路(IntegrationCircuit)一个芯片(硅片)上有大量晶体管,称为集成电路集成电路显微图集成电路(IntegrationCircuit)一个芯片(硅片)上有大量晶体管,称为集成电路高纯度硅晶圆片光刻以后的硅晶圆片集成电路(IntegrationCircuit)大规模集成电路(LargeScaleIntergration:VSI)在一个芯片上集合有1000个以上电子元件超大规模集成电路(VeryLargeScaleIntergration:VLSI)在一个芯片上集合有10万个以上电子元件特大规模集成电路(UltraLarge-ScaleIntegration:ULSI)巨大规模集成电路(GigaScaleIntegration:GSI)1亿个

现在IntelCorei7处理器的芯片集成度达到了14亿个晶体管集成电路(IntegrationCircuit)纳米工艺

芯片上电路之间的距离,是衡量芯片集成度的指标目前这个距离可以做到7纳米(1纳米=10-9米,4倍原子直径)个人电子计算机1981年,IBM公司IBMPC5150,首次提出了PC的开放式业界标准此后有IBMPCXT/AT/286/386/486/586直到被联想收购IBMPC和微软互相成就个人电子计算机AppleII电脑于1977年6月5日上市1MHzCPU4KB内存无硬盘,数据存磁带上1298美元个人电子计算机第一个图形界面个人电脑1983年,苹果公司Macintosh阿兰·图灵AlanMathisonTuring,1912—1954英国科学家提出“图灵机”二战破译德军密码提出“图灵测试”概念人工智能奠基人计算机界最高奖以它命名计算机的本质

图灵机现有计算机的计算能力不超过图灵机1.一条无限长的纸带被划分为一个个小格子,每个格子上包含一个来自有限字母表的符号。纸带上的格子从左到右依此被编号为0,1,2,...,纸带的右端可以无限伸展。2.一个读写头HEAD。该读写头可以在纸带上左右移动,它能读出当前所指的格子上的符号,并能改变当前格子上的符号。3.一套控制规则。它根据当前机器所处的状态以及当前读写头所指的格子上的符号来确定读写头下一步的动作,并改变状态寄存器的值,令机器进入一个新的状态。

4.一个状态寄存器。它用来保存图灵机当前所处的状态。(程序和数据都可以存在纸带上)阿兰·图灵《模仿游戏》剧照冯·诺伊曼JohnvonNeumann,(1903-1957),美籍匈牙利数学家、计算机科学家、物理学家计算机的冯·诺伊曼体系结构“程序存储,共享数据,顺序执行”,需要CPU从存储器取出指令和数据进行相应的计算。(1)指令和数据一样可以参与运算(2)指令和数据都放在存储器里(3)数据以二进制表示;(5)将软件和硬件完全分离;(6)指令由操作码和操作数组成;(7)指令顺序执行(8)通过“总线"在CPU和存储器之间传送数据计算机软件常识信息科学技术学院美国加州太浩湖计算机软件的分类“系统软件”操作系统--Windows,MacOS,Linux,Android,IOS语言编译器(解释器)Python,C,Swift数据库“应用软件”office,IE,edge,chrome,PhotoShop,各种手机app操作系统计算机系统最基础的软件管理计算机硬件与软件资源处理如管理与配置内存、文件存储和检索、控制输入设备与输出设备、操作网络管理多个同时运行的程序提供一个让用户与系统交互的操作界面提供让程序员使用的编程接口古老的操作系统DOS微软公司起家的操作系统Window中的cmd(命令提示符)早已过时仍然流行的通用计算机操作系统Windows 微软公司用于PC和服务器Unix KenThompson、DennisRitchie和DouglasMcIlroy于1969年在AT&T的贝尔实验室开发。多用于大型服务器Linux

开源操作系统。芬兰人LinusTorvalds以Unix为基础开发。用于PC和服务器MacOS 苹果公司用于MacPC流行的手机操作系统Android

Google公司IOSApple公司数据库系统大量数据,需要有组织存放,才能查找快,更新快,删除快数据库就是专门用来存放大量数据(比如,几亿条甚至更多)的软件系统为数据建各种索引,以便快速查找常见数据库系统Oracle甲骨文公司DB2IBM公司SQLServer微软公司MySql开源数据库系统SQLite手机用小型数据库系统程序设计语言

常识信息科学技术学院美国大提顿国家公园程序设计语言机器语言汇编语言高级语言(分为编译型和解释型)

将高级语言编程机器能执行的机器语言的软件,有两种,编译器和解释器。Python是解释型

一般来说,编译型语言编写的程序更快

程序设计语言机器语言计算机能够执行的指令叫机器指令,机器指令完全是由0、1构成的一台计算机有哪些机器指令,每条机器指令是什么格式,完成什么功能,是由CPU的设计者事先定好的,这就叫指令系统由机器指令组成的程序,叫可执行程序不同CPU的指令系统不一样,因此能够在某种CPU上运行的程序,在别种CPU上未必能运行,在外星人的CPU上更加不行程序设计语言机器语言完成一次加法的几条机器指令可能会像下面的样子:

100000010000011000000000100000101000000000000000110000010010100100010000110000000000第一条指令,高四位为“1000”,表示要进行将数据从内存拷贝到寄存器的操作。紧接着的“0001”就表示要将数据拷贝到1号寄存器(寄存器有多个),最右边的“0000011000000000”表示数据的来源位于内存地址0000011000000000(二进制)处。最早期计算机使用机器语言编程,程序打在打孔纸带上,孔代表0,没孔代表1程序设计语言汇编语言将机器指令中难记的操作代码用直观的英文“助记符”来代替

MOVAX,0600MOVBX,8000ADDAX,BXMOV0C00,AX表示加法的“1100”用“ADD”代替,表示数据拷贝的“1000”用和“1001”用“MOV”代替,1号寄存器用“AX”代替,二号寄存器用“BX”代替程序设计语言高级语言接近自然语言的语法,不需要知道机器的细节,比如有几个寄存器

inputainputbc=a+bprintc程序设计语言常见的高级语言Java 开发Android程序,服务器程序,桌面程序解释型

C 开发系统程序,如操作系统,编译器编译型C++ 开发各种系统程序,游戏,文字处理程序编译型Python 非计算机专业人士首选,解释型Swift 开发ios程序JavaScript 开发网页程序,解释型Basic 开发桌面应用软件Scratch 儿童程序设计语言汇编器把汇编语言程序变成机器语言程序(可执行程序)的软件编译器把高级语言程序变成可执行程序的软件一次性把整个高级语言程序全部变成可执行程序运行程序时,不需要有编译器存在相当于一下翻译一篇文章解释器把高级语言程序变成可执行程序的软件运行到哪条语句,就把哪条语句翻译成机器指令,然后执行运行程序时,需要有解释器相当于同声传译二进制和

十六进制信息科学技术学院南法小镇EZE用0和1表示各种信息43计算机的电路由逻辑门电路组成。一个逻辑门电路可以看成一个开关,每个开关的状态是“开"(高电位)或“关”(低电位),即对应于1或0二进制数的一位,取值只能是0或1,称为一个“比特”(bit),简写:b用0和1表示各种信息44计算机的电路由逻辑门电路组成。一个逻辑门电路可以看成一个开关,每个开关的状态是“开"(高电位)或“关”(低电位),即对应于1或0二进制数的一位,取值只能是0或1,称为一个“比特”(bit),简写:b八个二进制位称为一个“字节”(byte),简写:B用0和1表示各种信息45计算机的电路由逻辑门电路组成。一个逻辑门电路可以看成一个开关,每个开关的状态是“开"(高电位)或“关”(低电位),即对应于1或0二进制数的一位,取值只能是0或1,称为一个“比特”(bit),简写:b八个二进制位称为一个“字节”(byte),简写:B1024(210)字节称为1KB,1024KB称作1MB(1兆),1024MB称作1GB,1024GB称作1TB。用0和1表示各种信息460和1足以表示和传播各种信息。比如,

用8个连续的0或1(即1个字节)来表示一个字母、数字或标点符号,比如用“00100000”表示空格,用“01100001”表示字母“a”,用“01100010”表示字母“b”,用“01100011”表示字母“c”……。由8个0或者1的组成的串,一共有28即256种不同的组合,这就足以表示10个阿拉伯数字以及英语中用到的所有字母和标点符号了。此即为ASCII编码方案。图片、视频和可执行程序,也可以用0和1表示给定一个K进制数,求它是多大47假设有一个n+1位的K进制数,它的形式如下:

AnAn-1An-2。。。。。。A2A1A0(比如

八进制数1723)

则其大小为:

A0×K0+A1×K1+……+An-1×Kn-1+An×Kn数就是数,没有进制之分,只有数的表示形式,才有进制之分。所谓“十进制数”,是“数的十进制表示形式"的简称。给定一个数,求其K进制表示形式48求数的K进制表示形式--短除法给定一个整数N和进制K,那么N可表示成以下形式:

N=A0×K0+A1×K1+A2×K2+……+An-1×Kn-1+An×Kn

=A0+K(A1+A2×K1+……+An-1×Kn-2+An×Kn-1)

N除以K所得到的余数是A0,商是A1+A2×K1+……+An-1×Kn-2+An×Kn-1。将这个商再除以K,就得到余数A1,新的商是

A2+A3×K1+……+An-1×Kn-3+An×Kn-2不停地将新得到的商除以K,直到商变成0,就能依次求得A0、A1、A2……An-1、An。显然,Ai<K(i=0…n),且最终得到的K进制数就是:AnAn-1An-2。。。。。。A2A1A0

K进制小数49K进制小数0.A0A1……An的值是:A0×K-1+A1×K-2+……+An×K-(n+1)(0.12)10=1×10-1+2×10-2(0.1)3=1×3-1即1/3,表示成10进制就是无限循环小数

可见,n进制下的有限位小数,在m进制下可能就无法精确表示,因为会无限循环十进制有限位小数,在二进制的情况未必能用有限位数表示出来。计算机内存有限,不可能存放无限位,因此计算机的小数运算会有误差。比如,计算机其实无法精确表示4.9,只能精确表示4.899999999...之类一个很接近的数十六进制数50十六进制数应该有16个数字,除0到9外:A10B11C12D13E14F15小写也可以十六进制数到十进制数的转换51十六进制数转换计算过程十进制数00×160011×1601A10×16010100×160+1×161161000×160+0×161+1×162256AFD22×160+13×161+15×162+10×16345010十六进制数和二进制数互转52四位二进制数正好就是一位十六进制数0 0000 01 0001 12 0010 23 0011 34 0100 45 0101 56 0110 67 0111 78 1000 89 1001 910 1010 A11 1011 B12 1100 C13 1101 D14 1110 E15 1111 F十进制二进制十六进制十进制二进制十六进制AB2E 1010101100101110二进制转十六进制:从右到左,每4位转一个十六进制位,最后不足4位则左边补001110111001DC信息量的单位bit 简写为b,比特,位,只能表示0或1,Byte 简写为B,字节,等于8个bitbps 波特率,bitspersecond,即每秒传送多少bit常用数量级K 1024=210M 1024K=220G 1024M=230T 1024G=240P 1024T=250Mb是1Mbit MB是1MByte GB是1GByte一般存储空间是XXG,XXM,说的是XX

GB,XXMB一般说的网速(带宽)XXM,指的是网速为XX

Mbps计算机硬件及指标信息科学技术学院河北草原天路计算机硬件及指标中央处理器CPU主频CPU的时钟频率。单位Hz,例如i7处理器主频4.2GHz,1.7GHz一条指令需要若干个时钟周期才能完成,时钟频率越高,则时钟周期越短因此

一般来说,主频越高,速度越快。

计算机硬件及指标中央处理器CPU核数如单核,双核,四核,八核不同的核可以同时运行不同的程序,因此核越多,速度越快。单核看上去也能同时运行不同程序,是因为不同程序轮流在同一个核上运行,切换很快,所以宏观上看起来都在同时运行。实际上是分时运行的。计算机硬件及指标中央处理器CPU高速缓存cache如6MB,9MB越大越好cache在CPU里面,访问速度比内存(memory)快。内存不在CPU里面。将内存里的一些数据放在cache里面,下次再要读取的时候,就可以从cache里面读取,不必从内存里面读取,加快了速度。计算机硬件及指标中央处理器CPU位数如32位CPU,64位CPU,目前电脑CPU一般都是64位。一般来说,CPU是多少位,就说电脑是多少位的。位数指的是CPU中寄存器的比特数。加减乘除各种运算,都要先将数从内存取到寄存器里面,才能进行,计算结果也是先生成于寄存器,然后再存入内存。N位的CPU,一条加法指令只能将两个N位的整数相加,内存最多2N字节(32位电脑内存最多4G)早期有32位、16位、甚至8位的电脑。因此,现在还有些软件分为32位的版本和64位的版本,例如Pycharm。64位的版本的软件无法在32位的电脑上运行,但一般32位的版本可以在64位的电脑上运行。计算机硬件及指标内存memory存放程序和数据的芯片计算机的内存一般为4GB,8GB,16GB,64GB,128GB手机运行内存一般为4GB,8GB,16GB内存里的数据,在重启或关机以后就消失。计算机程序都是在内存里运行的因内存访问速度高于外存,即便CPU相同,内存大也会导致运行速度快,道理同cache计算机硬件及指标外存计算机的硬盘,一般为512GB,2TB,4TB手机的机身存储,一般为16GB,64GB,128GB,256GBSD卡或U盘(芯片也称为闪存flashcard),一般为16GB,64GB,128GB,256GB外存里的数据,在机器重启,关机以后依然能够保持,没电也能保持。CPU可以直接从内存取数据,外存的数据要先取到内存,才能被CPU取到计算机硬件及指标位数现在的电脑一般都是64位的华为HUAWEIP20AI智慧徕卡双摄全面屏游戏手机6GB+128GB

亮黑色全网通移动联通电信4G手机双卡双待CPU 海思(Hisilicon)内存 6GB外存 128GB还可以加SD卡扩充外存计算机硬件及指标联想(Lenovo)小新青春版英特尔酷睿i714英寸轻薄笔记本电脑(I7-8565U8G512GFHD2G独显)追梦银CPU 酷睿i7(i3,i5,i7,i9越大越好)内存 8GB硬盘 512GB显卡内存 2GB计算机硬件及指标华为HUAWEIP20AI智慧徕卡双摄全面屏游戏手机6GB+128GB

亮黑色全网通移动联通电信4G手机双卡双待CPU 海思(Hisilicon)内存 6GB外存 128GB还可以加SD卡扩充外存信息在计算

机中的表示信息科学技术学院银川沙湖(航拍)文字在计算机中的表示每一个文字(字母)都是一个点阵图或者矢量图24×24点阵图点阵图放大就失真矢量图记录每一个笔画的曲线(曲线上一些点的坐标),放大不失真每一个文字(字母)都有一个编码(若干位0,1的组合)文字在计算机中的表示ASCII编码1个字节,即8bit。因此最多只能表示256个字符'A'的ASCII编码是0‭1000001‬转成10进制就是65英文字母,标点符号,数字都可以用ASCII编码表示,它们的编码都小于128数字,大写字母,小写字母的ASCII编码连续文字在计算机中的表示GB编码(中国国标编码)用1字节的ASCII编码表示字母,数字和标点符号。这些编码都小于12810000000(2)80(16)用连续两个大于128的字节,表示一个汉字一共包含6000多汉字文字在计算机中的表示GB编码(中国国标编码)在记事本notepad中编辑以下内容:a好b的c存成ANSI格式(GB编码)的.txt文文件,实际上文件里的每个字节内容及其对应字符如下(十六进制),一共7个字节61

BAC362

B5C463a

好b

的c文字在计算机中的表示UTF-8编码用1-4个字节表示一个字符。基本囊括全世界所有常用语言的常用字符(其中英文字母,数字,标点符号还是用1个字节表示,和ASCII编码相同)。在记事本notepad中编辑以下内容:a好b的c存成UTF-8格式的.txt文文件,实际上文件里的每个字节内容如下(十六进制),汉字一般都是3个字节:61

E5A5BD62

E79A8463a

好b

c文字在计算机中的表示unicode编码用2个字节表示一个字符,不论英文还是汉字图像在计算机中的表示一副图片由像素构成,一个像素对应于屏幕上的一个点图片的分辨率1920×1028表示图片的像素构成1920行,1028列屏幕的分辨率1920×1028就是指屏幕上的像素数目手机摄像头4000万像素,指的是其拍摄的每张照片包含4000万个像素图像在计算机中的表示像素颜色的形成原理屏幕上的每个像素由挨在一起很近的3个点(3个颜色分量)构成,三个点分别为蓝色,红色,绿色,深浅可变。人眼不能分辨3个点,看到的就是红绿蓝三种颜色混合后得到的各种颜色。如果每个分量都是0,则像素就是黑色。每个分量都取最大值,像素就是白色。如果红色分量取最大值,其它分量都是0,则是正红色,以此类推。图像在计算机中的表示像素颜色的形成原理用越多的bit表示颜色分量,图像能展示的颜色种类就越多24位真彩色图像:每个像素用3个字节表示,每个分量各8bit(有256个深浅级别)。于是像素一共可以有256×256×256种不同的颜色图像在计算机中的表示.bmp文件:没有经过压缩的位图(图像)文件(数码相机raw格式的照片).jpg,.png,.tif经过有损压缩的图像文件.gif可以表示简单动画的图像文件图形和图像的区别由点阵(像素)构成的图,称为图像由矢量(曲线)构成的图,称为图形图像放大了会失真,马赛克化,边缘锯齿化图形放大不会失真图像一般体积较大图形一般体积较小PhotoShop软件处理图像CoreDraw,Illustrator软件处理图形网上各种图标,表情包有的是图像,有的是图形

例如:/piccate/11-198-0.html图形和图像的区别视频在计算机中的表示视频是由一幅幅图像构成。普通电影一秒钟24幅图像(24帧),人眼看起来就比较自然,没有跳跃。每秒帧数,记为fps(framepersecond)个别电影每秒可达120fps(李安《比利林恩中场战事》1080p视频,指的是视频中的每幅图像,分辨率是1920×10804K高清电影或电视节目,指的是视频中的每幅图像,分辨率是4096×2160视频在计算机中的表示视频文件都是经过有损压缩的视频文件有.mpeg,.mp4,.rmvb,.avi等等,编码格式不同,需要不同解码器才能播放。有些播放器内置各种解码器,或者可以安装解码器插件。声音在计算机中的表示声音是由振动产生的机械波。振动的大小称为振幅。记录声音的办法:对一段声音,每隔一个很短的时间T(1/22K秒,1/44K秒)记录一下振幅即可。这个过程称为“采样”。T就是采样周期,1/T就是采样频率,单位Hz,赫兹。采样频率越高,声音越接近真实。用来表示1个采样的bit数越多,声音越接近真实CD音质:44.1KHz,16bit,双声道,一秒声音需要176400字节,即约170KB。(约1408kbps)大部分免费mp3音乐是128kbps声音在计算机中的表示.wav文件:没有经过压缩的音频文件。CD里的音乐就是这个格式

一首歌大概要50MB-70MB。.mp3文件:经过有损压缩的音频文件。一般一首歌<10MB信息压缩技术信息压缩后,体积(字节数)变小,便于传输和保存分为无损压缩和有损压缩两类信息压缩技术无损压缩压缩后不会导致任何原信息丢失,原信息可以100%复原。常用的文件压缩工具winzip,winrar均做无损压缩。压缩纯文本(记事本能打开看的文件),压缩后体积可以达到原来的20%或30%信息压缩技术无损压缩一种简单无损压缩算法

行程压缩:abbbcdddddeffffgggg->1a3b1c5d1e4f4g每组连续的相同字母都用XY形式表示,X是个数,Y是字母在有大量连续相同字符的情况下,压缩有效信息压缩技术无损压缩另一种常用无损压缩算法:不等长编码

出现频率高的字符采用短编码,出现频率低的字符采用长编码比如,字母'e'的编码用1bit(1),字母'k'的编码用2bit(01)字母'z'的编码用12bit(001101010011)

信息压缩技术有损压缩通常用于图像,音频,视频。压缩后会损失一些人不容易注意到的信息,比如频率大于2万Hz或小于20Hz的声音,图像或者视频里四角或边缘位置的细节。MP3:音频有损压缩标准jpeg:图像有损压缩标准mpeg:视频有损压缩标准计算机网络常识信息科学技术学院宁夏中卫沙坡头计算机网络分类局域网LAN

一个单位,一个家庭的内部网络广域网WAN

基本上就是Internet网络传输速率(带宽)4G(第四代移动通信技术)

理论上最高100Mbps,实际上十几到二十几Mbps5G(第五代移动通信技术)

理论上能达到1Gbps家用宽带出口 100到200Mbps家用无线路由器 1000到2000MbpsInternet的历史1969年,美国国防部将4台军事及研究用电脑主机联接起来,ARPANET网络诞生1971年,是美国BBN公司工程师Tomlinson,在ARPANET发送了第一封Email1972年提出了开放式网络架构思想,并根据这一思想设计出沿用至今的TCP/IP传输协议标准Internet的历史1985年,美国科学家基金会(NSF)组建NSFNet,美国的许多大学、政府资助的研究机构甚至一些私营的研究机构纷纷把自己的局域网并入NSFNet中1989年,欧洲核子物理实验室的英国科学家蒂姆·伯纳斯·李提出超链接的思想,发明万维网web,编写第一个浏览器WorldWideWeb(后改为Nexus)和第一个网页服务器httpd。世界上第一条http://info.cern.ch/于1991年8月6日上网。Internet的历史1993年,伊利诺大学发明第一个流行的浏览器Mosaic1996年,微软推出IE浏览器1994年,雅虎Yahoo推出搜索引擎1998年,Google推出搜索引擎Internet的协议网络传输协议两台计算机互相发送信息,必须遵循双方约好的格式或规则,才能明白收到的信息是什么含义。这个格式或规则,就称为“协议”。两个人用自然语言对话,也可以被看作他们遵循某种“对话协议”。语言的词汇表和语法规则,就是“协议”。Internet的协议http协议浏览器和web服务器(提供网页的服务器)之间的数据传输协议。也称www协议。Internet的协议ftp协议ftp客户端(用来上传下载文件)和ftp服务器之间的文件传输协议。一般来说,建立一个网站,要把文件从本机传到网站的服务器上,就需要用ftp客户端,服务器需要提供ftp服务。一台电脑,可以同时作为web服务器、ftp服务器、Email服务器Internet的协议POP3/SMTP协议发送和接收Email的协议。用于在Email客户端(如outlook)和邮件服务器之间传输邮件。一台电脑,可以同时作为web服务器、ftp服务器、Email服务器Internet的协议TCP/IP协议Internet的基础协议,是上述几种协议下面的一层协议,用于Internet中电脑之间的01串原始数据传输。遵循此协议的电脑,都有一个互不重复的ip地址,如(7)Internet的协议IPV4地址格式为:数.数.数.数每个数是不超过255的非负整数,如:7ipv4格式最多表示2564(约40多亿)个ip地址,不见得够用IPV6地址格式:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX:XXXX一共128个bit,用:分成8段,每段是个4位16进制数,表示的地址数目永远够用Internet的协议协议分层http,ftp,email协议下面的那一层协议,就是tcp/icp协议。土匪用黑话交流,中文规则就是底层协议,黑话规则就是上层协议。土匪:天王盖地虎!(你好大的胆!敢来气你的祖宗?)杨子荣:宝塔镇河妖!(要是那样,叫我从山上摔死,掉河里淹死。)土匪:野鸡闷头钻,哪能上天王山!(你不是正牌的。)杨子荣:地上有的是米,喂呀,有根底!(老子是正牌的,老牌的。)Internet地址相关的一些概念ip地址和域名、DNSInternet上的电脑,用ip地址来标识局域网内的电脑,可以共用一个对外的ip地址,内部再分配不同ip地址,如192.168.0.XXX每个网址(域名,如)都会对应于1个ip地址数据通过tcp/ip协议在电脑间传送,传送的数据需要有接收者,接收者就是用ip地址:端口号决定,例如4:8080通过ip地址可以找到接收者电脑,通过端口可以找到接收者电脑上接受数据的程序。例如,web服务器对应的端口就是8080Internet地址相关的一些概念ip地址和域名、DNS用户难以记忆一个网站的ip地址,只会记域名DNS服务器(domainnameserver域名服务器)用于提供根据域名查找到ip地址的服务浏览器地址栏接受域名后,首先要访问DNS服务器得到域名对应的ip地址Internet地址相关的一些概念代理服务器procxy在浏览器中可以设置代理服务器,则浏览器发出的所有数据请求都先被发送到代理服务器,再由代理服务器发送目标服务器(比如),目标服务器发回的数据,也经有代理服务器转发回来在浏览器中设置一个国外的代理服务器,然后访问,墙就不知道你在访问,以为你在访问procxy,于是实现翻墙。procxy用的人多了,就会被禁掉Internet地址相关的一些概念VPNVirtualPrivateNetwork,虚拟私有网络能起到类似procxy的功能,用于翻墙有些内网服务器不允许外网访问,在外网的电脑接入内网的vpn以后,内网的服务器就会认为外网的电脑ip也在内网,因此可以访问Internet地址相关的一些概念MAC地址

计算机(包括手机)要上网,必须要有网卡。网卡原来是有线的,现在都是无线的。每个网卡都有一个MAC地址,也称物理地址。世界上所有网卡的MAC地址都不一样。一台计算机可以有多个网卡,就有多个MAC地址。Internet地址相关的一些概念路由器(router)一般家庭或学校机房内部可以用多台设备(计算机、手机)组成一个局域网,这些设备都可以连接在一个路由器上。路由器可以连接ADSL拨号器或其它宽带设备上网,对外只有一个ip地址,对内路由器可以自动为设备分配不同的ip地址,一般是192.168.0.X之类有了路由器后,若A和B两个设备位于两个不同的局域网,则它们的ip地址可以相同,比如都是0Web(http)协议的工作过程2.web服务器收到请求后,读取网页进行处理。静态网页:在服务器端本来就存在,单纯的html格式,web服务器直接传送给浏览器,浏览器显示之动态网页:在服务器端本来不存在,是由服务器临时生成的,或者网页中有程序,比如访问数据库的后台程序,以及要在浏览器中执行的javascript程序。web服务器执行后台程序,将执行结果生成新的网页,然后传送给浏览器。浏览器执行网页中的javascript程序,得到新的结果显示出来。javascript程序还可以实现网页和用户的交互。Web(http)协议的工作过程1.用客户端浏览器请求网页::8080/abc.htm

8080是端口号,通常可以省略不写。网页文件名如果不写,那么缺省地就是index.htm协议名:http

主机名(域名):(需要经过DNS解析域名,得主机的IP地址)端口:8080

对象(文件)路径:/index.htm网络安全常识密码要足够长,起码8位,要包含大小写字母,数字,太短太简单容易被登录爬虫猜到不同网站注册的帐号,密码一定要不一样。否则万一一个网站的用户数据泄露,就可能导致其它网站的密码都被泄露不要连接来历不明的免费公共wifi。如果不得不用,不要进行购物、银行账户操作等操作,以免密码被wifi假设者截获。不要随意打开陌生人发送的邮件信息或者链接,因为很可能是诱导链接或者带病毒链接,不可轻易点开。郭炜信息科学技术学院微博:/guoweiofpku学会程序和算法,走遍天下都不怕!(讲义照片均为郭炜拍摄)微信公众号文科计算机基础中国大学MOOC课程:/course/PKU-1460924165教材Python程序设计基础及实践(慕课版)郭炜编著人民邮电出版社慕课:中国大学MOOC实用Python程序设计/course/PKU-1460924165?from=searchPage信息科学技术学院Python初探信息科学技术学院福建省宁德市北岸公园程序设计语言概述常见程序设计语言Java:使用最广泛的语言。主要用于互联网服务器端应用和Android手机App开发C/C++:开发对速度要求较高的系统软件,以及大型端游C#:微软公司程序设计语言,网站开发,桌面应用开发PHP:网站开发JavaScript:网站前端开发。在浏览器中运行Swift:苹果公司语言,用于开发iPhoneApp和Mac桌面应用程序常见程序设计语言为什么学Python简单易学有众多的库支持,功能强大

编程效率高

跨平台(Windows,Linux,MacOS...)Python的历史Python的作者,GuidovonRossum,荷兰人。1982年,Guido从阿姆斯特丹大学(UniversityofAmsterdam)获得了数学和计算机硕士学位。之所以选中Python(大蟒蛇的意思)作为该编程语言的名字,是因为他是一个叫MontyPython的喜剧团体的爱好者。Python的历史

Python雏形 1991年Python1.0

1994年11月Python2.0 2000年Python2.7.13是Python2的最后版本Python3.0 2008年Python3不向后兼容Python2目前:Python3.8.6Python开发环境的安装和使用信息科学技术学院

郭炜内蒙古阿斯哈图石林下载Python/downloads/MacOSX64-bit/32-bitinstallerWindowsx86-64executableinstaller 64位WindowsWindowsx86executableinstaller 32位Windows搭建Python开发环境下载并安装Python3.x下载并安装pycharm-community-4.0.4(非必需,但强烈推荐)/pycharm/download/#section=windows3)配置pycharm4)在pycharm建工程5)编写、运行python程序安装Python1.不是下载下来就好了,还要运行下载下来的文件,进行安装2.要勾上,否则pycharm里面找不到python以命令行方式运行python程序Windows下,Win+R键,可以弹出左边“运行”窗口,敲"cmd"确定,就能弹出右边cmd窗口(命令行窗口)Mac上相应操作,是从launchPad里面启动“终端”以命令行方式运行python程序Windows下,Win+R键,可以弹出左边“运行”窗口,敲"cmd"确定,就能弹出右边cmd窗口(命令行窗口)敲cd\再敲cd\tmp(或其它文件夹名)进入存放python程序的文件夹pythonXXX.py就可以运行XXX.py用idle编辑程序并运行Python程序window键,然后敲idle,可找到idle,然后File|New|Run用PyCharm运行python程序File|NewProject新建一个工程(Mac电脑上,PyCharm的菜单在屏幕最上方)File|New新建一个PythonFile

并随意命名Run菜单运行程序。如果同时打开多个.py程序,则用Run|Run可以选一个。以后要运行同一个文件,在右上方点4)如果程序需要输入,则在PyCharm下方输入,输出结果也会出现在下方为project设置解释器如果pycharm找不到pythoninterpereter,则:File|Settings|Project:XXX|Projectinterpreter,然后选解释器。如果没得选,就addlocal加一个,加的办法是选python安装的文件夹安装Python要在命令行方式启动python,就要在安装的时候勾上不行就卸载重装最简单的Python程序print("Hello,World")程序中的符号程序中的所有字符都必须是英文(半角)字符,不能是中文(全角)字符,注意.',(,"之类的,都必须是英文字符!131输入了中文的括号和双引号,导致pyCharm以红线提示错误!信息科学技术学院Python语言基本要素符号和注释信息科学技术学院

郭炜瑞士布里茨恩湖程序中的符号

程序中的所有字符都必须是英文字符,不能是中文的字符,注意,:

.',("之类的,都必须是英文字符!不能是中文的!不能在输入中文状态下输入!中文的标点符号看起来一般比英文的更宽。除非就是要输出中文文字,才会在“字符串”中使用中文134注释135并非需要执行的指令,只是为了编程者方便理解程序之用注释:"#"开头a=b#让a和b的值相同

注释136Pycharm中,选中若干行,Ctrl+'/'可将这些行都变成注释/都由注释变为非注释信息科学技术学院福建省宁德市北岸公园变量新疆喀拉峻鳄鱼湾变量138变量有名字,可以用来存储数据。其值可变。a=12

b=a #让b的值变得和a一样

print(a+b)

a="hello"

print(a)输出:24hello变量的命名办法139变量由大小写字母、数字和下划线构成,中间不能有空格,长度不限,不能以数字开头

name_doorNumx1yza2A number_of_studentsMYTYPE变量名最好能够体现变量的含义多单词的变量名,最好第一个单词小写,后面单词首字母大写dateOfBirth numOfDogs bookPrice变量的命名办法140变量名是大小写相关的a和A,name和Name是不同的变量。有些名字Python预留了,不可用作变量的名字 andasassertbreakclasscontinuedef delelifelseexceptexecforfinallyfrom globalifimportinislambdanotorpass printraisereturntrywhilewithyield

如果不小心用了,python会报错信息科学技术学院新疆布尔津五彩滩赋值语句赋值语句142形式:

变量=表达式将变量的值变得和“表达式”的值一样变量、数、字符串都是“表达式”赋值语句143a="he"

print(a) #>>he

b=3+2

a=b#a的值变得和b一样

print(b) #>>5

print(a)#>>5

b=b+a#b的值改为原来b的值加a

print(b) #>>10赋值语句144a,b="he",12print(a,b) #>>he12a,b=b,a #交换a,b的值

print(a,b)#>>12hec,a,b=a,b,aprint(a,b,c)#>>he1212a=b=c=10print(a,b,c)#>>101010

信息科学技术学院新疆塞里木湖字符串初步字符串可以且必须用单引号、双引号或三单引号、三双引号括起来x="Isaid:'hello'"print(x) #>>Isaid:'hello'print('Isaid:"hello"')#>>Isaid:"hello"print('''Isaid:'hesaid"hello"'.''')#>>Isaid:'hesaid"hello"'.print("this\is\good")#>>thisisgood字符串太长时,可以分行写print(hello,word)

#错!没有用引号括起来146字符串字符串里面不会包含变量s=1.75print(s) #>>1.75print("Iamsmtall") #>>Iamsmtall字符串中的s就是个字符,和前面的变量s没有关系!!!字符串必须用引号括起来,用引号括起来的就是字符串!a=4b=5print("a+b")#>>a+b不会打出9!!!!!147字符串三双引号字符串中可以包含换行符、制表符以及其他特殊字符。para_str="""多行字符串可以使用制表符TAB(\t)。也可以使用换行符[\n]。<HTML><HEAD><TITLE>FriendsCGIDemo</TITLE></HEAD><BODY><H3>ERROR</H3><FORM><INPUTTYPE=buttonVALUE=BackONCLICK="window.history.back()"></FORM></BODY></HTML>"""print(para_str)148多行字符串可以使用制表符TAB( )。也可以使用换行符[]。<HTML><HEAD><TITLE>FriendsCGIDemo</TITLE></HEAD><BODY><H3>ERROR</H3><FORM><INPUTTYPE=buttonVALUE=BackONCLICK="window.history.back()"></FORM></BODY></HTML>字符串字符串的下标有n个字符的字符串,其中的每个字符都是长度为1的字符串:

从左到右依次编号为0,1,2...n-1

从右到左依次编号为-1,-2...-n编号就是下标a="ABCD" print(a[-1]) #>>Dprint(a[0]) #>>Aprint(a[2]) #>>C 149字符串不可修改不可以修改字符串中的字符a="ABCD" a[2]='k'#错,字符串中的字符不能修改150字符串用"+"连接字符串a="ABCD"b="1234"a=a+bprint(a) #>>ABCD1234a=a+a[1] print(a) 151字符串用"+"连接字符串a="ABCD"b="1234"a=a+bprint(a) #>>ABCD1234a=a+a[1] print(a) #>>ABCD1234B152字符串用in,notin判断子串a="Hello"b="Python"print("el"ina) #>>Trueprint("th"notinb) #>>Falseprint("lot"ina) #>>False153字符串和数

的转换信息科学技术学院内蒙古锡盟草原字符串和数的转换int(x) :把字符串转换成整数 (x不会变成整数,int(x)这个表达式的值是整数)float(x):把字符串x转换成小数str(x):把x转换成字符串eval(x):把字符串x看作一个python表达式,求其值初学者程序出现runtimeerror,多半是由于做了不合法的转换,如int(x)而x为"a12"或"12.34",float(x)而x为"abc"155字符串和数的转换a=15b="12"c=a+b#错误的语句,字符串和整数无法相加print(a+int(b))#>>27b没有变成整数int(b)这个表达式的值是个整数print(str(a)+b)#>>1512c=1+float("3.5")print(c) #>>4.5print(3+eval("4.5"))#>>7.5print(eval("3+2")) #>>5print(eval("3+a")) #>>18156小数到整数的转换int(x)x是小数,则去尾取整int(3.2) #3int(3.9) #3157Python数据类型int 整数 123456899899float 小数 3.21.5E6complex 复数 1+2jstr 字符串 "hello"list 列表 [1,2,'ok',4.3]tuple 元组 (1,2,'ok',4.3)bool 布尔 TrueFalsedict 字典 {"tom":20,"jack":30}set 集合 {"tom",18,71}输入输出初步信息科学技术学院

郭炜新加坡金沙酒店无边泳池输出语句printprint(x,y,z)#也可以只输出一项

连续输出多项,以空格分隔,然后换行print(x,y,z,end="")

连续输出多项,以空格分隔,不换行print(1,2,3,end="")print("ok")#>>123ok注意:做OpenJudge作业的时候,print里面慎用',',因为可能会多出不该有的空格160输入语句input格式:x=input(y)x是变量y是字符串,或任何值为字符串的表达式输出y,并等待输入。敲回车后输入的字符串被赋值给x161最简单的能处理输入的Python程序s=input("请输入你的名字:")print(s+",你好!")注意:以后做OpenJudge作业的时候,input里面不要写任何东西s=input()4)如果程序需要输入,则在PyCharm下方输入,输出结果也会出现在下方输入语句inputinput()每次输入一行,如果有多行输入,就用多次input()初学者常犯错误:如果输入已经结束(后面没有输入数据了),再进行input(),就会产生runtimeerror不要多行输入只用一次input,也不要一行输入用多次input164列表初步信息科学技术学院

郭炜德国国王湖列表列表可以有0到任意多个元素,元素可以通过下标访问empty=[]#空表list1=['Google','Runoob',1997,2000]list2=[1,2,3,4,5,6,7]print("list1[0]:",list1[0])#>>list1[0]:Googlelist1[2]=2001 #更改了列表中下标为2的元素。a=2print("更新后的第三个元素为:",list1[a])#变量也能做下标#>>更新后的第三个元素为:2001列表用in判断列表是否包含某个元素lst=[1,2,3,"4",5]print(4inlst,3inlst,"4"inlst)#>>FalseTrueTrue实例:输入两个整数求和s=input()numbers=s.split()print(int(numbers[0])+int(numbers[1]))若输入:34则:s为:"34"numbers为:["3","4"]输出:7字符串分割成列表若x是字符串,则x.split()的值是一个列表,包含字符串x经空格、制表符、换行符分隔得到的所有子串print("34\t\t45\n7".split())#>>['34','45','7']#\t是制表符,\n是换行符号

print("abcdhello".split())#>>['ab','cd','hello']

s="1234"

lst=s.split()

print(lst)#>>['12','34']print("abcd".split())#>>['abcd']print(input().split()[2][1])输入为abcdef1234567输出是:abcdef2dABD提交C单选题1分此题未设答案print(input().split()[2][1])输入为abcdef1234567输出是:abcdef2dABCD提交单选题1分程序顶格书写172程序每行前面不能留空格!(例外后面讲)OK!乱加空格,错!学会看提示信息郭炜信息科学技术学院微博:/guoweiofpku学会程序和算法,走遍天下都不怕!(讲义照片均为郭炜拍摄)微信公众号文科计算机基础中国大学MOOC课程:/course/PKU-1460924165教材Python程序设计基础及实践(慕课版)郭炜编著人民邮电出版社慕课:中国大学MOOC实用Python程序设计/course/PKU-1460924165?from=searchPage算术运算、逻辑运算和分支语句信息科学技术学院176算术运算信息科学技术学院宁夏中卫沙坡头算术运算符Python支持以下算术运算

+

加法

-

减法(双操作数),取相反数(单操作数)

*

乘法/除法

,结果是小数。即便能整除也是小数 %取模(求余数)

// 求商,结果取整数部分,不要余数 **求幂算术表达式a=(3+2)*(6-3)/2print(a) #>>7.5print(10/8) #>>1.25print(10%8) #>>2print(15/4) #>>3.75print(15//4) #>>3print(3.4/2.2) #>>1.5454545454545452print(3.4//2.2) #>>1.0print(2**3) #>>8print(-9//4)#>>-3往小里取整算术表达式/计算的结果都是小数,哪怕能整除z=10/2print(z) #>>5.0

-x

相当于0-xa=10print(-a) #>>-10print(-a*3) #>>-30等价于(–a)*3print(3+-5)#>>-2算术表达式

有小数的算术表达式,结果就是小数z=10.0-10print(z) #>>0.0z=7.5–2.5print(z) #>>5.0print(2+0*4.5) #>>2.0print(2+10/5) #>>4.0

算术运算符优先级第一级:

**第二级: -(求相反数)

第三级: *///%第四级: +-(减法)可以用()指定计算顺序:(3+4)*(1+2)记不得优先级就用()算术运算的同时赋值

+= a+=b 等价于a=a+b

-= a-=b 等价于a=a-b

*=

/=

%=//=

**=算术运算的同时赋值a=6a/=3print(a) #>>2.0a**=3print(a) #>>8.0常见问题或注意事项数学上的运算符号或代数式写法,不是拿到程序里就能直接用的!比如|x|在程序里并不能求x的绝对值,而是没定义,会出错!2(x+3)(4+x)这样的表达式也不能在程序里写!应该写:2*(x+3)*(4+x)乘法就一定要用'*'!常见问题或注意事项/的结果一定是小数。一个算术表达式,只要有一个操作数是小数,其结果就一定是小数。如果x是小数print(x)就会打出小数形式,哪怕x=4/2。如果题目要求是整数,就要注意了,不要把整数当小数打出来。print(4/2)打出2.0常见问题或注意事项/是÷

,不是分数线因此a/b*c是a÷

b×c,不是a/(b*c)print(4+6/2)的结果是77.05.05ACD提交B单选题1分此题未设答案print(4+6/2)的结果是77.05.05ABCD提交单选题1分关系运算符

逻辑运算符

逻辑表达式信息科学技术学院

郭炜韩国济州岛火山口六种关系运算符用于比较大小相等

==不等

!=大于

>小于

<大于等于

>=小于等于

<=比较的结果是bool类型,成立则为True,反之为Falsebool类型数据只有两种取值,True或False关系运算符和bool类型191print(3<5) #>>True

print(4!=7) #>>True

a=4

print(2<a<6<8) #>>True

print(2<a==4<6) #>>True

print(2<a>5) #>>False

b=a<6

print(b) #>>True

print(b==1) #>>True

print(b==2) #>>False

b=a>6

print(b==0) #>>Truea=True

print(a==1) #>>True关系运算符和bool类型192关系运算符也能比较字符串(按字典序,大小写相关)a="k" print(a=="k") #>>True

a="abc"

print(a=="abc") #>>True

print(a=="Abc") #>>False

print("abc"<"acd") #>>True

print("abc"<"abcd") #>>Trueprint("abc">"Abc") #>>True

关系运算符和bool类型193逻辑运算符用于表达式的逻辑操作,有andornot三种,操作的结果是True或False与:exp1andexp2当且仅当exp1和exp2的值都为True(或相当于True)时,结果为True(或相当于True)n=4

n>4andn<5 #false

n>=2andn<5andn%2==0#true

print(5andFalse)#>>False

print(4andTrue)#>>True逻辑运算符和逻辑表达式194

0,""(空字符串),[](空表),None

都相当于False(但除0以外都不等于False)

非0的数,非空的字符串和非空列表,都相当于True(但除1以外,都不等于True)True和1完全等价,False和0完全等价True==1 #TrueFalse==0 #True""==False #False2==True #False[]==False #False[2,3]==True #False什么相当于True或False195或:exp1orexp2当且仅当exp1和exp2的值都为False(或相当于False)时,结果为False

(或相当于False) n=4

n>4orn<5#True

n<=2orn>5#False

逻辑运算符和逻辑表达式196非:notexpexp值为True(或相当于True)时,结果为False(或相当于False)exp值为False(或相当于False)时,结果为True(或相当于True) not4<5 #False not5 #False not0 #True

not"abc" #False

not"" #True

not4<5and4>6 #False

not[] #True

not[1] #False

逻辑运算符和逻辑表达式197print(3<4or4>5and1>2) #>>True

print((3<4or4>5)and1>2) #>>Falsenot4<5and4>6即(not4<5)and(4>6)逻辑运算符的优先级not>and>or198exp1andexp2:如果已经算出表达式exp1为假,那么整个表达式的

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论