# import this
print("ds"
"dsds")
name = "ouyang"
print(type(name))
print(id(name)) # 内存地址
print(10**3)
#
# height = float(input("输入身高")) # input进来的都是str
#
# weight = float(input("输入体重"))
# bmi = weight / (height * height)
# print("你的BMI指数为" + str(bmi))
# if bmi < 18.5:
# print("轻")
#
# if 24.9 <= bmi < 29.9:
# print("胖了")
print(6 if 10 > 6 else 10)
print(4 << 2)
year = 2019
result = "是闰年" \
if (year % 4 == 0 and year % 100 == 0) or (year % 400 == 0) else "不是闰年"
print("")
print(str(year) + result)
print("")
print("")
print("if number%3==2 and number%5==3 and number%7==2:")
flag = True
number = 0
while flag:
number += 1
if number % 3 == 2 and number % 5 == 3 and number % 7 == 2:
print(number)
break
print("")
print("")
print("1+2+3+...+100")
result = 0
for i in range(101):
result += i
print(result)
print("")
print("")
for i in range(1, 10, 2):
print(i, end=' ')
print("")
print("")
for i in range(1,10):
for j in range(1,i+1):
print(str(j)+"x"+str(i)+" = "+str(i*j)+"\t",end=" ")
print("")
print("")
print("")
array=[1,2,3,4,5,6]
print(array[1:6]) # 从一开始,不包括一
print(array[:]) #复制整个数组
list1=[8, 7, 9]
print(array + list1)
print(list1 * 3)
print(7 in list1)
print(len(list1))
print(min(list1))
print(max(list1))
print(str(list1))
print(sorted(list1))
list1.append(10)
print(len(list1))
# array.extend(array1)
print(list1)
# print(reversed(array1))
print(list(range(1,5,2)))
import datetime
mot=[1,2,3,4,5,6,7]
day=datetime.datetime.now().weekday()
print("星期"+str(mot[day]))
for i,item in enumerate(mot):
print(i,item) #索引加内容
print(list1)
del list1[0]
print(list1)
if list1.count(10)>0: #如果这个元素出现次数大于0,remove
list1.remove(10)
print(list1)
num=list1.count(7)
print(num)
print(list1.index(9)) #元素首次出现的下标
print(sum(list1)) #计算列表元素和
array2=["a","d","C","c",'e']
print(sorted(array2)) #内置的方法
print(sorted(array2,reverse=True))
array2.sort(reverse=True)#列表对象的方法
print(array2)
array2.sort(key=str.lower)#不区分大小写排序 lower没有括号
print(array2)
print("")
print("")
## 生成列表
import random
li=[i for i in range(5)]
print(li)
randomArr=[random.randint(10,100) for i in range(10)]
print(randomArr)
half=[x*0.5 for x in randomArr]
print(half)
select=[x for x in half if x>30]
print(select)
print("")
print("")
## 二维列表
binaryArr=[[j for j in range(5)] for i in range(4)]
print(binaryArr)
binaryArr1=[]
for i in range(4):
binaryArr1.append([])
for j in range(5):
binaryArr1[i].append(j)
print(binaryArr1)
###元组
tuple1=tuple(range(10,20,2))
print(tuple1)
print(tuple1[:3])#first three elements
for i ,item in enumerate(tuple1):
if i%2==0: #序号为偶数不换行
print(str(item), end=', ')
else:
print(str(item)+".")
print("")
print("")
print(tuple1)
tuple1=(10,11,12)
print(tuple1)
tuple1+=(13,) #元组单个元素后面也要加,
print(tuple1)
### 字典
dictionnary1={'name':'ouyang','qq':'2455356027'}
print(dictionnary1)
xin=["ouyang","gao"]
ming=["yu","jinliang"]
dictionnary2=dict(zip(xin,ming)) #打包两个列表为字典
print(dictionnary2)
# dictionnary3={xin:ming}
print(dictionnary2)
print(dictionnary2["gao"])
print("gao is ",dictionnary2.get("gao","none"))
# 查到就第一个,没有就第二个
# key value 遍历 字典
for key,value in dictionnary2.items():
print(key+" 是 "+value)
print(dictionnary2.keys())
for i in dictionnary2.keys():
print(i)
dictionnary2["zhu"]="yangyu"
print(dictionnary2)
dictionnary2["zhu"]="YANGYU"
print(dictionnary2)
if "zhu" in dictionnary2:
del dictionnary2["zhu"]
print(dictionnary2)
randomDict={i:random.randint(10,100) for i in range(1,5)}
print(randomDict)#字典推导式
set1={1,2,3}
set2={3,4,5}
print(set1&set2) #交
print(set1-set2)# 补
print(set1|set2) #并
###########字符串
print("")
print("")
str1: str="高 锦 良 大 傻 瓜"
encode = str1.encode() #默认采用
print(encode)
print(encode.decode("UTF-8"))
print(len(str1))
print(len(str1.encode("GBK"))) #GBK字节数
print(str1[0:3])
print(str1.split())
print(str1.split("大"))
print(str1.split(" ",4)) #以空格分隔,且只分割前四个
print(str1.count("高"))
print(str1.find("大"))
print(str1.endswith("瓜"))
s=" .高锦良@@@... "
print(s.strip())
import math #格式化字符串
print("${:,.2f}".format(3950)) #货币格式
print("{0:E}".format(12000.1)) #科学计数法
print("{:.5f}".format(math.pi)) # 小数点后五位
print("{0:#x}".format(100)) # 十六进制
print('{:.0%}'.format(0.99)) #百分制
print("you are {},I am {}".format("SB","NB"))
a=10
b=20
a,b=b,a
print(a,b)
print(round(100/3,3))
print(math.radians(180))
print(math.sin(math.pi/2))
print(max(10,3,36,6,959,8888))
print(sum([10,66,846,21212])) #sum参数是列表
print(divmod(10,3))
print('s"d')
print(len("sdsa"))
print("asdf"[:2])
def charfliter(str1):
'''
过滤特定字符
:param str:
:return:
'''
import re
patten=r'(黑客)|(病毒)'
print(re.sub(patten,"XX",str1))
def charfliter1(str1):
'''
过滤特定字符
:param str:
:return:
'''
import re
patten='(黑客)|(病毒)'
return re.sub(patten,"XX",str1)
charfliter("我是黑客,我喜欢搞病毒")
print((charfliter1("我是黑客,我喜欢搞病毒")))
###可变参数,参数为长度可变的列表
def listname(*name):
for item in name:
print(item)
listname("asd",45,54)
list4=["asd",98,90,False]
listname(*list4) #直接用列表当成参数,加*
def dictprint(**dict): #直接用字典当成参数,加**
for key,value in dict.items():
print(key+"--->"+value)
dictprint(**dictionnary2)
print("asd"[-1:]) # -1表示最后一个元素
# print('\n'.join([''.join([('AndyLove'[(x-y)%8]if((x*0.05)**2+(y*0.1)**2-1)**3-(x*0.05)**2*(y*0.1)**3<=0 else' ')for x in range(-30,30)])for y in range(15,-15,-1)]))
##匿名函数
r=10
result=lambda r:math.pi*r*r
print(result(r))
#### class
class People:
'''
'''
def __init__(self,name):
self.legs=2
print("my name is "+name)
__age=20
def eat(self,food):
print("I am eating "+food)
me=People("ouyang") #创建对象时候自动执行init方法
me.eat("noodles")
People.hands=2 #动态添加类属性
print(me.hands)
print(People.hands)
print(me.legs)
#print(People.legs) 实例属性只能通过实例访问
# print(People.__age)
# print(me.__age)
# print(me.People.__age)
class Tvshow:
list=[1,2]
def __init__(self,show): #构造一个实例属性
self.__show=show #实例属性 :__show
@property #方法转换为属性,默认不可更改
def show(self):
return self.__show
@show.setter
def show(self,value): #自定义更改的方法
if value in Tvshow.list:
self.__show="change to "+str(value)
else:
self.__show="change failed"
tv=Tvshow(7)
print("now "+str(tv.show))
print("you can change this form ",Tvshow.list)
tv.show=2
print(tv.show)
tv.show=6
print(tv.show)
print(math.pi)
from math import *
print(pi)
print(dir()) #查看具体导入了那些定义
import sys
print(sys.path)
print()
print()
print()
for i in range(1, 10):
print(i, end=' ')
# help('modules') Python都有那些模块
############# FILE
fp = open('E:\ouYang.txt', 'a+') # a--->append w--->rewrite
print("高锦良", file=fp)
fp.close() #
with open('E:\ouyang.txt','r') as file: #读取文件内容
message=file.read(10)
print(message)
print(file.readline())
messageAll=file.readlines()
for item in messageAll:
print(item)
import os
print(os.getcwd()) #当前项目的路径
print(os.listdir('C:\\Users\\Administrator\\PycharmProjects\\Learn'))
# 要用转移字符 或者用/
print(os.path.exists('E:\ouyang.txt')) #判断目录或文件是否存在
path="E:\demo\demo\ouyang"
if not os.path.exists(path):
os.makedirs(path)
print("SUCCEED")
# if os.path.exists(path):
# os.rmdir(path)
# print("DELETE SUCCEED")
tupledir=os.walk(path)
for item in tupledir:
print(item)
dir(__builtins__)
ouyang='E:\ouyang.txt'
# if os.path.exists(ouyang):
# os.rename(ouyang,"E:\gao")
# print("RENAMED")
if os.path.exists(ouyang):
os.remove(ouyang)
print("REMOVED")
else:
print("NO FILE")
#GUI
import wx
class MyFrame(wx.Frame):
def __init__(self,parent,id):
wx.Frame.__init__(self,parent,id,"LOGIN IN",size=(400,300))
panel=wx.Panel(self) #面板
self.title=wx.StaticText(panel,label='input your name and password') #实例属性添加到面板
self.label_user=wx.StaticText(panel,label="username")
self.input_user=wx.TextCtrl(panel,style=wx.TE_LEFT)
sizer_user=wx.BoxSizer(wx.HORIZONTAL)
sizer_user.Add(self.label_user,proportion=0,flag=wx.ALL,border=5)
sizer_user.Add(self.input_user,proportion=1,flag=wx.ALL,border=5)
self.label_pass=wx.StaticText(panel,label="password")
self.input_pass=wx.TextCtrl(panel,style=wx.TE_PASSWORD)
sizer_pass = wx.BoxSizer(wx.HORIZONTAL)
sizer_pass.Add(self.label_pass, proportion=0, flag=wx.ALL, border=5)
sizer_pass.Add(self.input_pass, proportion=1, flag=wx.ALL, border=5)
self.bt_cancel=wx.Button(panel,label="NO")
self.bt_comfirm=wx.Button(panel,label="YES")
self.bt_cancel.Bind(wx.EVT_BUTTON,self.Cancel)
self.bt_comfirm.Bind(wx.EVT_BUTTON,self.Confirm)
sizer_button = wx.BoxSizer(wx.HORIZONTAL)
sizer_button.Add(self.bt_comfirm, proportion=0, flag=wx.ALL, border=5)
sizer_button.Add(self.bt_cancel, proportion=1, flag=wx.ALL, border=5)
sizer_all = wx.BoxSizer(wx.VERTICAL)
sizer_all.Add(self.title,flag=wx.BOTTOM|wx.TOP|wx.ALIGN_CENTER,proportion=0,border=15)
sizer_all.Add(sizer_user,flag=wx.EXPAND|wx.LEFT|wx.RIGHT,proportion=0,border=45)
sizer_all.Add(sizer_pass,flag=wx.EXPAND|wx.LEFT|wx.RIGHT,proportion=0,border=45)
sizer_all.Add(sizer_button,flag=wx.ALIGN_CENTER|wx.TOP,proportion=0,border=15)
panel.SetSizer(sizer_all)
def Confirm(self,event):
name=self.input_user.GetValue()
passw=self.input_pass.GetValue()
message=""
if name=="" or passw=="":
message="NO VOID"
elif name=="ouyang" and passw=="gao":
message="WELCOME"
else :
message="NO VALID"
wx.MessageBox(message)
def Cancel(self,event):
self.input_pass.SetValue("")
self.input_user.SetValue("")
if __name__=='__main__':
app=wx.App()
frame=MyFrame(parent=None,id=-1)
frame.Show()
app.MainLoop()
#pygame
pygame
import sys
import pygame
import random
class Bird(object):
def __init__(self):
self.birdRect=pygame.Rect(65,50,50,50)
self.birdStatus=[
pygame.image.load("bird.jpg"), #默认状态
pygame.image.load("bird.jpg"),#jump
pygame.image.load("bird.jpg")#dead
]
self.status=0
self.birdX=120
self.birdY=350
self.jump=False
self.jumpSpeed=10
self.gravity=5
self.dead=False
def birdUpdate(self):
if self.jump:
self.jumpSpeed-=1
self.birdY-=self.jumpSpeed
else:
self.gravity+=0.2
self.birdY+=self.gravity #下降坐标增加
self.birdRect[1]=self.birdY #赋值为矩形第二个元素
class Pipeline(object):
def __init__(self):
self.wallX=400
self.pineUp=pygame.image.load("up.png")
self.pineDown=pygame.image.load("down.png")
def updatePipeline(self):
self.wallX-=5 #坐标递减,向左移动
if self.wallX<-80:
global score
score+=1
self.wallX=400 #back to default
def createMap():
screen.fill((255,255,255))
screen.blit(background,(0,0))
screen.blit(Pipeline.pineUp,(Pipeline.wallX,100)) #显示上管道和坐标
screen.blit(Pipeline.pineDown,(Pipeline.wallX,500)) #显示上管道和坐标
Pipeline.updatePipeline()
if Bird.dead:
Bird.status=2
elif Bird.jump:
Bird.status=1
screen.blit(Bird.birdStatus[Bird.status],(Bird.birdX,Bird.birdY))
Bird.birdUpdate()
screen.blit(font.render(str(score),-1,(255,255,255)),(200,50))
pygame.display.update()
def checkDead():
upRect=pygame.Rect(Pipeline.wallX,
100,
Pipeline.pineUp.get_width()-10,
Pipeline.pineUp.get_height())
downRect=pygame.Rect(Pipeline.wallX,
500,
Pipeline.pineDown.get_width()-10,
Pipeline.pineDown.get_height() )
if upRect.colliderect(Bird.birdRect) or downRect.colliderect(Bird.birdRect):
Bird.dead=True
if not 0<Bird.birdRect[1]<height:
Bird.dead=True
return True
else:
return False
def getResult():
text1="Game Over"
text2="your score is "+str(score)
font1=pygame.font.SysFont("Arial",70)
surf1=font.render(text1,1,(242,3,36))
font2=pygame.font.SysFont("Arial",50)
surf2=font.render(text2,1,(253,177,6))
screen.blit(surf1,[screen.get_width()/2-surf1.get_width()/2,100])
screen.blit(surf2, [screen.get_width()/2-surf2.get_width()/2,200])
pygame.display.flip()
if __name__=="__main__":
# pygame.init()
pygame.font.init()
font=pygame.font.SysFont(None,50)
size = width,height=400,720
# clock=pygame.time.Clock()
Pipeline=Pipeline()
Bird=Bird()
screen=pygame.display.set_mode(size)
score=0
while True:
# clock.tick(60)
for event in pygame.event.get():
if event.type==pygame.QUIT:
sys.exit()
if (event.type==pygame.KEYDOWN or event.type==pygame.MOUSEBUTTONDOWN) and not Bird.dead:
Bird.jump=True
Bird.gravity=5
Bird.jumpSpeed=10
background=pygame.image.load("gao.jpg")
if checkDead():
getResult()
else:
createMap()
# pygame.quit()
# pygame.init()
# pygame.quit()
爬虫
from bs4 import BeautifulSoup
import requests
list_url = "https://bj.lianjia.com/zufang/"
result = requests.get(list_url)
# print(result.text)
soup = BeautifulSoup(result.text, "lxml")
items = soup.find_all("div", class_="content__list--item") # 所有 div标签 类为pic-panel的列表
print("https://bj.lianjia.com" + items[0].a.get("href")) # 每一个层的a 标签下的href属性
items_links = ["https://bj.lianjia.com" + item.a.get("href") for item in items]
house_url = "https://bj.lianjia.com/zufang/BJ2388975025706508288.html"
result = requests.get(house_url)
soup = BeautifulSoup(result.text, "lxml")
house_price = soup.find("p", class_="content__aside--title").text
house_typ = soup.find_all("span")
# print(house_typ)
def getPrice(url):
soup=BeautifulSoup(requests.get(url).text,"lxml")
return soup.find("p", class_="content__aside--title").text
for url in items_links:
print(getPrice(url))
数据处理
import numpy as np
li1 = list(range(10))
ndarray = np.array(li1) # from list to array
a = np.zeros(10, dtype=int)
print(a.dtype) # int32
b = np.zeros(10)
print(b.dtype) # float64
c = np.zeros((4, 4), dtype=int)
print(c.dtype)
print(c)
'''
int32
[[0 0 0 0]
[0 0 0 0]
[0 0 0 0]
[0 0 0 0]]
'''
d=np.ones((4,4),dtype=int)
print(d)
'''
[[1 1 1 1]
[1 1 1 1]
[1 1 1 1]
[1 1 1 1]]
'''
e=np.full((3,3),3.14)
print(e)
'''
[[3.14 3.14 3.14]
[3.14 3.14 3.14]
[3.14 3.14 3.14]]
'''
f=np.full_like(d,555)
print(f) #按照d的样子(行列数相等)
print(np.random.randint(0,10,(5,5),int))
'''
[[6 1 1 2 4]
[6 2 3 5 2]
[1 4 0 8 0]
[2 5 6 3 6]
[3 7 9 4 6]]
'''
print(np.arange(0, 10, 2)) #[0 2 4 6 8]
np.linspace(0,3,10) #0 to 3 ,10 numbers
eye = np.eye(5,dtype=int)
print(eye) #n 维 的单位矩阵
print(eye[:2,:2]) #数组切片 ,取前两行列
print(eye.ndim) #数组维度
print(eye.shape)# 数组行列
print(eye.size) #数组大小
print(eye.itemsize)#每个元素字节数
print(eye.nbytes)#数组所占字节数
print(eye.reshape(1,25))
#### 数组的运算
print(eye*2) # 不改变原来eye
print(eye>0)
'''
[[ True False False False False]
[False True False False False]
[False False True False False]
[False False False True False]
[False False False False True]]
'''
print(np.all(a>0))
print(np.any(eye>0))
'''
False
True
'''
补充
string="abcdefg"
print(string[:3])
print(string[2:3]) #取序号为二的字符
print(string[:7:2]) #在前7个里面步长为二取
print(string[-1:]) #取最后一个字符
print(string[-2:-1]) #取倒数第二个字符
print(string[-2:]) #取最后两个字符
print(string[::-1]) #反转字符
print(string.capitalize()) #Abcdefg
print(string.center(30,"-"))#-----------abcdefg------------
print(string.center(9)) # abcdefg
print(string.find("s"))
print(string.find("s",2)) # 从..开始找
print(string.istitle()) #是否首字母大写
string=" SDSDSsdsds5 5151 "
print(string.strip()) #去掉两端的空格
print(string.lstrip()) #去掉左边空格
print(string.swapcase()) #交换大小写
print(string*3)
li=[2,3,4,2]
li1=li.copy() #两块地址,互不干扰
li1[0]=9999
print(li)
li2=li # 指向同一块地址,改新的,
li2[0]=666666
print(li)
li.extend(li1)
li.append("ds")#li=li+li1
print(li)
li.insert(0,100)
print(li)
li.pop()
print(li)
li.remove(3)
print(li) #first occurrence
li.sort()
print(li)
li.sort(reverse=True)
print(li)
print(100 in li)
# tuple
a=(3)
print(type(a)) # int
a=(3,) #元组一个元素必须加逗号,否则就是括起来的内容
print(type(a)) #<class 'tuple'>
###
condition="" #任何空的变量都可以当做False
if not condition:
print("False")
a="asd"
b="bbb"
print(a and b) #非布尔做and 返回b
print(a or b) #非布尔做or 返回第一个不为空的(False)
#assert b=="asd","b不是bbb" #如果断言不通过,程序会弹出 异常,通过则什么都不发生
#当出现了9就终止
import random
numbers=[]
while (9 not in numbers):
numbers.append(random.randint(0,10))
print(numbers, len(numbers))
# import time
# number=0
# while True:
# time.sleep(0.5)
# number+=1
# print("gao.{}".format(number))
#循环中的else :如果没有执行break语句,就一定会执行else里的代码
for item in numbers:
break
else:
print("没有break")
dict1={
1:111,
2:222,
3:111
}
print(dict1[2]) #2 not index ,is key
print(dict1 )
li3=[key for key,value in dict1.items() if value==111]
print(li3) #[1, 3]
def get_keys(dict,value):
return [k for k,v in dict.items() if v==value]
print(get_keys(dict1,111))
import functools
def test():
return random.random()
def dec(func):
@functools.wraps(func)
def wrapper(*args,**kwargs):
# do something here
return round(func(*args,**kwargs),2)
return wrapper()
# print(dec(test()))
def log(func):
@functools.wraps(func)
def wrapper(*args, **kwargs):
print('call %s():' % func.__name__)
print('args = {}'.format(*args))
return func(*args, **kwargs)
return wrapper
print(test())
pandas
import pandas
#
# df =pd.read_csv("C:\Users\Administrator\Desktop\test.csv")
# print(df)
import numpy
import matplotlib.pyplot as plt
from pandas.plotting._matplotlib import hist
x=numpy.linspace(0,10,50)
y=numpy.sin(x)
# plt.plot(x,y)
# plt.plot(x,numpy.cos(x),"--") #虚线
# plt.show()
# plt.subplot(2,1,1) #两行一列第一个
# plt.plot(x,numpy.sin(x),"o",color="red",label="sin(x)") #点状
# plt.legend()
#
# plt.subplot(2,1,2)
# plt.plot(x,numpy.cos(x),"--",label="cos(x)") #图注
# plt.legend()
# plt.show()
#
# x=numpy.random.rand(100)
# y=numpy.random.rand(100)
# colors=numpy.random.rand(100)
#
# sizes=100*numpy.random.rand(100)
# plt.scatter(x,y,c=colors,s=sizes,alpha=0.5)
# plt.colorbar()
# plt.style.use("classic")
# plt.show()
df=pandas.DataFrame(numpy.random.rand(100,4).cumsum(0),columns=["A","B","C","D"])
df.plot()
plt.show()
df=pandas.DataFrame(numpy.random.randint(10,50,(3,4)),
columns=["A","B","C","D"],
index=["one","two","three"])
df.plot.bar()
df.hist()
plt.show()