python基础

一、基础

#python输出
print("xubin")

#python注释法
print("hello word")
'''print("徐彬")
print("xubin")'''
#print("xubin")

#python标识符
abc = 1111
_bc = 222
print(abc+_bc)

#python变量
a=5
a=a+1
a+=1
print(a)

#python数据类型
'''数、字符串、列表list、元组tuple、集合set、字典dictionary'''
a=10
b="i am a boy"
c=["my","you"]
d=("my","you")
print(c)
print(c[1])
print(d)
print(d[0])           #元组不支持修改

a="faretesdfbfhs"           #集合中元素不能重复
b="safnkrlewjroiuoitn"
c=set(a)
d=set(b)
print(c&d)
print(d|c)

#字典
#{key1:value1,key2:value2}
a={"name":"xubin","sex":"man","age":25}
print(a['sex'])

#python运算符
a='xubin'
b='is'
c='a man'
print(a+" "+b+c)
a=9
b=2
print(a/b)
print(a//b)
print(a%b)

#python缩进
a=10
b=9
if(a>9):
    print(a)
    if(b==9):
        print(b)
elif(a<10):
    print(abc)

#python控制流
#程序执行流程叫程序的控制流:顺序结构,条件分支结构,循环结构,(中断结构break continue)
score=91
if(90>score>=60):     #if score<60
    print("成绩为及格")
elif(score>=90):
    print("成绩为优秀")
else:
    print("成绩不及格")

i=5
while(i<10):
    print(i)
    i+=1

a=["a","b","c","d"]
for s in a:
    print(s)
for i in range(0,10):
    print(i)

#终止循环一次continue,终止循环break
for j in range(0,8):
    if(j==5):
        continue
    print(j)
for j in range(0,8):
    if(j==5):
        break
    print(j)

#python输出乘法口诀
for i in range(1,10):
    for j in range(1,i+1):
        print(str(i)+"*"+str(j)+"="+str(i*j)+"  ",end="")
    print()

for i in range(9,0,-1):
    for j in range(i,0,-1):
        print(str(i)+"*"+str(j)+"="+str(i*j)+"  ",end="")
    print()

二、模块 函数

#python函数  函数的本质就是功能的封装,使用函数可以大大提高编程的效率与程序的可读性。
#作用域  全局变量 局部变量
i=10
def func():         #添加global使局部变量成为全局变量
    global j
    j=10
    j+=1
    print(j)
print(i)
func()
print(j)

#函数的定义和调用
#定义函数用def,def后面为函数名,函数名遵循标识符
#函数参数,分为形参和实参,在函数定义时使用的参数是形参,在函数调用时使用的参数是实参
def add(x,y):
    print(x+y)
    print("此处为加法计算!")
    if(x>=y):
        print(x)
    else:
        print(y)
add(3,5)

#python模块   把多个函数组合在一起叫做模块
#函数是按照功能组合在一起  模块按照类别组合在一块   一个模块包含一个或多个函数,一个或多个功能,函数叫做模块的方法
#python模块导入   import 模块名  或者   from 模块 import 方法

#python模块   把多个函数组合在一起叫做模块
#函数是按照功能组合在一起  模块按照类别组合在一块   一个模块包含一个或多个函数,一个或多个功能,函数叫做模块的方法
#python模块导入   import 模块名  或者   from 模块 import 方法
#import urllib
#from urllib.request import urlopen

from urllib.request import *

data1=urlopen("http://www.baidu.com").read()    #定位到文件夹,定位到文件,定位到方法
print(len(data1))

data2=urlopen("http://blog.csdn.net").read()
print(len(data2))

from urllib import request
data3=request.urlopen("http://jd.com").read()
print(len(data3))

import xubinmodeltest
from xubinmodeltest import *
hello()
xubinmodeltest.hello1(1,2)
xubinmodeltest.hello2(2,3,4)

三、文件操作 异常

#python文件操作
#python程序对文件进行打开,关闭,读取,写入操作
#文件的打开路径  打开方式r w wb(二进制方式写入)
#新建文件  或者打开文件
fh1=open("/Users/xubin/myapp/pythonfile/file1.txt","w")
fh2=open("/Users/xubin/myapp/pythonfile/file2.txt","w")

#写入文件
contents1="文件内容如下"
fh2.write(contents1)
fh1.write(contents1)

#读文件内容
fh3=open("/Users/xubin/myapp/pythonfile/file3","r")
#data=fh3.readline()
#print(data)

while True:
    line=fh3.readline()
    if(len(line)==0):
        break
    print(line)

fh1.close()
fh2.close()
fh3.close()

#python实现从文件file3,将其中的文件写入到file4.txt中
fh3=open("/Users/xubin/myapp/pythonfile/file3","r")
fh4=open("/Users/xubin/myapp/pythonfile/file4.txt","w")

while True:
   line=fh3.readline()
   fh4.write(line)
   if(len(line)==0):
        break
   print(line)
fh3.close()
fh4.close()

#python异常值处理
#python程序在执行的时候,经常会遇到异常,如果中间异常不处理,经常会导致程序崩溃!
#比如后面写爬虫的时候,如果不进行异常处理,很可能虫爬了一半,直接崩溃了!

print("xubin")
try:
    printsfs("xubin1")
except Exception as error:
    print(error)  #print(error)
    print("hello")

四、合并excel

#用python实现将三个excel合并成一个excel
#第一个测试文件 第二个测试文件 第三个测试文件
# 其中每个文件中有多个sheet,需要将其全部合并

import xlrd,xlsxwriter

#设置要合并的所有文件
allxls=["/Users/xubin/myapp/pythonfile/第一个测试文件.xlsx","/Users/xubin/myapp/pythonfile/第二个测试文件.xlsx","/Users/xubin/myapp/pythonfile/第三个测试文件.xlsx"]
#设置合并到的文件
endxls ="/Users/xubin/myapp/pythonfile/endxls.xlsx"

#打开表格
def open_xls(file):
    try:
        fh=xlrd.open_workbook(file)
        return fh
    except Exception as e:
        print(str("打开出错,错误为:"+e))

#获取所有sheet
def getsheet(fh):
    return fh.sheets()

#读取某个sheet的行数
def getnrows(fh,sheet):
    table=fh.sheets()[sheet]
    content=table.nrows
    return content

#读取某个文件的内容并返回所有行的值
def getfilect(fh,fl,shnum):
    fh=open_xls(fl)
    table=fh.sheet_by_name(shname[shnum])
    num=getnrows(fh,shnum)
    lenrvalue=len(rvalue)
    for row in range(0,num):
        rdata=table.row_values(row)
        rvalue.append(rdata)
    print(rvalue[lenrvalue:])
    filevalue.append(rvalue[lenrvalue:])
    return filevalue

#存储所有读取的结果
filevalue=[]
#存储一个标签的结果
svalue=[]
#存储一行结果
rvalue=[]
#存储各sheet名
shname=[]

#读取第一个待读文件,获得sheet数
fh=open_xls(allxls[0])
sh=getsheet(fh)
x=0
for sheet in sh:
    shname.append(sheet.name)
    svalue.append([])
    x+=1
#依次读取各sheet的内容
#依次读取各文件当前sheet的内容
for shnum in range(0,x):
    for fl in allxls:
        print("正在读取文件:"+str(fl)+"的第"+str(shnum)+"个标签的…")
        filevalue=getfilect(fh,fl,shnum)
    svalue[shnum].append(filevalue)
    #print(svalue[0])
    #print(svalue[1])
#由于apped具有叠加关系,分析可得所有信息均在svalue[0][0]中存储
#svalue[0][0]元素数量为sheet标签数(sn)*文件数(fn)
sn=x
fn=len(allxls)
endvalue=[]

#设置一个函数专门获取svalue里面的数据,即获取各项标签的数据
def getsvalue(k):
    for z in range(k,k+fn):
        endvalue.append(svalue[0][0][z])
    return endvalue

#打开最终写入的文件
wb1=xlsxwriter.Workbook(endxls)
#创建一个sheet工作对象
ws=wb1.add_worksheet()
polit=0
linenum=0
#依次遍历每个sheet中的数据
for s in range(0,sn*fn,fn):
    thisvalue=getsvalue(s)
    tvalue=thisvalue[polit:]
    #将一个标签的内容写入新文件中
    for a in range(0,len(tvalue)):
        for b in range(0,len(tvalue[a])):
            for c in range(0,len(tvalue[a][b])):
                #print(linenum)
                #print(c)
                data=tvalue[a][b][c]
                ws.write(linenum,c,data)
            linenum+=1
    #叠加关系,需要设置分割点
    polit=len(thisvalue)
wb1.close()

你可能感兴趣的:(算法)