好的网站推荐下 感谢,asp.net ftp发布网站,义乌婚介网站建设,做视频直播网站一、程序设计基础1、Python历史2、Python特点Python的伪代码(形式语言)更接近于自然语言(自然语言)胶水语言3、Python的应用#xff1a;Google、Youtube等4、IDE1)Python是解释性语言(“同声传译”)#xff0c;支持有两种方法使用解释器#xff1a;交互式模式(interactivemo…一、程序设计基础1、Python历史2、Python特点Python的伪代码(形式语言)更接近于自然语言(自然语言)胶水语言3、Python的应用Google、Youtube等4、IDE1)Python是解释性语言(“同声传译”)支持有两种方法使用解释器交互式模式(interactivemode)和脚本模式(script mode)。(1)交互模式退出exit()(2)脚本模式三种代码格式源代码py 字节代码pyc 优化代码pyo代码注释行用#符号开始(用法同C的//)注释块两个三双引号()内的代码2)Spyder集成编程环境5、基本输入输出语句①屏幕行输出函数print(,,...)Python2不需要括号。输出占一行。print后面参数以逗号结尾则输出变量值后不换行print后面无参数则输出一空行。②键盘输入函数Python2和3中input([])接收键盘输入并返回表达式Python2中raw_input([])返回值是键盘输入的字符串(若用为数字则需强制类型转换)input()等价于eval_r(raw_input())。Python可以一边输入一边赋值。如num1int(raw_input())二、常量变量1、和C语言相似的转义字符\n换行newline \单引号2、变量名是大小写敏感的变量名的命名原则也符合一般的标示符规则变量在使用前必须已经定义(先定义再使用)Python的变量赋值(变量绑定对象)实际上是将值指向址同一个值指向同一个址而址可以映射不同的变量名。这是与其他语言区别的地方三、数据类型1、数据类型函数type()整数(integer)十进制21 八进制025十六进制0x15浮点数(float)1.65 2. .21 2.1E2布尔数(boolean)布尔值(True False)注意大小写复数(complex)12i字符串(string)使用单引号、双引号或三引号括起来。三引号()括起来时保留了字符串中的全部信息包括回车。2、Python并不需要使用变量前先要类型声明但在使用前还是需要先初始化赋值3、类型转换和C一样计算中也有自动类型转换bool→int→float→complexPython也支持强制类型转换 ()如int(32)int(3.9)等(类型转化的类型名不用加小括号这与C不同)四、运算符(按运算符优先级排列除特别声明多为左结合性)1、算术运算符**(乘方即指数运算右结合性如2**2**3256而不是64)*/(除除不尽结果用double型输出)%取余 #(3.0以上版本除结果向下取整floor division) -加减乘除甚至可以用于字符串运算(级联)例如verygood、repeap*3等2、关系运算符①大于 大于等于 小于等于等于 !(或)不等于②Python与C不一样的是它可以这样写一个关系表达式1 a 23、逻辑运算符①not逻辑否 and逻辑与 or逻辑或②逻辑运算的结果是逻辑常量True、False但在表达式中所有非0数都被运算为True。有些与C不同的123 and 456 -- 456123 or 456 --1234、赋值运算符(右结合性)① * / - % //注意Python不支持C语言的自增自减②Python支持这样的赋值写法a,b1,2a,b,ceval_r(raw_input(输入三个数)) #eval用于转换字符为表达式五、表达式Python表达式和语句不同表达式具有一个值语句没有。a1是表达式a1是语句六、控制结构流程图一)顺序二)分支1、if :elif :else:(和C语言不同的是)if、elif、else后面的表达式不用小括号括起来表达式后面的语句组也不需要用大括号{}括起来(用强制缩进表示程序块)这意味着Python是以一行表示一个语句的(一行上语句过长可用_续行)若if体中暂没有语句可用pass占位语句体只有一句则可以喝if、elif或else合并为一行if、elif、else按序检查若满足其中一个条件就执行之后的就跳出if体。2、条件赋值a,if else b条件成立时变量值为a否则为b三)循环循环一般由循环初始值、循环条件、循环动作、更新循环条件等组成1、while循环和for循环(和C不同)①while :else:②for inrange([,][,]):else:for用于已知次数的循环2、for和while的转换for和while还是有一些区别的for是遍历数组值while则是逻辑值错在哪里右边的while循环i的终值被多加了1个步长3、循环控制(和C相同)break跳出当前循环continue跳出当次循环七、函数一)内置函数——模块importmath这样的语句用于导入模块(类似C中的头文件、库文件)●模块中有哪些对象方法属性可用dir函数dir()●模块的使用类似于对象的属性、方法的调用(即“点记法”)如math.pi、math.sin()、math.log10()●此外还可以用from import*来导入模块中所有的对象在使用时就可以直接使用不需加和点import math.tan [astg]则引入math中的tan[并重命名为tg]二)自定义函数def ( )返回值return 。函数可以有1个或更多个形参也可以无形参(但括号不能省)形参的作用域为local可以用global来声明全局变量。与C不同的一些地方①函数在使用前必须已经定义但在使用前无需像有些高级语言那样声明②参数指定关键字赋值在调用时指出这样引用时就不受形参位置的影响函数体内定义另一个函数并调用。例如定义了一个函数f(big,small)调用时可以这样引用f(small1,big3)缺省参数三)递归一个函数使用时可以调用另一个函数同样一个函数也可以调用它自己这就是“递归”。生活中的递归如老和尚讲故事、德罗斯特效应、两面相对的镜子等数学上可以用递归编程的有阶乘、斐波那契数列、汉诺塔等。一个递归函数一般由递归条件(“递”)和递归出口(“归”)构成递归编程的口诀“掐头去尾留中间”八、算法九、数据结构I、字符串String一)字符串函数长度len()拼接 重复 *n成员运算符(是否包含返回True、False) in 遍历 for c in :二)字符数组的概念和使用1、[]方括号[ ]就是索引运算符索引号从0开始(整数第一个字符)负索引号从-1开始即从字符串倒数第一个2、切片使用冒号可以引用索引号前后之间的字符串[start:finish]start子序列开始位置的索引值 finish子序列结束位置的下一个字符的索引值[start:finish:countBy] 间隔切片countBy缺省为1my_strhello worldmy_str[0:11:2]--hlowrdcountBy为-1时可获得逆字符串my_strworldmy_str[::-1]--dlrow #my_strmy_str[::-1]用于判断单词是否回文3、不能用字符串索引来改变字符串的值my_strhello worldmy_str[1]l #错误但可以使用切片、拼接等方式如my_strmy_str[:1]astr[2:]三)字符串方法替换replace(old,new)my_strhellomy_str.replace(e,a)--hallo注意replace方法并没有改变字符串的值只是输出一个替换的字符串原字符串还是hello可以用dir(str)查看字符串的更多属性方法四)字符串比较可以对两个字符串关系运算比较ASCII顺序五)字符串格式化与正则表达式II、文件File一)文件打开和关闭fopen()f.close二)遍历文件行fopen(names.txt)for line in f:f.closeIII、列表List一)[,,...] 列表有点像数组但列表中的元素可以是不同类型的。和字符串一样可以通过下标、索引、切片等来引用列表元素用法也相似同样支持长度、拼接、重复、成员运算等。但和字符串不同的列表及其元素是可以改变的。二)列表内建方法.append #在列表末尾追加一个元素相当于列表做加法().expend([]) #在列表末尾追加一个列表.insert(,).pop() #从后删除一个元素.remove() #删除指定元素值.sort() #元素排序.reverse(() #元素逆序.swap(,,) #交换元素三)遍历算平均for num in :snumavgs/len()四)列表内建函数sum() #求数值列表的和maxmin五)查找和排序1、线性查找.index() #线性查找元素第一次在列表中出现的位置若找到返回该值的索引号反之返回出错信息线性查找的时间复杂度为O(n).find() #类似index但不同的是找不到子字串时返回-12、二分查找二分查找要先排序二分查找的时间复杂度为O(log2n)3、选择排序即每次遍历将最小值剪切到前面(或将最小值与初始最前面元素交换)选择排序时间复杂度为O(n2)4、冒泡排序每一次遍历都将小值排前大值排后循环一次以后最大的元素被“沉底”这样的循环遍历直到遍历时找不到小值在后的元素(即lst(i)lst(i1)始终不成立。冒泡排序的时间复杂度也是O(n2) 但实际运行时冒泡法往往比选择排序时间少因为冒泡排序法通常执行的比较操作更少5、使用内建的排序函数和方法sorted() 和 .sort() #返回一个拍好序(默认升序)的列表(源列表不变)。它使用了快速排序算法(quicksort)其时间复杂度O(nlogn)内建排序后面省略了两个参数(key,reverse)reverse的缺省值即False六)嵌套列表(二维列表)列表 lst [[1, 2, 3, 4], [5, 6, 7, 8], [9, 10, 11, 12]]这是一个三行四列的嵌套列表若访问第三行、第二列lst [2][1]len(lst)的结果是3(“行数”)不是12(总元素个数)那么如何知道列表的列数呢len(lst[0])、len(lst[1])、len(lst[2])均可七)列表推导lst[x**2 for x in range(1,10)]IV、元组Tuple相当于不可变的列表用小括号来建立元祖可以使用索引、切片、len、print、index等方法不可以使用append、extend、del等V、字典Dict1、用大括号来建立字典字典元素由不可重复的键和值构成键必须是不可变的且不重复(如整型、浮点型、元祖等不可变类型)值可以是任意类型(如列表等也可以)my_dict{Tom:78,Jim:89,Mary:80}2、字典元素存储时并不按输入先后顺序排列也不按字母顺序排列所以字典不支持排序。因此引用字典时应使用键名引用 my_dict[Jerry]993、字典也支持长度函数len、成员运算符in(判断一个“键”是否在字典中它的时间复杂度为O(1)相比较字符串和列表的O(n)速度更快)等此外字典还支持以下方法.items() #获取全部的键-值对.keys() #获取全部的键.values() #获取全部的值.clear() #清空字典VI、集合Set1、无序不重复元素(键)值。相当于没有值只有键的字典(所以也可以用{}建立集合集合的元素类似于字典的键其类型应是不可变不重复的如整型、浮点型、元祖等)和字典一样集合也没有顺序不支持排序。2、集合的创建使用set函数xset()集合的添加add方法和删除remove方法x.add(body)x.remove(body)3、集合的运算符 交集| 并集- 差集 等于! 不等于in 成员for keyin set 枚举VII、类和对象十、GUI简介GUI的第三方API库TKinter、wxPython、PyQt、PyGtk等from Tkinter import* #导入GUI库def changeRelief( )rootTk( ) #建立控件label1Label(root,textHello)button1Button(root,textOK,commandchangeRelief) #commandchangeRelief事件处理绑定label.pack( )button1.pack( )root.mainloop( )十二、数据库数据库管理系统(DataBase Management SystemDBMS)商业系统Oracle、Microsoft SQL Server、IBM DB2等开源(Open Source)系统MySQL、PostgreSQL、SQLite等其中SQLite3版本的基本用法1、安装将zip解压即可2、创建或打开数据库sqlite3test.db3、创建一个表creatsqlite creat table(name,num,phone)4、插入一行(记录)sqlite insert into values(Zhang,1,13150201234);5、查询select from select from whereid select from where id like 6、删除deletedelete from7、修改updateupdate set AttribueNEW8、在Python中使用SQLite3import sqlite3consqlite3.connect(test.db)curcon.cursor() #创建一个游标cur.execute(select * from student)rowscur.fetchall()for row in rows:print row十三、Web编程基础Django1、安装python setup.py installdjang-admin.py startproject mysite2、运行python manage.py runserver3、创建应用python manage.py startapp addr_book编辑addr_book4、模板HTML语言模板不是必须的可以将HTML代码写在视图中但是这样不便于改动和分工(可以由专门的美工负责设计网页)。5、模型数据库HTML表单模型不是必须的可以将数据库操作代码写在视图中但是这样不便于切换到新的数据库需要针对新的数据库修改代码。有了模型切换数据库仅需要修改settings.py 即可。【相关网站】