文章目录
一、列表基本操作
1.若干数排序
nums=input()
numl=[int(n) for n in nums.split()]
numl.sort()
print(numl)
测试样例:
输入:
3 2 5 6 9
输出:
[2, 3, 5, 6, 9]
二、文件处理
1. excel
1. 利用python读入和导出excel
import pandas as pd
df = pd.read_excel('C:/temp/aaa.xlsx')
print(df.shape) # 显示几行几列
df.to_excel('C:/temp/output.xlsx')
print('Done!')
2. for循环遍历excel表格
import pandas as pd
df = pd.read_excel('C:/temp/aaa.xlsx')
for i in df.index:
df['first'].at[i] += 1
if i % 2 == 0:
df['third'].at[i] = 'Yes'
else:
df['third'].at[i] = 'No'
print(df)
df.to_excel('C:/temp/output2.xlsx')
print('Done!')
3. 绘制柱状图
三、网络爬虫
1. 爬虫基本框架
import requests
def getHTMLText(url):
try:
r = requests.get(url,timeout=30)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return "产生异常"
if __name__ == "__main__":
url = "http://www.baidu.com"
print(getHTMLText(url))
2. Flask框架
from flask import Flask
app=Flask(__name__)
@app.route('/')
def hello_world():
return 'Hello,World!'
3. 实例:中国大学排名爬虫
import requests
from bs4 import BeautifulSoup
import bs4
def getHTMLText(url):
try:
r = requests.get(url, timeout=30)
r.raise_for_status()
r.encoding = r.apparent_encoding
return r.text
except:
return "异常处理"
def fillUnivList(ulist, html):
soup = BeautifulSoup(html, "html.parser")
for tr in soup.find('tbody').children: #先检索到tbody标签
if isinstance(tr, bs4.element.Tag):
tds = tr('td') #查询tr中的td标签,等价于tr.find_all('td')
# 新版的排名封装在a标签中,所以这里需要具体到查找属性为'name-cn'的a标签并存储其字符串,即大学的中文名称
a = tr('a','name-cn')
ulist.append([tds[0].string.strip(),a[0].string.strip(),tds[2].text.strip(),tds[4].string.strip()]) # 使用二维列表存储信息
def printUnivList(ulist, num):
print("{:^10}\t{:^6}\t{:^10}".format("排名","学校名称","总分")) #取10/6/10位中间对齐
for i in range(num):
u = ulist[i]
print("{:^10}\t{:^6}\t{:^10}".format(u[0], u[1], u[3]))
def main():
uinfo = []
url = "https://www.shanghairanking.cn/rankings/bcur/2021"
html = getHTMLText(url)
fillUnivList(uinfo, html)
printUnivList(uinfo, 10) # 10 univ
main()
四、游戏开发
1. pygame最小开发框架
import pygame,sys
pygame.init()
screen=pygame.display.set_mode((600,400))
pygame.display.set_caption("Python游戏之旅")
while True:
for event in pygame.event.get():
if event.type==pygame.QUIT:
sys.exit()
pygame.display.update()
2. 壁球小游戏
import pygame,sys
pygame.init()
size = width, height = 600, 400
speed = [1,1]
BLACK = 0, 0, 0
screen = pygame.display.set_mode(size)
pygame.display.set_caption("Pygame壁球")
ball = pygame.image.load("123.jpg")
ballrect = ball.get_rect()
fps = 300
fclock = pygame.time.Clock()
while True:
for event in pygame.event.get():
if event.type == pygame.QUIT:
sys.exit()
elif event.type == pygame.KEYDOWN:
if event.key == pygame.K_LEFT:
speed[0] = speed[0] if speed[0] == 0 else (abs(speed[0]) - 1)*int(speed[0]/abs(speed[0]))
elif event.key == pygame.K_RIGHT:
speed[0] = speed[0] + 1 if speed[0] > 0 else speed[0] - 1
elif event.key == pygame.K_UP:
speed[1] = speed[1] + 1 if speed[1] > 0 else speed[1] - 1
elif event.key == pygame.K_DOWN:
speed[1] = speed[1] if speed[1] == 0 else (abs(speed[1]) - 1)*int(speed[1]/abs(speed[1]))
ballrect = ballrect.move(speed)
if ballrect.left < 0 or ballrect.right > width:
speed[0] = - speed[0]
if ballrect.top < 0 or ballrect.bottom > height:
speed[1] = - speed[1]
screen.fill(BLACK)
screen.blit(ball, ballrect)
pygame.display.update()
fclock.tick(fps)
五、数据分析
1. numpy数组的使用
import numpy as np
def npSum():
a=np.array([1,2,3,3,4])
b=np.array([2,3,1,5,4])
c=a**2+b**3
return c
print(npSum())
2. 手绘图像
from PIL import Image
import numpy as np
a = np.asarray(Image.open('sh2.jpg').convert('L')).astype('float')
depth = 10. # (0-100)
grad = np.gradient(a) #取图像灰度的梯度值
grad_x, grad_y = grad #分别取横纵图像梯度值
grad_x = grad_x*depth/100.
grad_y = grad_y*depth/100.
A = np.sqrt(grad_x**2 + grad_y**2 + 1.)
uni_x = grad_x/A
uni_y = grad_y/A
uni_z = 1./A
vec_el = np.pi/2.2 # 光源的俯视角度,弧度值
vec_az = np.pi/4. # 光源的方位角度,弧度值
dx = np.cos(vec_el)*np.cos(vec_az) #光源对x 轴的影响
dy = np.cos(vec_el)*np.sin(vec_az) #光源对y 轴的影响
dz = np.sin(vec_el) #光源对z 轴的影响
b = 255*(dx*uni_x + dy*uni_y + dz*uni_z) #光源归一化
b = b.clip(0,255)
im = Image.fromarray(b.astype('uint8')) #重构图像
im.save('sh2.jpg')
3. 数据可视化
六、词云
from wordcloud import WordCloud
wcd=WordCloud(background_color="white")
text="hello world python linux html css js"
wcd.generate(text)
wcd.to_image()