判断语句
if ...:
print()
elif ...:
print()
文件头部注释:
#coding=utf-8
循环
for i in range(0,100):
print("Item {0},{1}".format(i,"Hello Python"))
函数
def sayHello():
print("Hello World")
def max(a,b):
if a>b:
return a
else:
return b
sayHello()
print(max(2,3))
面向对象
class Hello://定义一个类
def __init__(self,name): //构造方法
self._name=name
def sayHello(self):
print("Hello {0}".format(self._name))
class Hi(Hello): //类继承
def __init__(self,name):
Hello.__init__(self,name) //执行父类的构造方法
def sayHi(self):
print("Hi {0}".format(self._name))
h = Hello("jikexueyuan") //创建一个实例
h.sayHello()
h1=Hi("zhangSan")
h1.sayHi()
引入Python文件
建立一个mylib.py文件
class Hello:
def sayHello(self):
print("Hello Python")
import mylib
h=mylib.Hello()
h.sayHello()
from mylib import Hello
h=Hello()
h.sayHello()
Python语法基础
#常量的定义
import const
const.value = 5
print const.value
const.value=6 #error
单引号里面可以使用双引号,反之不可以;
单引号三引号可以换行,双引号三引号也可以;
#转义符
print ‘It\'s a dog!’
print "hello boy\nhello boy"
#自然字符串
print "hello boy\nhello boy"
print r"hello boy\nhello boy"
#字符串重复
print “hello”*20
#子字符串
#索引运算符从0开始索引
#切片运算符[a:b]是指从第a下标开始到第b-1下标。同样第一位的下标为0.
c1="jikexueyuan"
c2=c1[0]
c3=c1[7]
c4=c1[:2]
c5=c1[2:]
c6=c1[4:7]
print c6
Python中没有数组的概念,最接近的就是列表和元组;
#列表
students=["A","B","F","G","E","J"]
print students[3]
元组的元素也是进行索引计算,但是列表的元素的值是可以修改的,而元组里面的元素是不可以修改的,只能读取;
#元组
students=("A","B","F","G","E","J")
print students[3]
集合的功能:一是建立关系;二是消除重复元素;
#集合
a=set("abcdefghijkss")
b=set("cdfg")
#交集
x=a&b
print x
#并集
y=a|b
#差集
z=a-b
#去除重复元素
new=set(a)
字典也叫关联数组,key-value;
#字典
k={"姓名":"张三","籍贯":"北京"}
print k["籍贯"]
#添加字典里面的项目
k["爱好"]="音乐"
print k["姓名"]
print k["爱好"]
pickle腌制
行与缩进
Python核心编程基础教程之Python运算符、运算符优先级、表达式简介
控制流的结构:顺序结构、分支结构、循环结构;
if语句
while语句
for语句
break语句
continue语句
Python数据结构
def out(st):
if st.Empty():
print "Stack is Empty"
else:
st.top=st.top-1
qu.head=qu.head+1
分治法、贪心法、穷举法、递归法、递推法、回溯法、动态规划法、迭代法、分支界限法;
快速排序算法:
基准数为第一个数;活动指针,交叉移动;
#快排的实现
def kp(arr,i,j): #快排总调用函数
if i<j:
base = kpgc(arr,i,j)
kp(arr,i,base)
kp(arr,base+1,j)
def kpgc(arr,i,j): #快排排序过程
base = arr[i]
while i<j:
while i<j and arr[j]>=base:
j-=1
while i<j and arr[j]<=base:
arr[i] = arr[j]
i += 1
arr[j] = arr[i]
arr[i] = base
return i
ww = [2,1,5,2,4,9,5,6,4]
kp(ww,0,len(ww)-1)
print ww
选择排序算法:
#选择排序的实现
def xzpx(arr): #选择排序
for i in range(0,len(arr)): #每一趟排序
k = i #k是标志位
for j in range(i+1,len(arr)): #每一趟选择最小的这个数
if arr[j] < arr[k]:
k = j
print k
arr[i],arr[k] = arr[k],arr[i] #交换位置
二路归并排序算法:
#二路归并排序
def gb(arr): #第一次归并排序,以及持续调用rg()函数进行后续的归并排序
arr_t=[[arr[0]]] #把传进去的数组的元素变为数组的形式,因为后续需要使用到
k=0
m="'
if len(arr)%2==0:
l=len(arr)/2
for t in range(0,l):
m="h"+m
arr_rg=list(m) #生成一个存储数据的列表arr_rg,此列表长度为l
for i in range(1,len(arr)):
arr_t=arr_t+[[arr[i]]] #生成一个列表,该列表的元素变为列表,即两层列表,
#因为我们要调用后面的rg函数,该函数数据类型为列表
if len(arr_t)%2==0: #进行第一次归并排序,首先进行元素个数为偶数的情况
for i in range(0,len(arr_t,2)): #从第0位元素开始,每次增加2
arr_rg[k]=dg(arr_t[i],arr_t[i+1]) #第i位与i+1位进行排列
k+=1
else: #若元素个数为奇数
for i in range(0,len(arr_t)-2,2): #循环部分先进行偶数位数部分的排序,跟%2==0情况一样
arr_rg[k]=dg(arr_t[i],arr_t[i+1])
k+=1
arr_rg[k]=arr_t[len(arr_t)-1] #偶数部分排完后,单出一位奇数位,直接将奇数位移到新存储数组arr_rg最后一位即可。
n=0
搜索算法:
def efss(arr,x):
i= 0
j = len(arr) - 1
for k in range(j/2+1):
if i>j:
print -1
zj = (i+j)/2 #中间位置为i+j的和除以2
if arr[zj] == x:
return zj
elif arr[zj]>x:
j = zj-1
else:
i = zj+1
Python科学计算
numpy之ndarray对象;
numpy之ufunc运算;
numpy之矩阵运算;matrix
Python模块
Python类