一、程序设计基础

1、Python历史

2、Python特点

Python的伪代码(形式语言)更接近于自然语言(自然语言)

胶水语言

3、Python的应用:Google、Youtube等

4、IDE

1)Python是解释性语言(“同声传译”),支持有两种方法使用解释器:交互式模式(interactive

mode)和脚本模式(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可以一边输入一边赋值。如

num1=int(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):1+2i

字符串(string):使用单引号、双引号或三引号括起来。三引号(''')括起来时,保留了字符串中的全部信息,包括回车。

2、Python并不需要使用变量前先要类型声明,但在使用前还是需要先初始化赋值

3、类型转换

和C一样,计算中也有自动类型转换:bool→int→float→complex

Python也支持强制类型转换: (),如int

('32'),int(3.9)等(类型转化的类型名不用加小括号,这与C不同)

四、运算符(按运算符优先级排列;除特别声明多为左结合性)

1、算术运算符:

**(乘方,即指数运算,右结合性,如2**2**3==256,而不是64)

*

/(除,除不尽结果用double型输出)

%取余 #(3.0以上版本,除,结果向下取整floor division)

+ -

加减乘除甚至可以用于字符串运算(级联),例如:'very'+'good'、'repeap'*3等

2、关系运算符

①>大于 =大于等于 <=小于等于

==等于 !=(或<>)不等于

②Python与C不一样的是,它可以这样写一个关系表达式1 < a

< 2

3、逻辑运算符

①not逻辑否 and逻辑与 or逻辑或

②逻辑运算的结果是逻辑常量True、False,但在表达式中所有非0数都被运算为True。有些与C不同的:

123 and 456 --> 456

123 or 456 -->123

4、赋值运算符(右结合性)

①= *= /= += -= %= //=

注意Python不支持C语言的自增自减

②Python支持这样的赋值写法:

a,b=1,2

a,b,c=eval_r(raw_input("输入三个数")) #eval用于转换字符为表达式

五、表达式

Python表达式和语句不同,表达式具有一个值,语句没有。

a+1是表达式

a=1是语句

六、控制结构流程图

一)顺序

二)分支

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 in

range([,][,]):

else:

for用于已知次数的循环

2、for和while的转换

for和while还是有一些区别的,for是遍历数组值,while则是逻辑值

错在哪里?

右边的while循环,i的终值被多加了1个步长

3、循环控制(和C相同)

break跳出当前循环

continue跳出当次循环

七、函数

一)内置函数——模块

import

math这样的语句用于导入模块(类似C中的头文件、库文件)

●模块中有哪些对象方法属性,可用dir函数,dir

()

●模块的使用,类似于对象的属性、方法的调用(即“点记法”),如math.pi、math.sin()、math.log10()

●此外,还可以用from import

*,来导入模块中所有的对象,在使用时就可以直接使用,不需加和点

import math.tan [as

tg]则引入math中的tan,[并重命名为tg]

二)自定义函数

def ( )

返回值return 。

函数可以有1个或更多个形参,也可以无形参(但括号不能省);形参的作用域为local,可以用global来声明全局变量。

与C不同的一些地方:

①函数在使用前必须已经定义,但在使用前无需像有些高级语言那样声明

②参数指定

关键字赋值:在调用时指出,这样引用时就不受形参位置的影响

函数体内定义另一个函数,并调用。例如定义了一个函数f(big,small),调用时可以这样引用f(small=1,big=3)

缺省参数:

三)递归

一个函数使用时可以调用另一个函数,同样一个函数也可以调用它自己,这就是“递归”。

生活中的递归如老和尚讲故事、德罗斯特效应、两面相对的镜子等;数学上可以用递归编程的有阶乘、斐波那契数列、汉诺塔等。

一个递归函数一般由递归条件(“递”)和递归出口(“归”)构成;递归编程的口诀“掐头去尾留中间”

八、算法

九、数据结构

I、字符串String

一)字符串函数

长度:len()

拼接: +

重复: *n

成员运算符(是否包含,返回True、False): in

遍历: for c in :

二)字符数组的概念和使用

1、

[]

方括号[ ]就是索引运算符

索引号从0开始(整数第一个字符),负索引号从-1开始,即从字符串倒数第一个

2、切片:使用冒号可以引用索引号前后之间的字符串

[start:finish],start:子序列开始位置的索引值 finish:子序列结束位置的下一个字符的索引值

[start:finish:countBy] 间隔切片,countBy缺省为1

my_str='hello world'

my_str[0:11:2]

-->'hlowrd'

countBy为-1时可获得逆字符串

my_str='world'

my_str[::-1]

-->'dlrow' #my_str==my_str[::-1]用于判断单词是否回文

3、不能用字符串索引来改变字符串的值

my_str='hello world'

my_str[1]='l' #错误

但可以使用切片、拼接等方式,如

my_str=my_str[:1]+'a'+str[2:]

三)字符串方法

替换:replace(old,new)

my_str='hello'

my_str.replace('e','a')

-->'hallo'

注意replace方法并没有改变字符串的值,只是输出一个替换的字符串,原字符串还是'hello'

可以用dir(str)查看字符串的更多属性方法

四)字符串比较

可以对两个字符串关系运算,比较ASCII顺序

五)字符串格式化与正则表达式

II、文件File

一)文件打开和关闭

f=open('')

f.close

二)遍历文件行

f=open('names.txt')

for line in f:

f.close

III、列表List

一)=[,,...] ,列表有点像数组,但列表中的元素可以是不同类型的。

和字符串一样,可以通过下标、索引、切片等来引用列表元素,用法也相似,同样支持长度、拼接、重复、成员运算等。但和字符串不同的,列表及其元素是可以改变的。

二)列表内建方法

.append #在列表末尾追加一个元素,相当于列表做加法(+)

.expend([]) #在列表末尾追加一个列表

.insert(,)

.pop() #从后删除一个元素

.remove() #删除指定元素值

.sort() #元素排序

.reverse(() #元素逆序

.swap(,,) #交换元素

三)遍历算平均

for num in :

s+=num

avg=s/len()

四)列表内建函数

sum() #求数值列表的和

max

min

五)查找和排序

1、线性查找

.index() #线性查找元素第一次在列表中出现的位置,若找到返回该值的索引号,反之返回出错信息

线性查找的时间复杂度为O(n)

.find() #类似index,但不同的是找不到子字串时返回-1

2、二分查找

二分查找要先排序

二分查找的时间复杂度为O(log2n)

3、选择排序

即每次遍历将最小值剪切到前面(或将最小值与初始最前面元素交换)

选择排序时间复杂度为O(n2)

4、冒泡排序

每一次遍历都将小值排前,大值排后,循环一次以后,最大的元素被“沉底”;

这样的循环遍历直到遍历时找不到小值在后的元素(即lst(i)>lst(i+1)始终不成立。

冒泡排序的时间复杂度也是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、字典Dict

1、用大括号来建立字典,字典元素由不可重复的键和值构成;键必须是不可变的且不重复(如整型、浮点型、元祖等不可变类型),值可以是任意类型(如列表等也可以)

my_dict{'Tom':78,'Jim':89,'Mary':80}

2、字典元素存储时并不按输入先后顺序排列,也不按字母顺序排列,所以字典不支持排序。因此,引用字典时应使用键名引用: my_dict['Jerry']=99

3、字典也支持长度函数len、成员运算符in(判断一个“键”是否在字典中,它的时间复杂度为O(1),相比较字符串和列表的O(n),速度更快)等,此外字典还支持以下方法

.items() #获取全部的键-值对

.keys() #获取全部的键

.values() #获取全部的值

.clear() #清空字典

VI、集合Set

1、无序不重复元素(键)值。相当于没有值只有键的字典(所以也可以用{

}建立集合,集合的元素类似于字典的键,其类型应是不可变不重复的,如整型、浮点型、元祖等);和字典一样,集合也没有顺序,不支持排序。

2、集合的创建,使用set函数

x=set()

集合的添加add方法和删除remove方法

x.add('body')

x.remove('body')

3、集合的运算符

& 交集

| 并集

- 差集

== 等于

!= 不等于

in 成员

for key

in set 枚举

VII、类和对象

十、GUI简介

GUI的第三方API库:TKinter、wxPython、PyQt、PyGtk等

from Tkinter import

* #导入GUI库

def changeRelief( )

root=Tk( ) #建立控件

label1=Label(root,text="Hello")

button1=Button(root,text="OK",command=changeRelief) #command=changeRelief事件处理绑定

label.pack( )

button1.pack( )

root.mainloop( )

十二、数据库

数据库管理系统(DataBase Management System,DBMS)

商业系统:Oracle、Microsoft SQL Server、IBM DB2等

开源(Open Source)系统:MySQL、PostgreSQL、SQLite等

其中,SQLite3版本的基本用法:

1、安装:将zip解压即可

2、创建或打开数据库

sqlite3

test.db

3、创建一个表creat

sqlite > creat table

(name,num,phone)

4、插入一行(记录)

sqlite > insert into

values('Zhang',1,'13150201234');

5、查询

select from

select from where

id=

select from where id

like

6、删除delete

delete from

7、修改update

update set Attribue=NEW

8、在Python中使用SQLite3

import sqlite3

con=sqlite3.connect('test.db')

cur=con.cursor() #创建一个游标

cur.execute('select * from student')

rows=cur.fetchall()

for row in rows:

print row

十三、Web编程基础

Django

1、安装

python setup.py install

>djang-admin.py startproject mysite

2、运行

>python manage.py runserver

3、创建应用

python manage.py startapp addr_book

编辑addr_book

4、模板

HTML语言

模板不是必须的,可以将HTML代码写在视图中,但是这样不便于改动和分工(可以由专门的美工负责设计网页)。

5、模型

数据库

HTML表单

模型不是必须的,可以将数据库操作代码写在视图中,但是这样不便于切换到新的数据库,需要针对新的数据库修改代码。有了模型,切换数据库仅需要修改

settings.py 即可。

【相关网站】

中国大学moocpython笔记_中国大学MOOC_高级语言程序设计(Python)笔记相关推荐

  1. 中国云计算市场排名_中国云计算市场排名第一

    百度智能云位列中国云计算市场前四 | 美通社在Canalys发布中国云计算市场2021年第二季度报告中,百度智能云排名前四,Q2环比增速高于整个市场水平.百度近期发布的Q2财报,百度智能云第二季度营收 ...

  2. 中国药典 android,中国药典在线查询_中国药典v2.05.03安卓版

    中国药典app是一款中医药典软件,这里有大量中医药知识,以及专家为你解答问题,让你可以学习权威的中医知识,使用起来非常方便,喜欢的朋友欢迎下载. 中国药典app介绍 <中国药典>是药品研制 ...

  3. tkinter 笔记: radiobutton 选择按钮(莫烦python笔记)

    1 主体框架还是那个主体框架 window = tk.Tk() window.title('my window') window.geometry('500x500') 2 设置tkinter的文字变 ...

  4. 中国大学moocpython笔记_[转载]中国大学MOOC_高级语言程序设计(Python)笔记

    一.程序设计基础 1.Python历史 2.Python特点 Python的伪代码(形式语言)更接近于自然语言(自然语言) 胶水语言 3.Python的应用:Google.Youtube等 4.IDE ...

  5. 中国大学moocpython笔记_中国大学MOOC的APP(慕课)用Python玩转数据章节答案

    I like the weather there. It's always ____.[ ]A. sunny B. snowingC. funnyD. raining 用所给单词的正确形式填空.1. ...

  6. 中国大学moocpython笔记_中国大学MOOC慕课用Python玩转数据章节答案

    [单选题]零件上每个表面都要加工时应以加工余量和公差()的表面作为粗基准. A. 最小的 B. 最大的 C. 符合公差范围 D. 任何 智慧职教: 在Linux中创建分区的命令是 应当调整指定定密责任 ...

  7. 中国大学moocpython笔记_中国大学MOOC慕课2020年用Python玩转数据题目答案

    [填空题] 减压蒸馏就是借助降低系统压下使()下降,在较低压力下沸腾,以达到降低精馏操作温度的目的. [填空题] 煤焦油可分为低温焦油和高温焦油,冶金厂一般处理的是()焦油. [填空题] 中温沥青软化 ...

  8. moocpython答案_中国大学慕课moocPython游戏开发入门答案

    中国大学慕课moocPython游戏开发入门答案 更多相关问题 图中表示北半球气旋的是() 右图是"我国某天气系统在某地过境时的气压与风速随时间变化规律图",1.该天气现象是A.大 ...

  9. python高级语言特长_中国大学慕课mooc_高级语言程序设计(Python)CAP_章节测试答案...

    参考答案如下 值班驾驶员应对驾驶台有关设备作定期检查,中国P章以确保().①手动操舵或自动舵按船舶正确的航向行驶:②每班应至少测定一次标准的罗经误差:③每班至少试验一次自动舵的手动操作. 大学Hous ...

最新文章

  1. Resin install document
  2. Nginx学习之五:Nginx第三方模块
  3. mysql用if判断关联的表_mysql表连接,子查询以及if判断
  4. iOS 玩转CocoaPods
  5. MySql 存储大量长字节 Text报错处理办法
  6. 虹软2.0 离线人脸识别 Android 开发 Demo
  7. Synchronized与ReentrantLock区别总结(简单粗暴,一目了然)
  8. python 反编译exe
  9. html中背景图片等比例缩放,CSS实现响应式全屏背景图+用CSS3实现全屏按比例缩放背景图片...
  10. 2.1 Apache Hadoop、HDFS - Apache Hadoop概述
  11. 人脸及指纹双重识别门禁系统
  12. Delphi 字体修改一例 (转)
  13. Activiti流程引擎架构概述
  14. 工具说明书 - 如何画时间轴(Timeline)
  15. 我的世界服务器怎么制作头颅,我的世界怎么用指令弄自己的头颅 | 手游网游页游攻略大全...
  16. Cesium 中的离屏渲染
  17. [精]Oracle 内存结构详解
  18. DTCC2014:钱岭:电信运营商大数据平台和应用实践
  19. ImageJ工具的使用
  20. 【2017年第3期】“云治理”设想

热门文章

  1. WinForm 图片变灰方法
  2. 2.2. 3.调度算法的评价指标
  3. 【计算机网络复习 数据链路层】3.3.1 差错控制(检错编码)
  4. 哔哩哔哩n倍速播放视频
  5. Leetcode--41. 缺失的第一个正数
  6. oracle的删除的row如何,Oracle 删除大表中部分数据
  7. unordered_map使用自定义enum作为键值
  8. 截取字符串的函数_常用的Excel函数
  9. ajax datatype_Ajax的基本使用
  10. samba安装_Centos安装Samba