牛客网系列---Python

来源:互联网 发布:苹果打开数据的快捷键 编辑:程序博客网 时间:2024/06/08 14:59

判断语句

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 aelse:return bsayHello()print(max(2,3))
面向对象

class Hello://定义一个类def __init__(self,name): //构造方法self._name=namedef 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 mylibh=mylib.Hello()h.sayHello()from mylib import Helloh=Hello()h.sayHello()

Python语法基础

#常量的定义import const const.value = 5print const.valueconst.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&bprint 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-=1while i<j and arr[j]<=base:arr[i] = arr[j]i += 1arr[j] = arr[i]arr[i] = basereturn 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 = jprint karr[i],arr[k] = arr[k],arr[i]#交换位置
二路归并排序算法:


#二路归并排序

def gb(arr):#第一次归并排序,以及持续调用rg()函数进行后续的归并排序arr_t=[[arr[0]]]#把传进去的数组的元素变为数组的形式,因为后续需要使用到k=0m="'if len(arr)%2==0:l=len(arr)/2for t in range(0,l):m="h"+marr_rg=list(m)#生成一个存储数据的列表arr_rg,此列表长度为lfor 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位元素开始,每次增加2arr_rg[k]=dg(arr_t[i],arr_t[i+1])#第i位与i+1位进行排列k+=1else:#若元素个数为奇数for i in range(0,len(arr_t)-2,2):#循环部分先进行偶数位数部分的排序,跟%2==0情况一样arr_rg[k]=dg(arr_t[i],arr_t[i+1])k+=1arr_rg[k]=arr_t[len(arr_t)-1]#偶数部分排完后,单出一位奇数位,直接将奇数位移到新存储数组arr_rg最后一位即可。n=0


搜索算法:


def efss(arr,x):i= 0 j = len(arr) - 1for k in range(j/2+1):if i>j:print -1zj = (i+j)/2#中间位置为i+j的和除以2if arr[zj] == x:return zjelif arr[zj]>x:j = zj-1else:i = zj+1

Python科学计算

numpy之ndarray对象;

numpy之ufunc运算;


numpy之矩阵运算;matrix


Python模块












Python类




0 0
原创粉丝点击