爬虫与面向对象例子,os,time模块

1.爬虫例子:

import urllib.request
import re,os
urlx="http://www.jj20.com/bz/dwxz"  #爬的网址,可改。
num=1
path=urlx #找到图片地址
url=urllib.request.urlopen(path) #打开网址的内容
date_1=url.read() #读取网站内容
#筛选图片,返回的图片地址列表
img_list=re.findall(r"http://[\S]*jpg",repr(date_1)) #正则,解析
for i in img_list:
    if num<=100: #如果保存图片超过100就停止
        # print(i)
        try:
            imge=urllib.request.urlopen(i) #打开图片内容
            date=imge.read() #读取图片内容
        except Exception as e:
            print(e)
            print("下载出错。")
        with open("F:\\test\\{0}.jpg".format(num),"wb") as f:
            f.write(date) #保存图片到本地
            print("正在下载第{0}张图片".format(num))
            num+=1
print("下载完成!")

2.使用面向对象的方式写一个猜拳游戏 :人和电脑猜拳
定义: 1 剪刀 2 : 石头 3 : 布
要求: 可以设定比赛次数, 每次比赛都要提示谁输谁赢, 且输出当前比分, 用户可以中途结束比赛.

class comper():
    import random
    com,poe=0,0 #电脑,人的比分
    lis=[(1,3),(3,2),(2,1)] #胜利情况
    def winner(self,inp,com=0,poe=0):
        comper=self.random.randint(1,3)
        if inp==comper:
            print("本次平局")
            return com,poe
        elif (comper,inp) in self.lis: #电脑胜利
            com+=1
            print("本次电脑胜出!")
            return com,poe
        else:
            poe+=1
            print("本次人胜出!")
            return com,poe

li=['1','2','3']
comss,poess=0,0 #电脑,人的总局比分
while True:
    user=input("请输入1~3的数字(注:1、 剪刀 2、石头  3、布 q、退出):").split()
    if user==[] or user[0]=="q":
        break
    elif user[0] in li:
        inp=int(user[0])
        conn=comper()
        com,poe=conn.winner(inp)
        comss+=com
        poess+=poe
        print("电脑与人的比分为:{0}:{1}".format(comss,poess))
    else:
        print("输入错误!")
  1. 计算”2012-12-12 12:12:12”之后50天的日期, 将周的信息也显示出来。
import time
ti=time.strptime('2012-12-12 12:12:12',"%Y-%m-%d %H:%M:%S") #转换为时间元组
t=time.mktime(ti)+50*24*60*60
tt=time.strftime("%Y-%m-%d 星期%w %H:%M:%S",time.localtime(t)) #转换为格式化时间
print(tt)

4.将文件夹下的所有内容复制到另一个地方保存。

import os
path="F:\\test\\123\\"
path01='F:\\test01\\12344\\'
file_list=os.listdir(path)  #返回文件夹下所有文件列表
os.mkdir(path01)  #创建文件夹
for i in file_list:
    with open(path+i,"rb") as f:
        data=f.read()
    with open(path01+i,"wb") as f:
        f.write(data)

警察在盘问5个小偷嫌疑犯:ABCDE;他们当中有3个人说真话.根据他们的说法,你能判断出谁是小偷;A:D是小偷;B:我是无辜的;C:E不是小偷;D:A说的全是谎话;E:B说的全是真话,如果你是警察,你知道哪个是小偷吗?

def police():
    li = [0,1]
    for a in li:
        for b in li:
            for c in li:
                for d in li:
                    for e in li:
                    # 总共只有一个小偷 + 起来应该为1    后面判断的是正确的次数
                        if (a+b+c+d+e == 1 and (d==1)+(b==0)+(e==0)+(d==0)+(b==0)==3): 
                            if a == 0:
                                print("a不是小偷")
                            else:
                                print("a是小偷")
                            if b == 0:
                                print("b不是小偷")
                            else:
                                print("b是小偷")
                            if c == 0:
                                print("c不是小偷")
                            else:
                                print("c是小偷")
                            if d == 0:
                                print("d不是小偷")
                            else:
                                print("d是小偷")
                            if e == 0:
                                print("e不是小偷")
                            else:
                                print("e是小偷")

police()
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。